GNU/Linux >> Belajar Linux >  >> Linux

10 Contoh Iozone untuk Pengukuran Kinerja Disk I/O di Linux

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.

  1. Baca – Menunjukkan kinerja membaca file yang sudah ada di sistem file.
  2. Tulis – Menunjukkan kinerja penulisan file baru ke sistem file.
  3. Baca ulang – Setelah membaca file, ini menunjukkan kinerja membaca file lagi.
  4. Tulis Ulang – Menunjukkan kinerja penulisan ke file yang ada.
  5. Baca Acak – Menunjukkan kinerja membaca file dengan membaca informasi acak dari file. artinya ini bukan pembacaan berurutan.
  6. Tulis Acak – Menunjukkan kinerja penulisan ke file di berbagai lokasi acak. yaitu ini bukan penulisan berurutan.
  7. Baca Mundur
  8. Rekam Tulis Ulang
  9. Membaca Langkah
  10. Menakutkan
  11. Tulis
  12. Bacaan gratis
  13. 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

Linux
  1. Linux – Menentukan File Tertentu yang Bertanggung Jawab Untuk I/o Tinggi?

  2. 24 Contoh iostat, vmstat dan mpstat untuk Pemantauan Kinerja Linux

  3. Penurunan kinerja I/O yang masif dan tidak dapat diprediksi di Linux

  1. Linux – Referensi Tapi Untuk Linux?

  2. 10 Contoh Sar (Sysstat) yang Berguna untuk Pemantauan Kinerja UNIX / Linux

  3. Bagaimana cara membersihkan cache I/O disk di Linux?

  1. Linux:Apakah ada yang mirip dengan top untuk I/O?

  2. I/O disk OOM Linux. Juga:tukar, apa gunanya?

  3. Mengevaluasi CPU I/O menunggu di Linux