stress
- 對系統增加負載和壓力測試的工具
stress [option [arg]] ...
描述
- stress將指定類型的計算壓力加到系統上
選項
-
-v,–verbose
-
-q, --quiet
-
-n, --dry-run
- 展示已經做了什麼
-
-t, --timeout N
- 在N秒之後超時
-
–backoff N
- 在任務開始之前等待N us
-
-c, --cpu N
- 創建N個工作進程快速執行sqrt()
-
-i, --io N
- 創建N個工作進程快速執行sync()
-
-m, --vm N
- 創建N個工作進程執行malloc()/free()
-
–vm-bytes B
- 每個vm進程分配B字節內存空間(默認是256MB)
-
–vm-stride B
- 每隔B個字節touch一個字節(默認是4096),不知道用幹嗎的
-
–vm-hang N
- 在釋放內存之前(默認是不休眠,0是無限休眠)休眠N秒
-
–vm-keep
- 重新弄髒內存,而不是釋放和重新申請內存
-
-d, --hdd N
- 創建N個工作進程執行write()/unlink()
-
–hdd-bytes B
- 每個hdd工作進程寫B個字節(默認寫1GB)
-
實例
- stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
- 注意:
- 數字類的可能帶有後綴,時間類的帶s,m,h,d,y,大小類的帶B,K,M,G
info stress文檔
概覽
- stress不是一個基準測試程序(benchmark)
- stress是一個把指定負載加到指定的子系統上的一個工具
- 對於一個系統管理員想要執行微調活動,或者是一個內核或者libc庫的程序員想要去評估拒絕服務的可能性等場景,這個工具非常實用
實例分析
- 簡單的場景就是想要把系統的平均負載增加到一個任意值,接下來fork13個子進程,每一個都執行計算一個用rand()獲取的隨機數的sqrt()
stress -c 13
- 支持長選項,這個命令創建1024個進程,並且只輸出錯誤信息,如果有出錯信息的話;
stress --quiet --cpu 1k
- 創建4個進程,每個子進程快速調用sync()
stress -i 4
- 1分鐘後超時
stress -c 13 -i 4 --verbose --timeout 1m
- 可以寫一個任意長度的文件到磁盤,文件用mkstemp()在當前目錄下創建,默認行爲是刪除掉,unlink也可以通過設置–hdd-noclean選項來被覆蓋
stress -d 1 --hdd-noclean --hdd-bytes 13
stress -d 1 --hdd-noclean --hdd-bytes 3G