6.2. Analyse
Régler les performances de la pile de stockage correctement requiert une certaine compréhension de la manière par laquelle les données traversent le système, ainsi que la connaissance intime du stockage sous-jacent et de ses performances sous différentes charges de travail. Il est aussi nécessaire de comprendre comment la charge de travail est réellement réglée.
Lorsque vous déployez un nouveau système, il est recommandé de profiler le stockage de bas en haut. Commencez par des LUN ou des disques bruts et évaluez leurs performances à l'aide d'E/S directes (des E/S qui contournent le cache de la page du noyau). Ce test est le test le plus basique que vous pouvez effectuer et sera le standard avec lequel vous mesurerez les performances des E/S dans la pile. Commencez par un générateur de charges de travail de base (tel que aio-stress), qui produit des lectures et écritures séquentielles et aléatoires à travers toute une gamme de tailles d'E/S et profondeurs de files d'attente.
Ci-dessous figure un graphique provenant d'une série d'exécutions de aio-stress, chacune d'entre elles passe par quatre étapes : une écriture séquentielle, une lecture séquentielle, une écriture aléatoire et une lecture aléatoire. Dans cet exemple, l'outil est configuré pour être exécuté sur toute une gamme de tailles d'enregistrements (l'axe x) et profondeurs de files d'attente (une par graphique). La profondeur des files d'attente représente le nombre total d'opérations d'E/S en progrès à un moment donné.
Figure 6.1. Sortie aio-stress pour 1 thread, 1 fichier
Remarquez comme la ligne de la bande passante tend à passer du coin inférieur gauche au coin supérieur droit. Remarquez aussi que, pour une taille d'enregistrement donnée, la bande passante du stockage peut être plus importante en augmentant le nombre d'E/S en cours d'exécution.
En exécutant ces simples charges de travail sur votre stockage, vous comprendrez mieux comment fonctionne votre stockage sous des charges. Conservez les données générées par ces tests pour effectuer des comparaisons lors de l'analyse de charges de travail plus complexes.
Si vous allez utiliser le mappeur de périphériques (« device-mapper ») ou md, veuillez ajouter cette couche et répéter les tests. S'il y a une forte baisse des performances, assurez-vous que celle-ci était prévue, ou tout du moins qu'elle puisse être expliquée. Par exemple, on peut s'attendre à une baisse des performances si une couche RAID effectuant des checksums a été ajoutée à la pile. Des baisses de performances inattendues peuvent être causées par des opérations d'E/S mal alignées. Par défaut, Red Hat Enterprise Linux aligne ses partitions et métadonnées de mappeur de périphériques de manière optimale. Cependant, les types de stockage ne rapportent pas tous leur alignement optimal, et peuvent ainsi nécessiter des réglages manuels.
Après avoir ajouté le mappeur de périphériques ou la couche md, veuillez ajouter un système de fichiers sur le haut du périphérique bloc et effectuez des tests dessus, tout en continuant d'utiliser des E/S directes. Une fois de plus, comparez les résultats avec ceux des tests précédents et assurez-vous de bien comprendre tout écart. Habituellement, les E/S directes fonctionnent mieux sur des fichiers pré-alloués, assurez-vous donc de bien pré-allouer les fichiers avant de tester les performances.
Les générateurs de charges de travail synthétiques que vous trouverez utiles incluent :
- aio-stress
- iozone
- fio