Seperti yang telah kita bahas di artikel pengantar pemantauan kinerja Linux, mengukur kinerja subsistem IO sangat penting.
Jika seseorang mengeluh bahwa database (atau aplikasi apa pun) yang berjalan di satu server (dengan sistem file tertentu, atau konfigurasi RAID) berjalan lebih cepat daripada database atau aplikasi yang sama yang berjalan di server lain, Anda mungkin ingin memastikan bahwa kinerja di server level disk sama di kedua server. Anda dapat menggunakan iozone untuk situasi ini.
Jika Anda menjalankan database (atau aplikasi apa pun) pada lingkungan SAN atau NAS tertentu, dan ingin memigrasikannya ke lingkungan SAN atau NAS yang berbeda, Anda harus melakukan benchmark filesystem pada kedua sistem dan membandingkannya. Anda dapat menggunakan iozone untuk situasi ini.
Jika Anda tahu cara menggunakan iozone, Anda dapat menggunakannya untuk berbagai tujuan pembandingan sistem file.
Unduh dan Instal IOZone
Iozone adalah utilitas pembandingan sistem file sumber terbuka.
Ikuti langkah-langkah di bawah ini untuk mengunduh dan menginstal iozone di sistem Anda.
wget http://www.iozone.org/src/current/iozone3_394.tar tar xvf iozone3_394.tar cd iozone3_394/src/current make make linux
Apa yang diukur oleh utilitas IOzone?
IOzone melakukan 13 jenis tes berikut. Jika Anda menjalankan pengujian iozone pada server database, Anda dapat fokus pada 6 pengujian pertama, karena pengujian tersebut berdampak langsung pada kinerja database.
- Baca – Menunjukkan kinerja membaca file yang sudah ada di sistem file.
- Tulis – Menunjukkan kinerja penulisan file baru ke sistem file.
- Baca ulang – Setelah membaca file, ini menunjukkan kinerja membaca file lagi.
- Tulis Ulang – Menunjukkan kinerja penulisan ke file yang ada.
- Baca Acak – Menunjukkan kinerja membaca file dengan membaca informasi acak dari file. artinya ini bukan pembacaan berurutan.
- Tulis Acak – Menunjukkan kinerja penulisan ke file di berbagai lokasi acak. yaitu ini bukan penulisan berurutan.
- Baca Mundur
- Rekam Tulis Ulang
- Membaca Langkah
- Menakutkan
- Tulis
- Bacaan gratis
- Tulis ulang
10 Contoh IOZone
1. Jalankan semua pengujian IOZone menggunakan nilai default
-a option singkatan dari mode otomatis. Ini membuat file pengujian sementara dari ukuran 64k hingga 512MB untuk pengujian kinerja. Mode ini juga menggunakan ukuran rekaman 4k hingga 16 juta untuk pengujian baca dan tulis (lebih lanjut tentang ini nanti).
-a option juga akan menjalankan 13 jenis tes.
$ ./iozone -a
Bagian pertama dari keluaran iozone berisi informasi header, yang menampilkan informasi tentang utilitas iozone, dan semua opsi iozone yang digunakan untuk menghasilkan laporan ini, seperti yang ditunjukkan di bawah ini.
Iozone: Performance Test of File I/O Version $Revision: 3.394 $ Compiled for 32 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Run began: Sat Apr 23 12:25:34 2011 Auto Mode Command line used: ./iozone -a Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size.
Bagian kedua dari keluaran berisi nilai keluaran (dalam per detik) dari berbagai pengujian.
- Kb kolom ke-1:Menunjukkan ukuran file yang digunakan untuk pengujian.
- Reken kolom ke-2:Menunjukkan panjang rekaman yang digunakan untuk pengujian.
- Kolom ke-3 hingga kolom terakhir:Menunjukkan berbagai pengujian yang dilakukan dan nilai outputnya dalam per detik.
random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 4 495678 152376 1824993 2065601 2204215 875739 582008 971435 667351 383106 363588 566583 889465 64 8 507650 528611 1051124 1563289 2071399 1084570 1332702 1143842 2138827 1066172 1141145 1303442 2004783 64 16 587283 1526887 2560897 2778775 2366545 1122734 1254016 593214 1776132 463919 1783085 3214531 3057782 64 32 552203 402223 1121909 1388380 1162129 415722 666360 1163351 1637488 1876728 1685359 673798 2466145 64 64 551580 1122912 2895401 4911206 2782966 1734491 1825933 1206983 2901728 1207235 1781889 2133506 2780559 128 4 587259 1525366 1801559 3366950 1600898 1391307 1348096 547193 666360 458907 1486461 1831301 1998737 128 8 292218 1175381 1966197 3451829 2165599 1601619 1232122 1291619 3273329 1827104 1162858 1663987 1937151 128 16 650008 510099 4120180 4003449 2508627 1727493 1560181 1307583 2203579 1229980 603804 1911004 2669183 128 32 703200 1802599 2842966 2974289 2777020 1331977 3279734 1347551 1152291 684197 722704 907518 2466350 128 64 848280 1294308 2288112 1377038 1345725 659686 1997031 1439349 2903100 1267322 1968355 2560063 1506623 128 128 902120 551579 1305206 4727881 3046261 1405509 1802090 1085124 3649539 2066688 1423514 2609286 3039423 ...
2. Simpan hasilnya ke spreadsheet menggunakan iozone -b
Untuk menyimpan output iozone ke spreadsheet, gunakan opsi -b seperti yang ditunjukkan di bawah ini. -b adalah singkatan dari binary, dan menginstruksikan iozone untuk menulis hasil pengujian dalam format biner ke spreadsheet.
$ ./iozone -a -b output.xls
Catatan:Opsi -b dapat digunakan dengan salah satu contoh yang disebutkan di bawah ini.
Dari data yang disimpan dalam spreadsheet, Anda dapat menggunakan membuat beberapa grafik cantik menggunakan fungsi grafik dari alat spreadsheet. Berikut ini adalah contoh grafik yang dibuat dari keluaran iozone.
Gambar :grafik IOZone
3. Jalankan hanya jenis pengujian tertentu menggunakan iozone -i
Jika Anda tertarik untuk menjalankan hanya jenis pengujian tertentu, gunakan opsi -i.
Sintaks:
iozone -i [test-type]
Jenis tes adalah nilai numerik. Berikut ini adalah berbagai jenis tes yang tersedia dan nilai numeriknya.
- 0=tulis/tulis ulang
- 1=baca/baca ulang
- 2=baca-acak/tulis
- 3=Baca-mundur
- 4=Tulis ulang-rekam
- 5=baca langkah
- 6=fwrite/re-fwrite
- 7=fread/Re-fread,
- 8=campuran acak
- 9=pwrite/Re-pwrite
- 10=membaca/membaca ulang
- 11=pwritev/Re-pwritev
- 12=preadv/Re-preadv
Contoh berikut hanya akan menjalankan tes tulis (yaitu menulis dan menulis ulang). Seperti yang Anda lihat dari output, kolom lainnya kosong.
$ ./iozone -a -i 0 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 4 353666 680969 64 8 477269 744768 64 16 429574 326442 64 32 557029 942148 64 64 680844 633214 128 4 187138 524591
Gabungkan beberapa jenis uji iozon
Anda juga dapat menggabungkan beberapa jenis pengujian dengan menentukan beberapa -i di baris perintah.
Misalnya, contoh berikut akan menguji jenis pengujian baca dan tulis.
$ ./iozone -a -i 0 -i 1 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 4 372112 407456 1520085 889086 64 8 385574 743960 3364024 2553333 64 16 496011 397459 3748273 1330586 64 32 499600 876631 2459558 4270078
4. Tentukan ukuran file menggunakan iozone -s
Secara default, iozone akan secara otomatis membuat file sementara dengan ukuran dari 64k hingga 512M, untuk melakukan berbagai pengujian.
Kolom pertama pada keluaran iozone (dengan tajuk kolom KB) menunjukkan ukuran file. Seperti yang Anda lihat dari output sebelumnya, ini dimulai dengan file 64KB, dan akan terus meningkat hingga 512M (dengan menggandakan ukuran file setiap saat).
Alih-alih menjalankan tes untuk semua ukuran file, Anda dapat menentukan ukuran file menggunakan opsi -s.
Contoh berikut akan melakukan uji tulis hanya untuk ukuran file 1MB (yaitu 1024KB).
$ ./iozone -a -i 0 -s 1024 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024 4 469710 785882 1024 8 593621 1055581 1024 16 745286 1110539 1024 32 610585 1030184 1024 64 929225 1590130 1024 128 1009859 1672930 1024 256 1042711 2039603 1024 512 941942 1931895 1024 1024 1039504 706167
5. Tentukan ukuran record untuk pengujian menggunakan iozone -r
Saat Anda menjalankan pengujian, untuk ukuran file tertentu, pengujian dengan ukuran rekaman berbeda mulai dari 4k hingga 16M.
Jika Anda ingin melakukan pengujian kinerja I/O dari subsistem I/O yang menghosting database oracle, Anda mungkin ingin mengatur ukuran rekaman di iozone ke nilai yang sama dengan ukuran blok DB. Basis data membaca dan menulis berdasarkan ukuran blok DB.
reclen adalah singkatan dari Record Length. Pada contoh sebelumnya, kolom ke-2 (dengan tajuk kolom “reclen”) menunjukkan panjang record yang harus digunakan untuk pengujian IOzone. Pada contoh outout sebelumnya, untuk ukuran file 1024KB, pengujian iozone menggunakan berbagai ukuran record mulai dari 4k hingga 16M untuk melakukan pengujian tulis.
Alih-alih menggunakan semua ukuran panjang rekaman default ini, Anda juga dapat menentukan ukuran rekaman yang ingin Anda uji.
Contoh di bawah ini akan menjalankan tes tulis hanya untuk catatan panjang 32k. Pada output, kolom ke-2 sekarang hanya akan menampilkan 32.
$ ./iozone -a -i 0 -r 32 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 32 566551 820553 128 32 574098 1000000 256 32 826044 948043 512 32 801282 1560624 1024 32 859116 528901 2048 32 881206 1423096
6. Gabungkan ukuran file dengan ukuran record
Anda juga dapat menggunakan opsi -s dan -r untuk menentukan ukuran file sementara yang tepat, dan panjang rekaman tepat yang perlu diuji.
Misalnya, berikut ini akan menjalankan tes tulis menggunakan file 2M dengan catatan panjang 1M
$ ./iozone -a -i 0 -s 2048 -r 1024 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 2048 1024 1065570 1871841
7. Uji throughput menggunakan iozone -t
Untuk menjalankan iozone dalam mode throughput, gunakan opsi -t. Anda juga harus menentukan jumlah utas yang perlu aktif selama pengujian ini.
Contoh berikut akan menjalankan uji throughput iozone untuk penulisan menggunakan 2 utas. Harap dicatat bahwa Anda tidak dapat menggabungkan opsi -a dengan opsi -t.
$ ./iozone -i 0 -t 2 Children see throughput for 2 initial writers 1= 433194.53 KB/sec Parent sees throughput for 2 initial writers = 7372.12 KB/sec Min throughput per process = 0.00 KB/sec Max throughput per process = 433194.53 KB/sec Avg throughput per process = 216597.27 KB/sec Min xfer = 0.00 KB Children see throughput for 2 rewriters = 459924.70 KB/sec Parent sees throughput for 2 rewriters = 13049.40 KB/sec Min throughput per process = 225610.86 KB/sec Max throughput per process = 234313.84 KB/sec Avg throughput per process = 229962.35 KB/sec Min xfer = 488.00 KB
Untuk melakukan throughput untuk semua jenis pengujian, hapus “-i 0” dari contoh di atas, seperti yang ditunjukkan di bawah ini.
$ ./iozone -t 2
8. Sertakan Pemanfaatan CPU menggunakan iozone -+u
Saat melakukan pengujian iozone, Anda juga dapat menginstruksikan iozone untuk mengumpulkan penggunaan CPU menggunakan opsi -+u.
Tanda -+ di depan opsi mungkin terlihat sedikit aneh. Namun, Anda harus memberikan keseluruhan -+u (bukan hanya -u, atau +u) agar ini berfungsi dengan baik.
Contoh berikut akan menjalankan semua pengujian, dan menyertakan laporan penggunaan CPU sebagai bagian dari output spreadsheet excel yang dihasilkannya.
$ ./iozone -a -+u -b output.xls
Catatan:Ini akan menampilkan penggunaan CPU terpisah untuk setiap pengujian yang dilakukan.
9. Tingkatkan ukuran file menggunakan iozone -g
Ini penting. Jika sistem Anda memiliki lebih dari 512MB RAM, Anda harus meningkatkan ukuran file sementara yang digunakan iozone untuk pengujian. Jika tidak, Anda mungkin tidak mendapatkan hasil yang akurat, karena cache buffer sistem akan berperan di dalamnya.
Untuk kinerja disk yang akurat, disarankan untuk memiliki ukuran file sementara 3 kali ukuran cache buffer sistem Anda.
Contoh berikut akan menjalankan iozone dengan meningkatkan ukuran file maksimum menjadi 2 GB, dan menjalankan pengujian iozone otomatis untuk pengujian tulis.
$ ./iozone -a -g 2G -i 0 random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 4 556674 1230677 64 8 278340 441320 64 16 608990 1454053 64 32 504125 1085411 64 64 571418 1279331 128 4 526602 961764 128 8 714730 518219 ...
10. Uji beberapa titik pemasangan bersama-sama menggunakan iozone -F
Dengan menggabungkan beberapa opsi iozone, Anda dapat melakukan pengujian I/O disk pada beberapa titik pemasangan seperti yang ditunjukkan di bawah ini.
Jika Anda memiliki 2 titik pemasangan, Anda dapat memulai 2 utas iozone yang berbeda untuk membuat file sementara pada kedua titik pemasangan ini untuk pengujian seperti yang ditunjukkan di bawah ini.
$ ./iozone -l 2 -u 2 -r 16k -s 512M -F /u01/tmp1 /u02/tmp2
- -l menunjukkan jumlah minimum proses iozon yang harus dimulai
- -u menunjukkan jumlah maksimum proses iozon yang harus dimulai
- -F harus berisi beberapa nilai. yaitu Jika kita menentukan 2 di -l dan -u, kita harus memiliki dua nama file di sini. Harap dicatat bahwa hanya titik pemasangan yang perlu ada. File yang ditentukan dalam opsi -F tidak perlu ada, karena iozone akan membuat file sementara ini selama pengujian. Dalam contoh di atas, titik mount adalah /u01, dan /u02. File tmp1 dan tmp2 akan secara otomatis dibuat oleh iozone untuk tujuan pengujian.
Artikel sebelumnya dalam seri pemantauan dan penyetelan kinerja Linux:
- Pengantar Pemantauan Kinerja dan Penyetelan Linux
- 15 Contoh Perintah Teratas Linux yang Praktis
- 7 Contoh Perintah PS Praktis untuk Pemantauan Proses
- 10 Contoh Sar (Sysstat) yang Berguna untuk Pemantauan Kinerja UNIX / Linux