镜像名称:polinux/stress
压测指令:
压满一个cpu,执行10分钟:
stress --cpu 1 --timeout 600
压满1G内存,执行10分钟:
stress --vm 10 --vm-bytes 100m --vm-hang 100 --timeout 600s
–vm-bytes 表示malloc分配多少内存
–vm-hang 表示malloc分配的内存多少时间后在free()释放掉
–vm 指定进程数量
10个进程一个100mb所以是1G
(缺陷:只能压满,不能超)
(弥补stress不能超内存测试,方法如下)
如果是测试内存限制,cpu限制,则使用centos镜像执行以下脚本:
#!/bin/bash
mkdir /tmp/memory
mount -t tmpfs -o size=2048M tmpfs /tmp/memory
dd if=/dev/zero of=/tmp/memory/block
sleep 600
rm /tmp/memory/block
umount /tmp/memory
rmdir /tmp/memory
#! /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
耗尽系统的所有CPU资源:
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
IO:
stress –d 1 --hdd-bytes 3G
stress --hdd 1 --hdd-bytes 3G
新增1个写进程,每次写3G文件块
dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync