Halaman ini memberikan detail tentang cara memverifikasi performa volume.
Mengukur performa volume menggunakan Fio
Gunakan alat generator I/O, Fio, untuk mengukur performa dasar pengukuran.
Menggunakan Fio
Fio menerapkan beban kerja yang dapat Anda tentukan melalui antarmuka command line atau file konfigurasi. Saat berjalan, Fio menampilkan indikator progres dengan throughput saat ini dan angka input dan output per detik (IOPS). Setelah berakhir, ringkasan mendetail akan ditampilkan.
Contoh hasil fio
Contoh berikut menunjukkan tugas tulis acak 4k dengan satu thread yang berjalan selama
60 detik, yang merupakan cara yang berguna untuk mengukur latensi dasar pengukuran. Dalam perintah
berikut, parameter --directory
mengarah ke folder dengan berbagi
NetApp Volumes yang terpasang:
$ FIO_COMMON_ARGS=--size=10g --fallocate=none --direct=1 --runtime=60 --time_based --ramp_time=5
$ fio $FIO_COMMON_ARGS --directory=/netapp --ioengine=libaio --rw=randwrite --bs=4k --iodepth=1 --name=nv
cvs: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.28
Starting 1 process
cvs: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [w(1)][100.0%][w=7856KiB/s][w=1964 IOPS][eta 00m:00s]
cvs: (groupid=0, jobs=1): err= 0: pid=1891: Wed Dec 21 14:56:37 2022
write: IOPS=1999, BW=7999KiB/s (8191kB/s)(469MiB/60001msec); 0 zone resets
slat (usec): min=4, max=417, avg=12.06, stdev= 5.71
clat (usec): min=366, max=27978, avg=483.59, stdev=91.34
lat (usec): min=382, max=28001, avg=495.96, stdev=91.89
clat percentiles (usec):
| 1.00th=[ 408], 5.00th=[ 429], 10.00th=[ 437], 20.00th=[ 449],
| 30.00th=[ 461], 40.00th=[ 469], 50.00th=[ 482], 60.00th=[ 490],
| 70.00th=[ 498], 80.00th=[ 515], 90.00th=[ 529], 95.00th=[ 553],
| 99.00th=[ 611], 99.50th=[ 652], 99.90th=[ 807], 99.95th=[ 873],
| 99.99th=[ 1020]
bw ( KiB/s): min= 7408, max= 8336, per=100.00%, avg=8002.05, stdev=140.09, samples=120
iops : min= 1852, max= 2084, avg=2000.45, stdev=35.06, samples=120
lat (usec) : 500=70.67%, 750=29.17%, 1000=0.15%
lat (msec) : 2=0.01%, 4=0.01%, 50=0.01%
cpu : usr=2.04%, sys=3.25%, ctx=120561, majf=0, minf=58
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,119984,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=7999KiB/s (8191kB/s), 7999KiB/s-7999KiB/s (8191kB/s-8191kB/s), io=469MiB (491MB), run=60001-60001msec
Baca baris berikut untuk mengetahui detail tentang hasil performa:
Latensi:
lat (usec): min=382, max=28001, avg=495.96, stdev=91.89
Latensi rata-rata adalah 495,96 mikrodetik (usec), kira-kira 0,5 md, yang merupakan latensi ideal.
IOPS:
min= 1852, max= 2084, avg=2000.45, stdev=35.06, samples=120
Contoh sebelumnya menunjukkan rata-rata 2.000 IOPS. Nilai tersebut diharapkan untuk tugas single-thread dengan latensi 0,5 md (
IOPS = 1000 ms/0.5 ms = 2000
).Throughput:
bw ( KiB/s): min= 7408, max=8336, per=100.00%, avg=8002.05, stdev=140.09
Rata-rata throughput adalah 8.002 KiBps, yang merupakan hasil yang diharapkan untuk 2.000 IOPS dengan ukuran blok 4 KiB (
2000 1/s * 4 KiB = 8,000 KiB/s
).
Mengukur latensi
Latensi adalah metrik dasar untuk performa volume. Hal ini disebabkan oleh kemampuan klien dan server, jarak antara klien dan server (volume Anda), dan peralatan di antaranya. Komponen utama metrik ini adalah latensi yang disebabkan oleh jarak.
Anda dapat melakukan ping ke IP volume untuk mendapatkan waktu perjalanan bolak-balik, yang merupakan estimasi kasar latensi Anda.
Latensi dipengaruhi oleh ukuran blok dan apakah Anda melakukan operasi baca atau tulis. Sebaiknya gunakan parameter berikut untuk mengukur latensi dasar pengukuran antara klien dan volume:
Linux
fio --directory=/netapp \ --ioengine=libaio \ --rw=randwrite \ --bs=4k --iodepth=1 \ --size=10g \ --fallocate=none \ --direct=1 \ --runtime=60 \ --time_based \ --ramp_time=5 \ --name=latency
Windows
fio --directory=Z\:\ --ioengine=windowsaio --thread --rw=randwrite --bs=4k --iodepth=1 --size=10g --fallocate=none --direct=1 --runtime=60 --time_based --ramp_time=5 --name=latency
Ganti parameter rw
(read/write/randread/randwrite) dan bs
(ukuran blok)
agar sesuai dengan beban kerja Anda. Ukuran blok yang lebih besar menghasilkan latensi yang lebih tinggi, dengan operasi baca
yang lebih cepat daripada operasi tulis. Hasilnya dapat ditemukan di baris lat
.
Mengukur IOPS
IOPS adalah hasil langsung dari latensi dan konkurensi. Gunakan salah satu tab berikut berdasarkan jenis klien Anda untuk mengukur IOPS:
Linux
fio --directory=/netapp \ --ioengine=libaio \ --rw=randread \ --bs=4k \ --iodepth=32 \ --size=10g \ --fallocate=none \ --direct=1 \ --runtime=60 \ --time_based \ --ramp_time=5 \ --name=iops
Windows
fio --directory=Z\:\ --ioengine=windowsaio --thread --rw=randread --bs=4k --iodepth=32 --size=10g --fallocate=none --direct=1 --runtime=60 --time_based --ramp_time=5 --numjobs=16 --name=iops
Ganti parameter rw
(read/write/randread/randwrite), bs
(blocksize),
dan iodepth
(konkurensi) agar sesuai dengan beban kerja Anda. Hasilnya dapat ditemukan di
baris iops
.
Mengukur throughput
Throughput adalah IOPS yang dikalikan dengan ukuran blok. Gunakan salah satu tab berikut berdasarkan jenis klien Anda untuk mengukur throughput:
Linux
fio --directory=/netapp \ --ioengine=libaio \ --rw=read \ --bs=64k \ --iodepth=32 \ --size=10g \ --fallocate=none \ --direct=1 \ --runtime=60 \ --time_based \ --ramp_time=5 \ --numjobs=16 \ --name=throughput
Windows
fio --directory=Z\:\ --ioengine=windowsaio --thread --rw=read --bs=64k --iodepth=32 --size=10g --fallocate=none --direct=1 --runtime=60 --time_based --ramp_time=5 --numjobs=16 --name=throughput
Ganti parameter rw
(read/write/randread/randwrite), bs
(blocksize),
dan iodepth
(konkurensi) agar sesuai dengan beban kerja Anda. Anda hanya dapat mencapai throughput
tinggi menggunakan ukuran blok 64k atau lebih besar dan konkurensi tinggi.
Langkah selanjutnya
Tinjau tolok ukur performa.