Narzędzia Linux - Fio (testy przepustowości)

| F.A.Q.Wsparcie

Narzędzia Linux - Fio (testy przepustowości)

Konfiguracja na której przeprowadzono testy:

  • Supermicro CSE-GS5A-754K
  • Supermicro MBD-X12SCZ-F-B
  • Intel Xeon W-1270 - P4X-CMLW1270-SRH96
  • Supermicro SNK-P0051AP4
  • Micron 32GB DDR4-2666 2Rx8 VLP (16Gb) ECC UDIMM - MEM-DR432L-CV02-EU26
  • Toshiba XG6 512GB NVMe M.2 22x80mm <1DWPD - HDS-TMN0-KXG60ZNV512G (/dev/nvme)
  • Western Digital WD DT 3TB SATA 5.4K RPM 64MB Cache - HDD-3TD-WD30EZRX (/dev/sda)

1. Test zapisu ciągłego (sequential write) na /dev/sda

  • Rozmiar danych 1GB
  • Write 100%
  • Rozmiar bloku 4k
  • Dysk: HDD 5400 RPM
  • Wskaźnik wydajności: IOPS oraz MB/s
  • Typ testu: Zapis sekwencyjny

# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=seq_write.fio --bs=4k --iodepth=64 --size=1024M --readwrite=write

test: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.16
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=88.4MiB/s][w=22.6k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=30712: Fri Aug 25 14:07:03 2023
 write: IOPS=23.8k, BW=93.1MiB/s (97.6MB/s)(1024MiB/11003msec); 0 zone resets
  bw (  KiB/s): min=52702, max=104744, per=99.98%, avg=95283.05, stdev=15987.46, samples=22
  iops        : min=13175, max=26186, avg=23820.73, stdev=3996.92, samples=22
 cpu          : usr=1.35%, sys=7.47%, ctx=134484, majf=0, minf=10
 IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
    issued rwts: total=0,262144,0,0 short=0,0,0,0 dropped=0,0,0,0
    latency   : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
 WRITE: bw=93.1MiB/s (97.6MB/s), 93.1MiB/s-93.1MiB/s (97.6MB/s-97.6MB/s), io=1024MiB (1074MB), run=11003-11003msec

Disk stats (read/write):
 sda: ios=0/135109, merge=0/127062, ticks=0/344211, in_queue=88984, util=99.17%

Test zapisu / odczytu losowego (Random read/write) na /dev/sda

  • Rozmiar danych 256MB
  • Write 20%
  • Rozmiar bloku 4k
  • Dysk: HDD 5400 RPM
  • Wskaźnik wydajności: IOPS oraz MB/s
  • Typ testu: Zapis oraz odczyt losowy

 # fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=256M --readwrite=randrw --rwmixread=80
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.16
Starting 1 process
test: Laying out IO file (1 file / 256MiB)
Jobs: 1 (f=1): [m(1)][99.6%][r=184KiB/s,w=52KiB/s][r=46,w=13 IOPS][eta 00m:01s]
test: (groupid=0, jobs=1): err= 0: pid=33915: Fri Aug 25 15:52:13 2023
read: IOPS=197, BW=792KiB/s (811kB/s)(205MiB/264574msec)
bw ( KiB/s): min= 16, max= 2104, per=100.00%, avg=810.99, stdev=341.90, samples=516
iops : min= 4, max= 526, avg=202.72, stdev=85.48, samples=516
write: IOPS=49, BW=199KiB/s (204kB/s)(51.5MiB/264574msec); 0 zone resets
bw ( KiB/s): min= 8, max= 568, per=100.00%, avg=211.69, stdev=97.54, samples=497
iops : min= 2, max= 142, avg=52.88, stdev=24.38, samples=497
cpu : usr=0.49%, sys=1.50%, ctx=59010, majf=0, minf=9
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
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.1%, >=64=0.0%
issued rwts: total=52362,13174,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
READ: bw=792KiB/s (811kB/s), 792KiB/s-792KiB/s (811kB/s-811kB/s), io=205MiB (214MB), run=264574-264574msec
WRITE: bw=199KiB/s (204kB/s), 199KiB/s-199KiB/s (204kB/s-204kB/s), io=51.5MiB (53.0MB), run=264574-264574msec

Disk stats (read/write):
sda: ios=51870/13244, merge=474/92, ticks=14665486/1987293, in_queue=16522788, util=100.00%

Dodatkowe Testy:

1) Random write IOPS (4 KB for single I/O):

fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

2) Random read IOPS (4 KB for single I/O):

fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

3) Sequential write throughput (write bandwidth) (128 KB for single I/O):

fio -direct=1 -iodepth=128 -rw=write -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

4) Sequential read throughput (read bandwidth) (128 KB for single I/O):

fio -direct=1 -iodepth=128 -rw=read -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

5) Random write latency (4 KB for single I/O):

fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

6) Random read latency (4 KB for single I/O):

fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

7) Sequential write latency (4 KB for single I/O):

fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

8) Sequential read latency (4 KB for single I/O):

fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=60 -group_reporting -filename=/dev/vdx -name=test

Powiązane strony:

  1. Narzędzia Linux - dd (Tworzenie obrazu ISO, Test przepustowości)
  2. Narzędzia Linux - Hdparm - (Zarządzanie dyskami oraz testy przepustowości)
  3. Smartmontools - Narzędzie do analizy danych SMART dysków HDD, SSD, NVMe
  4. Jak wyłączyć rdzenie CPU w Linuksie (Jak ograniczyć zużycie energii przez procesor)