Benchmark ssd sur linux: comment mesurer les mêmes choses que crystaldiskmark dans les windows

Je veux comparer un ssd (éventuellement avec des filesystems cryptés) et le comparer aux benchmarks réalisés par crystaldiskmark sur windows.

CrystalDiskMark sur Windows

Alors, comment puis-je mesurer à peu près les mêmes choses que crystaldiskmark?

Pour la première rangée (Seq), je pense que je pourrais faire quelque chose comme

LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc sudo su -c "echo 3 > /proc/sys/vm/drop_caches" LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024 

Mais je ne suis pas sûr des parameters dd .

Pour le 512KB random, 4KB, 4KB (Queue Depth = 32) lit / écrit des tests de vitesse je n'ai aucune idée comment reproduire les mesures dans Linux? Alors, comment puis-je faire cela?

Pour tester les vitesses de lecture quelque chose comme sudo hdparm -Tt /dev/sda ne semble pas avoir de sens pour moi puisque je veux par exemple benchmark quelque chose comme les montures encfs .

modifier

@Alko, @iain

Peut-être devrais-je écrire quelque chose au sujet de la motivation à propos de cette question: J'essaie de comparer mon ssd et de comparer quelques solutions de encryption. Mais c'est une autre question ( meilleure façon de comparer différentes solutions de encryption sur mon système ). En surfant sur le web, j'ai souvent vu des users publier leurs résultats CrystelDiskMark sur des forums. Donc, c'est la seule motivation pour la question. Je veux juste faire la même chose sur Linux. Pour mon benchmarking particulier voir mon autre question.

Je ne suis pas sûr que les différents tests approfondis aient un sens réel en considérant ce que vous faites en détail.

Les parameters tels que la taille du bloc et la profondeur de la queue sont des parameters permettant de contrôler les parameters d'input / sortie de bas niveau de l'interface ATA sur laquelle votre SSD est assis.

C'est très bien quand vous exécutez juste un test de base sur un lecteur assez directement, comme pour un gros file dans un système de files partitionné simple.

Une fois que vous commencez à parler de benchmarking d'une encfs, ces parameters ne s'appliquent plus particulièrement à votre système de files, le système de files est juste une interface dans quelque chose d'autre qui finit par s'appuyer sur un système de files qui se connecte à un disque.

Je pense qu'il serait utile de comprendre ce que vous essayez de mesurer, car il y a deux facteurs en jeu ici: la vitesse d'E / S disque brut, que vous pouvez tester en chronométrant différentes commands DD (peut donner des exemples si c'est ce que vous vouloir) / sans / encfs, ou le process sera CPU limité par le encryption et vous essayez de tester le débit relatif de l'algorithm de encryption. Dans ce cas, les parameters de la profondeur de la queue, etc., ne sont pas particulièrement pertinents.

Dans les deux cas, une command DD temporisée vous donnera les statistics de débit de base que vous searchz, mais vous devriez considérer ce que vous countz mesurer et les parameters pertinents pour cela.

Ce lien semble fournir un bon guide pour tester la vitesse du disque en utilisant des commands DD temporisées, y compris la couverture nécessaire pour «vaincre les tampons / cache» et ainsi de suite. Probablement cela fournira l'information dont vous avez besoin. Décidez de l'intérêt que vous portez aux performances du disque ou du encryption, l'un des deux sera le goulot d'étranglement, et le réglage du non-goulot d'étranglement ne bénéficiera à rien.

Vous pouvez utiliser iozone et bonnie . Ils peuvent faire ce que la marque de disque de cristal peut faire et plus encore.

iozone pendant que iozone et teste les périphériques de test des ordinateurs personnels aux systèmes de stockage d'entreprise. Il a un mode automatique qui fait tout mais vous pouvez l'adapter à vos besoins.

Je dirais que fio n'aurait aucune difficulté à produire ces charges de travail. Notez que malgré son nom CrystalDiskMark est en fait une reference d'un système de files sur un disque particulier – il ne peut pas faire d'E / S brut sur le disque seul. En tant que tel, il aura toujours un overhead système de files (pas nécessairement une mauvaise chose, mais quelque chose à savoir, par exemple parce que les filesystems comparés peuvent ne pas être les mêmes).

Un exemple basé sur la réplication de la sortie dans la capture d'écran ci-dessus complétée par des informations du manuel CrystalDiskMark (ceci n'est pas complet mais devrait donner l'idée générale):

 fio --loops=5 --size=1000m --filename=/mnt/fs/fiotest.tmp --stonewall --ioengine=libaio --direct=1 \ --name=Seqread --bs=1m --rw=read \ --name=Seqwrite --bs=1m --rw=write \ --name=512Kread --bs=512k --rw=randread \ --name=512Kwrite --bs=512k --rw=randwrite \ --name=4kQD32read --bs=4k --iodepth=32 --rw=randread \ --name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite rm -f /mnt/fs/fiotest.tmp 

ATTENTION – cet exemple détruit définitivement datatables dans /mnt/fs/fiotest.tmp !

Une list des parameters fio est disponible sur http://fio.readthedocs.io/en/latest/fio_doc.html .