Linux/Performance Testing
< Linux
(Redirected from Linux Performance Testing)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