浩哥指点,其实有更简单的压测工具:stress。Stress是一个Posix系统下生成Cpu/Menory/IO/Disk负载的工具。

工具参数说明:

-? 显示帮助信息
-v 显示版本号
-q 不显示运行信息
-n,--dry-run 显示已经完成的指令执行情况
-t --timeout N 指定运行N秒后停止
--backoff N 等待N微妙后开始运行
-c --cpu 产生n个进程 每个进程都反复不停的计算随机数的平方根
-i --io 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数
--vm-bytes B 指定malloc时内存的字节数 (默认256MB)
--vm-hang N 指示每个消耗内存的进程在分配到内存后转入休眠状态,与正常的无限分配和释放内存的处理相反,这有利于模拟只有少量内存的机器
-d --hadd n 产生n个执行write和unlink函数的进程
--hadd-bytes B 指定写的字节数,默认是1GB
--hadd-noclean 不要将写入随机ASCII数据的文件Unlink

时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G

以上内容摘录自:https://www.hi-linux.com/posts/59095.html

AWS测试Auto Scaling自伸缩的时候,有个标准是根据CPU百分比触发事件,如何给CPU做压测呢?
经过查证,脚本代码如下:

#! /bin/sh 
# filename killcpu.sh
if [ $# != 1 ] ; then
echo "USAGE: $0 <CPUs>"
exit 1;
fi
for i in `seq $1`
do
echo -ne "
i=0;
while true
do
i=i+1;
done" | /bin/sh &
pid_array[$i]=$! ;
done

for i in "${pid_array[@]}"; do
echo 'kill ' $i ';';
done

使用方式(使用3核示例):

./killcpu.sh 3

以上脚本代码完整摘自:[原]消耗CPU资源的shell脚本

Related Posts: CPU压测Shell脚本 :

avatar