lLinux 下 Stress 壓力測試工具

做者信息
郵箱:sijiayong000@163.com
Q Q:601566386linux

Stress是什麼

stress是一個linux下的壓力測試工具,專門爲那些想要測試本身的系統,徹底高負荷和監督這些設備運行的用戶。ios

安裝

方式一

將stress的安裝包上傳並解壓到linux服務器的/usr/local/src路徑下,
執行:tar -xf stress_1.0.1.orig.tar.gz服務器

進入解壓後的stress-1.0.1文件夾,
輸入:./configure網絡

進行配置,若配置失敗,並打印no acceptable c compiler found in path
則表示無可用的GCC編譯環境,輸入yum –y install gcc自動下載安裝。函數

配置完成後,依次輸入
至此,stress就所有安裝完成了,在命令行會打印stress安裝成功的提示。工具

方式二

須要有epel
可以使用aliyunepel
執行:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
可直接使用:yum install stress -y性能

使用指南

首先需創建測試目錄,供放置寫磁盤的文件。測試

stress各主用參數說明(-表示後接一箇中劃線,--表示後接2箇中劃線,都可用於stress後接參數,不一樣表達方式):命令行

-?
--help 顯示幫助信息
--version 顯示軟件版本信息
-t secs:
--timeout secs指定運行多少秒
--backoff usecs 等待usecs微秒後纔開始運行
-c forks:
--cpu forks 產生多個處理sqrt()函數的CPU進程
-m forks
--vm forks:產生多個處理malloc()內存分配函數的進程,後接進程數量
-i forks
--io forks:產生多個處理sync()函數的磁盤I/O進程
--vm-bytes bytes:指定內存的byte數,默認值是1
--vm-hang:表示malloc分配的內存多少時間後在free()釋放掉
-d :
--hdd:寫進程,寫入固定大小,經過mkstemp()函數寫入當前目錄
--hdd-bytes bytes:指定寫的byte數,默認1G
--hdd-noclean:不要將寫入隨機ascii數據的文件unlink,則寫入的文件不刪除,會保留在硬盤空間。code


測試場景舉例

一、測試CPU負荷
輸入命令:stress –c 4
增長4個cpu進程,處理sqrt()函數函數,以提升系統CPU負荷

二、內存測試
輸入命令:stress –i 4 –vm 10 –vm-bytes 1G –vm-hang 100 –timeout 100s
新增4個io進程,10個內存分配進程,每次分配大小1G,分配後不釋放,測試100S

三、磁盤I/O測試
輸入命令:stress –d 1 --hdd-bytes 3G
新增1個寫進程,每次寫3G文件塊

四、硬盤測試(不刪除)
輸入命令:stress –i 1 –d 10 --hdd-bytes 3G –hdd-noclean
新增1個IO進程,10個寫進程,每次寫入3G文件塊,且不清除,會逐步將硬盤耗盡。

linux下服務器性能監控

top監控總體使用狀況
各參數涵義以下:

load average:當前系統負載的平均值,後面的3個值分別爲1分鐘、5分鐘、15分鐘前進程的平均數。通常認爲這個數超過CPU數目時,CPU將比較吃力地負載當前系統所包含的進程。

表示CPU的幾個參數:

  • us:用戶空間佔用CPU百分比
  • sy:內核空間佔用CPU百分比
  • ni:用戶進程空間內改變過優先級的進程佔用CPU百分比
  • id:空閒CPU百分比
  • wa:等待輸入輸出的cpu時間百分比

輸入top後,按大寫P,以CPU佔用大小排序,按M,之內存佔用大小排序

從應用程序的角度來看,可用內存=系統free memory+buffers+cached,其中buffers/cached是爲了提升文件讀取的性能,當應用程序要用到內存的時候,buffer/cached會很快地被回收

服務器I/O讀寫負載評估
先用top查看,wa的值標識I/O等待所佔用的CPU時間的百分比,高於30%時I/O壓力高。

再用iostat –x 1 10查看,若是沒有該文件,要yum install systat安裝。
查看%util,%idle,若是%util接近100%,說明產生的I/O請求太多,I/0系統已經滿負荷,該磁盤可能存在瓶頸,%idle小於70%,I/0壓力就比較大了,通常讀取速度有較多的等待。

同時結合vmstat -1命令,查看b參數,表示等待資源的進程數,如等待I/O,內存等,如常時間>1,則要關注。可評估i/o讀寫負載。

其餘系統平常管理

  • 查看系統的cpu數:cat /proc/cpu info
  • 監控系統狀態,查看具體是哪裏的壓力:vmstat
  • proc列顯示進程相關信息
  • r表示運行和等待CPU時間片的進程數,如長期>服務器CPU個數,說明CPU不夠用了
  • swap表示內存交換狀況
  • 查看內存使用狀況:free
  • 查看系統進程:ps aux
  • 打印網絡鏈接情況:netstat –an
  • 打印當前系統啓動哪些端口:netstat –lnp
  • 查看磁盤的使用狀況和文件系統被掛載的位置:df –lh
相關文章
相關標籤/搜索