Cette page a été traduite automatiquement. Lisez l'original en anglais. English

Bibliothèque IBSurgeon

Estimation rapide de la vitesse du disque avec sauvegarde

Dmitry Kuzmenko, 30.05.2019, ib-aid.com

Notre support technique reçoit périodiquement une question (également posée sur les forums) - « nos disques semblent lents, comment le confirmer » ?

Le plus souvent, cette question est posée par les utilisateurs de machines virtuelles, où l’administrateur de base de données n’a pas accès aux paramètres du sous-système de disques, ni même ne connaît ses caractéristiques.

Bien sûr, la vitesse des disques peut être mesurée avec différents outils, du simple CrystalDiskMark au plus complexe IOMeter. Mais les résultats les plus purs sont obtenus lorsque les applications ne travaillent pas avec le disque. Sinon, les résultats peuvent varier, et sous forte charge, les tests peuvent dégrader les performances du système.

De plus, les administrateurs système peuvent interdire l’installation de logiciels tiers, même pour une courte période.

Cependant, la sauvegarde est généralement effectuée sur tous ces systèmes (sauf ceux qui utilisent un logiciel de sauvegarde au niveau VM pour sauvegarder Firebird, ce qui est incorrect - voir #11 ici dans « 12 Erreurs Courantes lors de la Sauvegarde des Bases de Données »).

La sauvegarde (gbak -b -g) consiste à lire toutes les données de la base de données et à écrire (séquentiellement) ces données dans le fichier de sauvegarde. Du point de vue des opérations de lecture/écriture, c’est une combinaison de lecture aléatoire et d’écriture séquentielle.

Le fichier de sauvegarde représente généralement 60 à 70 % de la taille de la base de données. Et, en raison du versioning et de la structure des pages de la base de données, il y a plus de lectures que d’écritures.

Comme le fichier de sauvegarde est généralement placé sur un autre disque physique, la vitesse globale de sauvegarde dépendra de la vitesse de lecture aléatoire de la base de données et de la vitesse d’écriture séquentielle du disque de sauvegarde. Bien sûr, vous pouvez placer la base de données sur un HDD et sauvegarder sur un SSD, mais ce serait très inefficace. Nous considérons donc que la vitesse du disque de sauvegarde est presque égale à celle du disque de la base de données, ni beaucoup plus élevée ni plus basse.

Pour simplifier l’évaluation de la vitesse, nous avons pris uniquement la taille du fichier de sauvegarde et l’avons divisée par le temps de sauvegarde. Le résultat sera en « mégaoctets par seconde ». Mais, pour évaluer la valeur obtenue par rapport à d’autres systèmes, une sorte de mesure de référence est nécessaire.

Nous avons pris un ordinateur de bureau moyen comme référence, avec une base de données sur un RAID1 de 2 HDD SATA3, et une sauvegarde sur un HDD SATA3 séparé (la vitesse de lecture séquentielle de ce RAID1 est d’environ 180 Mo/s, et d’environ 150 Mo/s pour le HDD de sauvegarde).

Ici, la sauvegarde d’une base de données de 31 Go a une taille de 21 Go, et la sauvegarde en mode mono-utilisateur (personne ne travaille sur cet ordinateur) prend 18 minutes, la vitesse de sauvegarde est de 19 mégaoctets par seconde.

Donc, comme ce n’est pas un serveur puissant, mais simplement un ordinateur de bureau (assemblé il y a 2 ou 3 ans), nous pouvons utiliser cette vitesse de sauvegarde comme référence, la considérant comme normale, et peut-être comme le minimum acceptable pour les systèmes de production.

Ensuite, nous avons analysé la vitesse de sauvegarde sur 30 serveurs différents sous notre gouvernance de support, où la taille du fichier de sauvegarde n’est pas inférieure à 5 gigaoctets.

Performance Vitesse, Mo/s Commentaires et exemples

| Rapide | 50-70 | Il y avait des systèmes avec des sauvegardes de 38 à 150 gigaoctets. Sauvegarde d’une base de données de 124 Go en 42 minutes - c’est rapide. | | Moyenne | 20-50 | Ici, la vitesse moyenne est d’environ 80 gigaoctets en 30-40 minutes. C’est normal, et notre ordinateur de bureau montre un résultat qui pourrait s’y intégrer. | | Lente | 10-20 | 463 gigaoctets en 11 heures, 80 gigaoctets en 2 heures, 293 gigaoctets en 5 heures - c’est lent, même notre ordinateur de bureau de test est plus rapide. | | Extrêmement lente | Moins de 10 | C’est comme 8,5 gigaoctets en 1 heure. Très lent. |

Il est clair que sur certains systèmes étudiés, la sauvegarde n’est pas effectuée pendant une charge nulle du serveur. Mais dans tous les cas, elle est effectuée pendant la charge minimale du serveur.

Juste pour savoir à quel point une faible charge peut affecter la vitesse de sauvegarde, nous avons lancé 2 sauvegardes simultanées sur le même ordinateur de bureau. Les deux ont pris 19 minutes avec une vitesse de 18 mégaoctets par seconde. Cela représente 93 % de la sauvegarde mono-utilisateur, ce qui n’est pas énorme (7 % de dégradation) pour des HDD simples. Si vous avez un SSD, vous ne remarquerez peut-être pas la différence même en lançant 3 à 4 sauvegardes en même temps.

En général, une vitesse de sauvegarde de 20 mégaoctets par seconde ou moins peut être une source de préoccupation.

Dans ce cas, soit le disque de sauvegarde est trop lent, alors que la sauvegarde devrait être effectuée aussi rapidement que possible. Soit le disque de la base de données est trop lent, et les performances globales du système sont inférieures à ce qu’elles devraient être.

Comment augmenter la vitesse de sauvegarde

Beaucoup de gens n’utilisent pas gbak à pleine vitesse, et il est parfois possible d’augmenter la vitesse de sauvegarde avec un seul paramètre -se service_mgr, afin d’utiliser le gestionnaire de services dans le moteur Firebird.

La ligne de commande recommandée pour une sauvegarde rapide est la suivante, à la fois pour Firebird 2.5 et Firebird 3.0 :

gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk

Plus d’astuces et de conseils consacrés aux performances générales :