web-dev-qa-db-fra.com

Test des performances IO sous Linux

Comment tester les performances de IO sous Linux?

25
deeplovepan

Le benchmark IO et système de fichiers est un sujet complexe. Aucun outil d'analyse comparative unique n'est bon dans toutes les situations. Voici un petit aperçu des différents outils d'analyse comparative:

Stockage en bloc:

  • IOMeter - Hautement personnalisable et permet de coordonner plusieurs clients. Nécessite un PC Windows pour l'application de coordination. Développé par Intel. Sous Linux, prenez des taux maximaux d'anciens (au moins 2006.07.27 et versions antérieures) avec une pincée de sel car la méthode de soumission n'était pas optimale.

Système de fichiers (synthétique):

  • FFSB - Référence du système de fichiers flexible. Analyse comparative très soignée pour Linux. Bonne personnalisation de la charge de travail. L'analyse comparative NFS (net-ffsb) est un peu malsaine.
  • Filebench - Extrêmement puissant, mais développé à l'origine pour Solaris. Le support Linux n'est pas bon.
  • sysbench - Principalement un outil d'analyse comparative de base de données, mais également un outil d'analyse comparative de système de fichiers de base.
  • bonnie - Semble être obsolète.
  • bonnie ++ - Port C++ de bonnie. Facile, mais ne semble pas très personnalisable.

Système de fichiers (charge de travail):

  • Cachet - Simule le comportement IO d'un serveur de messagerie. Trop petit pour souligner les bons systèmes IO.

Stony Brook University et IBM Watson Labs ont publié un article de journal hautement recommandé dans le "Transaction of Storage" sur l'analyse comparative du système de fichiers, dans lequel ils présentent différents points de référence et leurs points faibles: ne étude de neuf ans sur le système de fichiers et l'analyse comparative du stockage . L'article souligne clairement que les résultats de la plupart des repères sont au moins discutables.


Une note: La question est-elle liée à la programmation? Peut-être pas, mais c'est peut-être le cas. Je passe beaucoup de temps à comparer les performances des systèmes que je développe .IO. ne sont pas liés au développement/à la programmation de votre point de vue. Le point de vue des autres développeurs peut être différent.

35
dmeister

outil: fio

lien: http://freshmeat.net/projects/fio/

tester le disque physique IO:

    ./fio examples/disk-zone-profile 

définir le paramètre: séquentiel r/w: rw = lecture ou rw = écriture aléatoire r/w: rw = randread ou rw = randwrite

18
deeplovepan

si vous avez besoin d'un moyen rapide sans avoir à installer quoi que ce soit. C'est la méthode que j'utilise pour test de vitesse d'écriture:

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

Et la sortie est quelque chose comme ça

root@rackserver:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s

Aussi: supprimez le fichier de test après cela pour récupérer l'espace supplémentaire utilisé

Quelques explications:

bs = block size
count = the no of blocks to be written

Ajustez ces paramètres pour modifier la taille du fichier écrit selon les spécifications de votre serveur et le temps que vous souhaitez consacrer à l'écriture.

la vitesse de lecture comme déjà suggéré par gtsouk, peut être vérifié en utilisant/dev/null comme sortie.

12
arkoak
dd if=/dev/sda of=/dev/null

Laissez cela fonctionner pendant quelques minutes et arrêtez-le avec ctrl + C. Il imprimera la vitesse de transfert en lecture de votre lecteur/contrôleur. Il s'agit de la vitesse de lecture maximale que vous pouvez retirer de votre lecteur.

7
gtsouk

sysbench

Voir http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench

Exemple

sysbench --test=fileio --file-total-size=150G prepare

sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

Il peut également tester les performances du processeur, de la mémoire, des threads et du serveur de base de données,

C'est génial.

Ou tester un logiciel écrit en Java: http://www.dacapobench.org/

3
bastiat

vous devez spécifier ce que vous testez, sinon les repères ne feront qu'induire en erreur. Il y a différents aspects des performances de IO que vous devez choisir pour optimiser, et différents paramètres pour jouer avec.

Vos paramètres système:

  1. périphérique de stockage: disque dur, SSD (qui?), Raid (qui?)
  2. système de fichiers, taille de bloc, mode journal
  3. cache de fichiers, seuils sales, quantité de mémoire
  4. Planificateur IO, ses réglages
  5. nombre de CPU
  6. version du noyau

Vos paramètres de test:

  1. lire ou écrire des performances?
  2. séquentiel ou aléatoire?
  3. 1 fil ou multiple?
  4. taille des demandes
  5. optimiser pour le débit ou le délai de demande?
3
n-alexander

Il existe un excellent programme pour tester le stockage de blocs IO sur Unix appelé IORATE. Vous pouvez en obtenir une copie sur iorate.org.

Il peut générer des E/S mixtes complexes, y compris la réutilisation (hits) et des zones chaudes pour les tests de stockage à plusieurs niveaux.

3
John

Jetez un œil à IOzone: http://www.iozone.org/

Si vous souhaitez lire un livre blanc illustrant l'utilisation du monde réel sur un cluster HPC, veuillez consulter ce pdf, page 36: http://i.Dell.com/sites/content/business/solutions/hpcc/ fr/Documents/Dell-NSS-NFS-Storage-solution-final.pdf

2
bugaboo