linux VM与容器的cpu、内存、文件IO测试
测试由KVM,vmwarm,virtualbox生产的VM和docker容器的cpu,内存,文件IO性能;
测试过程:
1)分别在同一台物理机安装kvm和virtualbox的hypervisor,生产kvm,virtualbox的centos73最小化安装实例,在该物理机上安装docker运行centos73最小化安装容器实例;在另一台安装VMwarm的物理机环境生产一台centos73最小化安装实例。
2)在centos73最小化安装实例,配置本地源,安装测试工具。
3)分别在三个实例中运行测试脚本进行测试。
super_pi测试脚本
super_pi是一个计算圆周率的程序,下了一个super_pi的jar包,执行该程序所需的时间来测试cpu的性能
$ java -jar superpi-1.0.jar -t 4 -i 20 #4个线程 计算圆周率到小数点后2^20位
$ java -jar superpi-1.0.jar -t 4 -i 40 #4个线程 计算圆周率到小数点后2^40位
$ java -jar superpi-1.0.jar -t 8 -i 20 #8个线程 计算圆周率到小数点后2^20位
$ java -jar superpi-1.0.jar -t 8 -i 40 #8个线程 计算圆周率到小数点后2^40位
sysbench测试脚本
使用sysbench可以对linux系统的cpu,内存,文件IO进行性能测试
cpu性能测试
sysbench通过生成素数的时间来测试cpu的性能,分别设置素数最大值为20000,200000,2000000,得出测试所需的时间。
$ sysbench --test=cpu --cpu-max-prime=20000 run
$ sysbench --test=cpu --cpu-max-prime=200000 run
$ sysbench --test=cpu --cpu-max-prime=2000000 run
内存性能测试
使用sysbench可以测试读写内存的速率,有顺序和随机两种访问方式。
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=1G --memory-access-mode=seq --memory-oper=read run #顺序访问模式下读内存 8k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=1G --memory-access-mode=seq --memory-oper=write run #顺序访问模式下写内存 8k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=1G --memory-access-mode=seq --memory-oper=read run #顺序访问模式下读内存 16k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=1G --memory-access-mode=seq --memory-oper=write run #顺序访问模式下读内存 16k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=10G --memory-access-mode=seq --memory-oper=read run #顺序访问模式下读内存 8k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=10G --memory-access-mode=seq --memory-oper=write run #顺序访问模式下写内存 8k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=10G --memory-access-mode=seq --memory-oper=read run #顺序访问模式下读内存 16k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=10G --memory-access-mode=seq --memory-oper=write run #顺序访问模式下写内存 16k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=1G --memory-access-mode=rnd --memory-oper=read run #随机访问模式下读内存 8k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=1G --memory-access-mode=rnd --memory-oper=write run #随机访问模式下写内存 8k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=1G --memory-access-mode=rnd --memory-oper=read run #随机访问模式下读内存 16k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=1G --memory-access-mode=rnd --memory-oper=write run #随机访问模式下写内存 16k块大小 传输总共1G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=10G --memory-access-mode=rnd --memory-oper=read run #随机访问模式下读内存 8k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=8K --memory-total-size=10G --memory-access-mode=rnd --memory-oper=write run #随机访问模式下写内存 8k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=10G --memory-access-mode=rnd --memory-oper=read run #随机访问模式下读内存 8k块大小 传输总共10G数据
$ sysbench --test=memory --memory-block-size=16K --memory-total-size=10G --memory-access-mode=rnd --memory-oper=write run #随机访问模式下写内存 8k块大小 传输总共10G数据
file IO性能测试
sysbench可以测试sync,async,mmap的素随机读,随机写,随机读写,顺序读,顺序写,顺序读写的IO速率
$ sysbench --test=fileio --file-total-size=10G prepare #准备测试文件
#sync
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=rndrw --file-extra-flags=direct run #sync模式下 随机读写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=rndrd --file-extra-flags=direct run #sync模式下 随机读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=rndwr --file-extra-flags=direct run #sync模式下 随机写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=seqrd --file-extra-flags=direct run #sync模式下 顺序读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=seqwr --file-extra-flags=direct run #sync模式下 顺序写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=sync --file-test-mode=seqrewr --file-extra-flags=direct run #sync模式下 顺序读写
#async
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=rndrw --file-extra-flags=direct run #async模式下 随机读写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=rndrd --file-extra-flags=direct run #async模式下 随机读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=rndwr --file-extra-flags=direct run #async模式下 随机写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=seqrd --file-extra-flags=direct run #async模式下 顺序读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=seqwr --file-extra-flags=direct run #async模式下 顺序写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=async --file-test-mode=seqrewr --file-extra-flags=direct run #async模式下 顺序读写
#mmap
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=rndrw --file-extra-flags=direct run #mmap模式下 随机读写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=rndrd --file-extra-flags=direct run #mmap模式下 随机读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=rndwr --file-extra-flags=direct run #mmap模式下 随机写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=seqrd --file-extra-flags=direct run #mmap模式下 顺序读
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=seqwr --file-extra-flags=direct run #mmap模式下 顺序写
$ sysbench --test=fileio --file-total-size=10G --file-block-size=16384 --file-io-mode=mmap --file-test-mode=seqrewr --file-extra-flags=direct run #mmap模式下 顺序读写
$ sysbench --test=fileio --file-total-size=10G cleanup #清理测试文件