使用linux測試工具,對服務器的內存,cpu,磁盤io,網卡吞吐容量與可靠性等服務器硬件性能進行測試
測試工具介紹
-
內存與磁盤io:dd命令可從標准輸入中讀取數據,根據指定的格式來轉換數據,再輸出到磁盤中,統計讀取寫入速度即可統計出io,將讀取的數據寫入/dev/null即可統計出內存速度。
-
cpu:sysbench是一個多線程的Linux壓力測試工具,使用單位線程中素數的加法進行CPU性能測試。計算單位線程有限時間內的素數計算次數,即可統計出cpu性能。
-
網卡吞吐容量:iperf 是一個網絡性能測試工具,可以基於多種參數來對UDP與TCP性能。通過客戶端與服務端數據測試,即可統計出網卡吞吐與可靠性。
-
http響應:ab是Apache自帶的壓力測試工具。它不僅可以對Apache服務器進行網站訪問壓力測試,也可以對或其它類型的服務器進行壓力測試。可以測試安裝Web服務器每秒種處理的HTTP請求的詳細信息。
-
dns響應:curl是linux下的下載工具,可以根據下載請求數據包的內容來統計出dns響應的時間。
服務器
硬件配置:
- 2核單線程cpu
- 8G內存
- 100G數據磁盤
硬盤讀寫測試
命令:sudo dd if=/dev/zero of=iotest bs=G count=20
功能:在磁盤中生成20G的大文件
內存性能測試
命令:sudo dd if=/dev/zero of=/dev/null bs=G count=100
功能:在內存中加載100G內容
cpu性能測試
命令:sysbench cpu --cpu-max-prime=20000 --threads=2 --time=10 run
功能:啟動兩個線程進行cpu計算,時間10s,上限20000次
http響應測試
命令:ab -n 100 -c 10 http://172.25.1.42/index.php
功能:保持10的並發連接數,共發起100次請求
網卡測試
命令: iperf -s -P 0 -i 1 -p 5001 -w 2M -f k (服務端) iperf -c IP -i 1 -w 2M -t 10 (客戶端)
功能:指定tcp傳輸單位為2M,測試傳輸10s
dns解析時間
命令:curl -o /dev/null -s -w time_namelookup:"\t"%{time_namelookup}"\n"time_connect:"\t\t"%{time_connect}"\n"time_appconnect:"\t"%{time_appconnect}"\n"time_pretransfer:"\t"%{time_pretransfer}"\n"time_starttransfer:"\t"%{time_starttransfer}"\n"time_total:"\t\t"%{time_total}"\n"time_redirect:"\t\t"%{time_redirect}"\n" https://www.baidu.com
功能:測試服務器dns解析時,tcp連接,獲取dns解析,完成請求的時間並統計