前文:
跟netperf一样,虽然之前也写过相关脚本,但是认识并不够深刻,趁此机会,一并整理下思路
经过:
模拟系统在加压下的执行情况。
清理参数
-v --verbose 详细列出测试过程
-q --quiet 不做任何输出
-n --dry-run 立即输出最后的输出内容
-t --timeout N N秒后测试结束
--backoff 开始测试之前等待N毫秒
-c --cpu N 产生N个进程。stress使用sqrt()去消耗cpu计算量,每次fork一个检查去sqrt(),这块如果要完全压测,应该去读取cpuinfo,根据核心数设置
-i --io N 产生N个进程。stress使用sync()去同步缓存。
-m --vm N 产生N个进程。stress使用malloc()/free()去消耗内存。
--vm-bytes B 每个vm分配B Bytes,默认为256MB
--vm-stride B 分配vm-bytes的步长
--vm-hang N free之前等待N秒,默认没有设置,设置数值最小是0
--vm-keep 为了避免污染到内存,设置此参数后,后续分配将在第一次的基础上进行分配
-d --hdd N 产生N个进程。用于write()/unlink()
--hdd-bytes B 每个hdd进程写B bytes,默认是1GB
具体使用上,之前认为-c是跟系统核心有关,后面发现,其实不是,目前我也不清楚每个参数的最大数值。
具体使用中-c应该按照逻辑核心数的数量按作100%去替换。
在使用stress测试前后,使用uptime查看实际的负载情况。
参考1
参考2
参考3
网友评论