1. 程式人生 > 實用技巧 >Linux:linux伺服器穩定性壓力測試工具stress安裝與使用

Linux:linux伺服器穩定性壓力測試工具stress安裝與使用

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 check

make 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/89680093https://www.cnblogs.com/wx170119/p/11411312.html