还是老规矩,先请性能领域的大师布伦丹·格雷格(Brendan Gregg)登场 👏👏👏
linux_benchmarking_tools
整理测试指标如下图
图片
测试环境说明:CentOS7, 4c8g
CPU
Super_Pi 是一种用于计算圆周率π的程序,通常用于测试计算机性能和稳定性。它的主要用途是测量系统的单线程性能,因为它是一个单线程应用程序。
图片
sysbench 素数计算
图片
内存
内存带宽(stream)
Stream测试是内存测试中业界公认的内存带宽性能测试基准工具
图片
磁盘 IO
⚠️ 测试时请准备裸的数据盘,测试完成后请重新格式化磁盘
测试方法和结果分析和文件 IO 测试相同,--filename 改为具体的数据盘即可,比如/dev/sda ,这里不再赘述
文件 IO
磁盘读、写iops
iops:磁盘的每秒读写次数,这个是随机读写考察的重点
图片
图片
磁盘读、写带宽
bw:磁盘的吞吐量,这个是顺序读写考察的重点
图片
图片
⚠️ 因地制宜,灵活选取。在基准测试时,一定要注意根据应用程序 I/O 的特点,来具体评估指标。
比如 etcd 磁盘性能衡量指标为:WAL 文件系统调用 fsync 的延迟分布,当 99% 样本的同步时间小于 10 毫秒就可以认为存储性能能够满足 etcd 的性能要求。
mkdir etcd-bench fio --rw=write --ioengine=sync --fdatasync=1 --directory=etcd-bench --size=22m --bs=2300 --name=etcd-bench
图片
网络
传输速率(pps)
图片
网络带宽
图片
Nginx
图片
自动化压测脚本
压测需要大量采样,并实时观察
图片
更多测试方法,详见 https://github.com/clay-wangzhi/bench