Linux/Performance Testing

From Omnia
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Monitor System

CPU

  • top
  • vmstat

Disk

  • vmstat
  • iostat
  • iotop
dd if=/dev/zero of=test.img bs=8k count=10k

10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s
time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync"

Ref: [1]

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Random 4K read QD1 (this is the number that really matters for real world performance unless you know better for sure):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

My versions: (2 minute test)

fio --name=test --filename=test.img --rw=write --size=1g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --loop=99 --runtime=120
fio --name=test --filename=test.img --rw=randwrite --size=1g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --loop=99 --runtime=120
fio --name=test --filename=test.img --rw=read --size=1g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --loop=99 --runtime=120
fio --name=test --filename=test.img --rw=randread --size=1g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --loop=99 --runtime=120
# single queue depth
fio --name=test --filename=test.img --rw=write --size=1g --blocksize=1024k --ioengine=libaio --iodepth=1 --direct=1 --loop=99 --runtime=120
fio --name=test --filename=test.img --rw=read --size=1g --blocksize=1024k --ioengine=libaio --iodepth=1 --direct=1 --loop=99 --runtime=120


disk-perf.sh

#!/bin/bash

for QD in 1 32 ; do

for BS in 1024k 4096k ; do

echo "SEQ WRITE $BS ${QD}QD:"
for i in 1 2 ; do
  fio --name=test --filename=test.img --rw=write --size=1g --blocksize=$BS --ioengine=libaio --iodepth=$QD --direct=1 --loop=99 --runtime=120 | grep "WRITE:"
  sleep 10
done

echo "SEQ READ $BS ${QD}QD:"
for i in 1 2 ; do
  fio --name=test --filename=test.img --rw=read --size=1g --blocksize=$BS --ioengine=libaio --iodepth=$QD --direct=1 --loop=99 --runtime=120 | grep "READ:"
  sleep 10
done

echo "RAND WRITE $BS ${QD}QD:"
for i in 1 2 ; do
  fio --name=test --filename=test.img --rw=randwrite --size=1g --blocksize=$BS --ioengine=libaio --iodepth=$QD --direct=1 --loop=99 --runtime=120 | grep "WRITE:"
  sleep 10
done

echo "RAND READ $BS ${QD}QD:"
for i in 1 2 ; do
  fio --name=test --filename=test.img --rw=randread --size=1g --blocksize=$BS --ioengine=libaio --iodepth=$QD --direct=1 --loop=99 --runtime=120 | grep "READ:"
  sleep 10
done

done

done

Random Read Random Write

fio --name=global --iodepth=32 --bs=128k --direct=1 \
  --ioengine=libaio \
  --filename=/dev/nvme0n1 \
  --name=randwrite --rw=randwrite \
  --name=randread --rw=randread
fio --name=global --runtime=10m --iodepth=32 --bs=128k --direct=1 \
  --ioengine=libaio \
  --filename=/dev/nvme0n1 \
  --name=randwrite --rw=randwrite \
  --name=randread --rw=randread

Full Sequential Read Write

fio --name=global --iodepth=32 --bs=128k --direct=1 \
  --ioengine=libaio \
  --filename=/dev/nvme0n1 \
  --name=write --rw=write \
  --name=read --rw=read
fio --name=global --runtime=10m --iodepth=32 --bs=128k --direct=1 \
  --ioengine=libaio \
  --filename=/dev/nvme0n1 \
  --name=write --rw=write \
  --name=read --rw=read

Network

  • iptraf
  • nmon

keywords