Έλεγχος απόδοσης δίσκου I/O με εντολή dd [Linux]


Πως μπορώ με την εντολή dd σε Linux να μετρήσω την απόδοση Ι/Ο στο σκληρό δίσκο; Πως μπορώ να εξετάσω την απόδοση του δίσκου σε read και write ταχύτητες σε ένα Linux λειτουργικό;



Μπορείτε να χρησιμοποιήσετε τις ακόλουθες εντολές για απλές δοκιμές I/O:
  • Εντολή dd : Χρησιμοποιείται για τον έλεγχο της απόδοσης write ενός δίσκου σε Linux.
  • Εντολή hdparm : Χρησιμοποιείται για get/set hard disk parameters συμπεριλαμβανομένου του test για reading και caching απόδοση ενός δίσκου σε Linux σύστημα.

Σε αυτό το βοήθημα θα σας δείξουμε πως να χρησιμοποιήσετε την εντολή dd για το έλεγχο απόδοσης I/O του δίσκου.

Χρησιμοποιήστε την εντολή dd για να ελέγξετε την απόδοση read και write του δίσκου σας:
  1. Ανοίγετε την κονσόλα.
  2. Ή συνδέεστε στον server μέσω ssh.
  3. Χρησιμοποιήστε την εντολή dd για να μετρήσετε την ταχύτητα εγγραφής του server throughput (write speed): dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
  4. Χρησιμοποιήστε την εντολή dd για να μετρήσετε το server latency: dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync


Αν βρείτε κάποια όρια όπου σας κόβει ο server, και δεν μπορείτε να ολοκληρώσετε την μέτρηση μπορείτε αντίστοιχα να μετρήσετε με μικρότερου μεγέθους πακέτα, πχ 256ΜΒ:

dd if=/dev/zero of=/tmp/test1.img bs=256M count=1 oflag=dsync

 ή και 128MB:

dd if=/dev/zero of=/tmp/test1.img bs=128M count=1 oflag=dsync

Πρόσθετες μετρήσεις

dd: TEST Disk WRITE Speed

Με την ακόλουθη εντολή ελέγχετε την ταχύτητα Εγγραφής - WRITE του δίσκου:

$ sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.28696 s, 327 MB/s

dd: TEST Disk READ Speed

Το αρχείο tempfile, το οποίο μόλις δημιουργήθηκε από την προηγούμενη εντολή, έγινε cached στο buffer και η ταχύτητα ανάγνωσης - read του αρχείου είναι πολύ μεγαλύτερη από την πραγματική απευθείας από το δίσκο.

Για την μέτρηση της πραγματικής ταχύτητας ανάγνωσης - speed, πρέπει να καθαρίσετε την cache.

Τρέξτε την ακόλουθη εντολή για να ελέγξετε την ταχύτητα Ανάγνωσης - READ από το buffer:

$ dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.159273 s, 6.7 GB/s

Καθαρίστε την cache και μετρήστε επ'ακριβώς την ταχύτητα Ανάγνωσης - READ απευθείας από το δίσκο:

$ sudo /sbin/sysctl -w vm.drop_caches=3
vm.drop_caches = 3
$ dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.27431 s, 472 MB/s


Σχόλια