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

6.保存監測數據

可以查看我的另一篇文章:Linux:監測收集linux服務器性能數據工具Sysstat的使用與安裝

 

文章整合至:https://blog.csdn.net/cojn52/article/details/89680093https://www.cnblogs.com/wx170119/p/11411312.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM