Linux:linux伺服器穩定性壓力測試工具stress安裝與使用
阿新 • • 發佈:2020-10-22
stress是一個linux下的壓力測試工具,專門為那些想要測試自己的系統,完全高負荷和監督這些裝置執行的使用者。
1. stress1.0.4下載地址
下載:https://fossies.org/linux/privat/stress-1.0.4.tar.gz
2.安裝stress
將下載的stress-1.0.4.tar.gz複製到“/usr/local/src/”目錄下
#切換目錄 cd /usr/local/src #解壓tar.gz包 tar -xzpvf stress-1.0.4.tar.gz #進入解壓目錄 cd stress-1.0.4 #開始安裝 ./configure make make checkmake install make clean
3.stress使用說明
Stress 選項說明: -? --help #顯示幫助資訊 ---------------------------------------------- --version #顯示軟體版本資訊 ---------------------------------------------- -v --verbose #顯示詳細執行資訊 ---------------------------------------------- -q --quiet #不顯示執行資訊 ---------------------------------------------- -n--dry-run #顯示已經完成的指令執行情況 ---------------------------------------------- -t secs --timeout secs #指定執行多少秒 ---------------------------------------------- --backoff usecs #等待usecs微秒後才開始執行 ---------------------------------------------- -c forks --cpu forks #產生多個處理sqrt()函式的CPU程序 ---------------------------------------------- -i forks--io forks #產生多個處理sync()函式的磁碟I/O程序 ---------------------------------------------- -m forks --vm forks #產生多個處理malloc()記憶體分配函式的程序 ---------------------------------------------- --vm-bytes bytes #指定記憶體的Bytes數,預設值是1(與--vm-hang配合使用) ---------------------------------------------- --vm-hang #指示每個消耗記憶體的程序在分配到記憶體後轉入休眠狀態,與正常的無限分配和釋放記憶體的處理相反,這有利於模擬只有少量記憶體的機器;例如,下面命令執行時就會分配到並一直持有256M記憶體,直到程序被終止; % stress --vm 2 --vm-bytes 128M --vm-hang ---------------------------------------------- -d forks --hdd forks #產生多個執行write()函式的程序 ---------------------------------------------- --hdd-bytes bytes #指定寫的Bytes數,預設是1GB ---------------------------------------------- --hdd-noclean #不要將寫入隨機ASCII資料的檔案Unlink 注意:時間單位可以為秒s,分m,小時h,天d,年y,檔案大小單位可以為K,M,G 示例: 一個簡單的例子就是你只想給系統一個隨機負載,此命令產生13個程序,每個程序都反覆不停的計算由rand()產生隨機數的平方根 ---------------------------------------------- % stress -c 13 #Stress支援很多選項,可以指定僅顯示有限的執行資訊,以下命令產生1024個程序,僅顯示出錯資訊 ---------------------------------------------- % stress --quiet --cpu 1k #為了觀察系統何時達到I/O極限,可以使用選項“-i”,以下指令產生4個程序,每個程序反覆呼叫sync(),sync()用於將記憶體上的內容寫到硬碟上 ---------------------------------------------- % stress -i 4 #可以在一條指令中使用多個消耗資源的選項,如下指令表示顯示執行資訊,一分鐘後終止執行(13個CPU程序,4個I/O程序) ---------------------------------------------- % stress -c 13 -i 4 --verbose --timeout 1m #你也可以指定向磁碟中寫入固定大小的檔案,這個檔案通過呼叫mkstemp()產生並儲存在當前目錄下,預設是檔案產生後就被執行unlink(清除)操作,但是你可以使用“--hdd-bytes”選項將產生的檔案全部儲存在當前目錄下,這會將你的磁碟空間逐步耗盡 ---------------------------------------------- % stress -d 1 --hdd-noclean --hdd-bytes 13 #可以支援生成大檔案 % stress -d 1 --hdd-noclean --hdd-bytes 3G ----------------------------------------------
4.測試方式
建議開啟三個Xshell連線終端。
第一個終端:
測試一
執行 stress 命令,模擬一個 CPU 使用率 100%,執行10分鐘的場景
#一個cpu使用率100%,執行10分鐘場景 stress --cpu 1 --timeout 600
測試二
主要測試硬碟,生成檔案放到硬碟內
#var下建立測試目錄 mkdir -p /var/test #切換到test目錄 cd /var/test #測試硬碟,生成800k大小的檔案,寫到硬碟內 stress -d 1 --hdd-noclean --hdd-bytes 800k
測試三
提升cpu與cpu使用率的測試 ,生成檔案放到硬碟內
#還是切換到 /var/test/ 測試目錄下,沒有的新建一個 cd /var/test #增大“c”值提高cpu數;增大“i”值提高CPU的使用率;增大“d”值會減少CPU的使用率,從而增加對硬碟的資料寫入量,但是對記憶體要求不高 stress -c 4 -i 4 -d 1 --hdd-noclean --hdd-bytes 800k
測試四
提升vm值,測試記憶體使用率,生成檔案放到硬碟內
#還是切換到 /var/test/ 測試目錄下,沒有的新建一個 cd /var/test #增大“vm”、“--vm-bytes” 或 “—vm-hang” 選項的值都會提高記憶體的使用率 stress -c 1 -i 1 --vm 6 --vm-bytes 128M -d 2 --hdd-noclean --hdd-bytes 800k #注意: #執行過程中,您可以通過進入其他終端,執行“df”命令,檢視磁碟是否已滿(也就是/var/test是否已滿),如果磁碟已滿,則程式“stress”會報錯並終止。 #如果報錯終止執行以下操作,清空測試目錄,如果有需要;進入到測試目錄下(/var/test或者別的目錄),繼續執行“stress”進行測試 #給/var/test賦許可權 chmod -R 755 /var/test #清空目錄 rm -R -f /var/test/ #切換目錄 cd /var/test/ #接著測試(vm-bytes可以下降點繼續測試) stress -c 1 -i 1 --vm 6 --vm-bytes 128M -d 2 --hdd-noclean --hdd-bytes 800k
第二個終端:
執行 uptime 檢視平均負載的變化情況
#檢視平均負載變化 uptime
檢視動態平均負載情況命令如下:
#動態平均負載情況 watch -d uptime
第三個終端:
mpstat命令監控cpu
執行 mpstat 檢視 CPU 使用率的變化情況
#檢視cpu使用率的變化情況
mpstat
監控所有cpu,每隔一段時間輸出一組資料
#監控所有 CPU,後面數字 5 表示間隔 5 秒後輸出一組資料 mpstat -P ALL 5
pidstat命令監控cpu
pidstat是sysstat工具的一個命令,用於監控全部或指定程序的cpu、記憶體、執行緒、裝置IO等系統資源的佔用情況。
#pidstat 的用法: pidstat [ 選項 ] [ <時間間隔> ] [ <次數> ]
常用的引數:
- -u:預設的引數,顯示各個程序的cpu使用統計
- -r:顯示各個程序的記憶體使用統計
- -d:顯示各個程序的IO使用情況
- -p:指定程序號
- -w:顯示每個程序的上下文切換情況
- -t:顯示選擇任務的執行緒的統計資訊外的額外資訊
- -T { TASK | CHILD | ALL }
這個選項指定了pidstat監控的。TASK表示報告獨立的task,CHILD關鍵字表示報告程序下所有執行緒統計資訊。ALL表示報告獨立的task和task下面的所有執行緒。
注意:task和子執行緒的全域性的統計資訊和pidstat選項無關。這些統計資訊不會對應到當前的統計間隔,這些統計資訊只有在子執行緒kill或者完成的時候才會被收集。 - -V:版本號
- -h:在一行上顯示了所有活動,這樣其他程式可以容易解析。
- -I:在SMP環境,表示任務的CPU使用率/核心數量
- -l:顯示命令名和所有引數
檢視所有CPU使用情況
#檢視所有程序的 CPU 使用情況( -u -p ALL) #pidstat 和 pidstat -u -p ALL 是等效的。 #pidstat 預設顯示了所有程序的cpu使用率。 pidstat 或 pidstat -u -p ALL
5秒查詢一次,共查詢一次,所有cpu使用情況
#設定5秒間隔,共查詢1次 pidstat 5 1
5.解除安裝stress方式
如果不想保留在伺服器內,可以通過如下方式解除安裝
#解除安裝命令 rm -R -f /usr/local/src/stress-0.18.1/ rm -f /usr/local/bin/stress rm -f /usr/local/src/stress-0[1].18.1.tar.gz
文章整合至:https://blog.csdn.net/cojn52/article/details/89680093、https://www.cnblogs.com/wx170119/p/11411312.html