二:CPU的測試方法
多窗口執行該語句,然後查看cpu使用情況
方式1:寫一個高循環腳本
while [ 1 ]
do
echo 1 >> /dev/null
done
方式2:模擬用戶不間斷的訪問
多窗口執行該語句,然後查看cpu使用情況,不間斷的刷新訪問web服務器
for i in $(seq 2000) ;do curl http://127.0.0.1:8080 ; done
方式3:模擬併發進程,佔用cpu資源
參考博客
#!/bin/bash
# 併發運行的最佳實踐
# 總進程數
Sp=2500
# 併發數,併發數過大可能造成系統崩潰
Qp=250
# 存放進程的隊列
Qarr=();
# 運行進程數
run=0
# 將進程的添加到隊列裏的函數
function push() {
Qarr=(${Qarr[@]} $1)
run=${#Qarr[@]}
}
# 檢測隊列裏的進程是否運行完畢
function check() {
oldQ=(${Qarr[@]})
Qarr=()
for p in "${oldQ[@]}";do
if [[ -d "/proc/$p" ]];then
Qarr=(${Qarr[@]} $p)
fi
done
run=${#Qarr[@]}
}
# main
for((i=0; i<$Sp; i++));do
#for i in `seq 500000`; do curl -o /dev/null -s -w %{http_code}:%{time_total} http://www.baidu.com ;echo " "; done
echo "running $i "
sleep 3 &
push $!
while [[ $run -gt $Qp ]];do
check
sleep 0.1
done
done
echo -e "time-consuming: $SECONDS seconds" #顯示腳本執行耗時
4:cpu使用率測試
在執行腳本後,進行測試,可以在shell中開多個窗口執行腳本,併發進程,搶佔cpu資源
間隔60秒採集一次,共計採集10次
sar -u 60 10