1. 程式人生 > 其它 >Linux壓力測試工具--stress

Linux壓力測試工具--stress

文章目錄

環境說明

centos7作業系統
配置:4核10G

由於配置不同測試的效果也不同,建議執行程序數和cpu核數一致;其他引數根據伺服器配置情況進行修改

功能說明

增加Linux系統CPU、記憶體、磁碟I/O資源佔用,模擬高資源佔用場景

安裝/用法

$ yum install stress -y
$ stress --help
`stress' imposes certain types of compute stress on your system

Usage: stress [OPTION [ARG]] ...
 -?, --help         show this help statement
     --version      檢視stress版本號
 -v, --verbose      顯示 stress 程式執行過程中的詳細資訊
 -q, --quiet        stress 程式執行的過程中不輸出資訊。
 -n, --dry-run      輸出程式會做什麼而並不實際執行相關的操作
 -t, --timeout N    在 N 秒後結束程式。
     --backoff N    讓新 fork 出來的程序 sleep N 微秒再開始執行。
 -c, --cpu N        產生 N 個程序,每個程序都反覆不停的呼叫sqrt()函式計算隨機數的平方根
 -i, --io N         產生 N 個程序,每個程序反覆呼叫 sync() 將記憶體上的內容寫到硬碟上
 -m, --vm N         產生 N 個程序,每個程序不斷分配和釋放記憶體
     --vm-bytes B   指定分配記憶體的大小
     --vm-stride B  不斷的給部分記憶體賦值,讓 COW(Copy On Write)發生
     --vm-hang N    指示每個消耗記憶體的程序在分配到記憶體後轉入睡眠狀態 N 秒,然後釋放記憶體,一直重複執行這個過程
     --vm-keep      一直佔用記憶體,區別於不斷的釋放和重新分配(預設是不斷釋放並重新分配記憶體)
 -d, --hdd N        產生 N 個不斷執行 write 和 unlink 函式的程序(建立檔案,寫入內容,刪除檔案)
     --hdd-bytes B  指定檔案大小 (default is 1GB)

Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).

模擬cpu資源消耗

stress 消耗 CPU 資源的方式是通過呼叫 sqrt() 函式計算由 rand() 函式產生的隨機數的平方根實現的。

$ stress -c 4 --timeout 60

-c:表示多少個程序執行
--timeout:表示執行多久秒退出

可以使用 top 命令檢視cpu狀態如下,cpu在使用者態滿負荷執行 (top命令下按 1 可以檢視每個cpu單獨的情況)

模擬記憶體資源消耗

模擬4個程序,每個程序分配1000M記憶體(程序一直佔用記憶體)

stress --vm 4 --vm-bytes 2000M --vm-keep

cpu主要消耗在使用者態

模擬4個程序,每個程序分配1000M記憶體(每個消耗記憶體的程序在分配到記憶體後轉入睡眠狀態 3 秒,然後釋放記憶體,一直重複執行這個過程)

stress --vm 4 --vm-bytes 2000M --vm-hang 3

cpu消耗主要在核心態

模擬io資源消耗

產生 4 個程序,每個程序都反覆呼叫 sync 函式將記憶體上的內容寫到硬碟上:

$ stress -i 4

使用top命令輸出cpu情況如下,sy(system:代表核心態 CPU 時間)使用率升高

說明:因為新啟動的系統所以記憶體沒有多少資料並沒有造成 wa(iowait:代表等待 I/O 的 CPU 時間)時間升高

壓測磁碟及 IO

建立4個程序不斷的在磁碟上建立 100M 大小的檔案並寫入內容:

$ stress -d 4 --hdd-bytes 100M

參考:https://www.cnblogs.com/vaon/p/13696260.html