Stress
stress 是壓力測試工具,是Posix系統下生成CPU/Menory/IO/Disk負載的工具,這裏我們用作異常進程模擬平均負載升高的場景
Stress 安裝
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install stress -y
Stress 參數說明
-? 顯示幫助信息
-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
Stress 使用教程
-
多CPU
#增加13個cpu進程,每個進程都反覆不停的計算處理sqrt()函數函數,以提高系統CPU負荷 stress -c 13
-
多io操作
stress --io 5 stress -i 5
-
產生多個CPU與多個io進程並且定時1分鐘停止
stress -c 4 -i 4 --timeout 1m stress: info: [19613] dispatching hogs: 4 cpu, 4 io, 0 vm, 0 hdd stress: info: [19613] successful run completed in 60s stress -c 13 -i 4 --verbose --timeout 1m #產生13個cpu進程4個io進程1分鐘後停止運行
-
輸出文件到本地
stress -d 1 --hdd-bytes 1G
當然stress並不止這些內容,但有一點注意stress無法模擬更復雜的場景,並且stress的壓力CPU是在用戶態,內核態並沒有產生壓力。如果需要更復雜的壓力測試我們還可以使用stress-ng。