Linux壓力測試工具--stress
阿新 • • 發佈:2020-12-24
文章目錄
環境說明
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