歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux磁盤或者其他類型服務器壓力測試的幾款工具簡介

Linux磁盤或者其他類型服務器壓力測試的幾款工具簡介

日期:2017/3/1 17:02:28   编辑:關於Linux

Linux磁盤或者其他類型服務器壓力測試的幾款工具簡介 ㈠ dd:從一個源讀取數據然後以比特形式寫到另一個目標地址 [sql] [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync www.2cto.com 注釋 if:從哪來 of:往哪去 bs:每次讀取的數據塊大小 count:讀多少個bs conv:消除Linux內存緩存的影響,保證數據直接寫入磁盤 測試步驟: 建議運行多次取平均值,並且每次運行前把Linux緩存清理 [sql] www.2cto.com [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 27.4893 seconds, 19.5 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 17.3697 seconds, 30.9 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 14.9991 seconds, 35.8 MB/s [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# [root@linwaterbin ~]# echo 3 > /proc/sys/vm/drop_caches [root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 15.2154 seconds, 35.3 MB/s 19.5 MB/s + 30.9 MB/s + 35.8 MB/s + 35.3 MB/s這幾個值相加取平均 ㈡ hdparm 有兩個參數: -t:磁盤性能檢測 -T:內存緩存性能檢測 同樣建議多次測試取平均 [sql] [root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 226 MB in 3.02 seconds = 74.82 MB/sec [root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 244 MB in 3.10 seconds = 78.59 MB/sec [root@linwaterbin ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 246 MB in 3.12 seconds = 78.87 MB/sec 以上兩個工具,僅僅返回的是讀寫性能,測試比較簡單 使用bonnie++或iozone生成較詳細的磁盤報告 安裝之前需先做如下配置 到repoforge網站下載對應版本 [plain] [root@linwaterbin Desktop]# rpm -ivh --nodeps rpmforge-release-0.5.2-2.el5.rf.i386.rpm warning: rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6 Preparing... ########################################### [100%] 1:rpmforge-release ########################################### [100%] [root@linwaterbin Desktop]# cd /etc/yum.repos.d [root@linwaterbin yum.repos.d]# ls base.repo mirrors-rpmforge-extras redhat.repo rpmforge.repo mirrors-rpmforge mirrors-rpmforge-testing rhel-debuginfo.repo ㈢ bonnie++ 安裝: [plain] [root@linwaterbin yum.repos.d]# yum install -y bonnie++ 首先說明一下命令中常用的參數。 -d 生成測試文件的路徑 -s 生成測試文件的大小,以M為單位(如果不使用-r參數,則要求文件大小至少是系統物理內存的2倍) -m 機器名,實際上我們可以認為是本次測試的方案名,可以隨便定義。默認是本機的hostname -r 內存大小,指定內存大小,這樣可以通過-s參數創建r*2大小的文件,通常用於縮短測試時間 但是需要注意這樣由於內存的cache可能導致測試結果的不准確 -x 測試的次數 -u 測試文件的屬主和組,默認是執行bonnie++的當前用戶和當前組 -g 測試文件的組,默認是執行bonnie++的當前用組 -b 在每次寫文件時調用fsync()函數,對於測試郵件服務器或者數據庫服務器這種通常需要同步操作的情況比較適合, 而不使用該參數則比較適合測試copy文件或者編譯等操作的效率 [sql] [root@linwaterbin ~]# bonnie++ -s 512 -r 256 -u root 主要輸出摘入: [plain] Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP linwaterbin 512M 217 99 32403 14 13798 7 378 99 49235 10 347.0 3 Latency 154ms 2218ms 2099ms 125ms 63304us 2672ms Version 1.96 ------Sequential Create------ --------Random Create-------- linwaterbin -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15508 52 +++++ +++ +++++ +++ 27215 91 +++++ +++ +++++ +++ Latency 43819us 20118us 19580us 19834us 19699us 20435us ⑴ Sequential Output:寫操作 ① Per Chr:字符 ② Block:塊 ⑵ Sequential Input:讀操作 ⑶ K/sec:速度(k/秒) ⑷ %CP:CPU的使用率 ㈣ iozone 可支持多進程並發測試 能夠輸出到excel中進行繪圖 也是日常壓力測試用得最多的一款工具 安裝: [plain] [root@linwaterbin ~]# yum install -y iozone 參數說明: -l:最小進程數量 -u:最大進程數量 -r:基本讀寫單位,以測試對象的塊大小為准 如Oracle的塊設為8k,則你可以設置為8k -s:和bonnie++的s參數含義一致 這個值如果太小會影響測試結果 因為很多程序都已經在內存中跑完了 -f:緩存文件 [plain] [root@linwaterbin ~]# iozone -l 1 -u 1 -r 8K -s 128M Record Size 8 KB File size set to 131072 KB Command line used: iozone -l 1 -u 1 -r 8K -s 128M Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. Min process = 1 Max process = 1 Throughput test with 1 process Each process writes a 131072 Kbyte file in 8 Kbyte records Children see throughput for 1 initial writers = 125057.24 KB/sec Parent sees throughput for 1 initial writers = 30640.70 KB/sec Min throughput per process = 125057.24 KB/sec Max throughput per process = 125057.24 KB/sec Avg throughput per process = 125057.24 KB/sec Min xfer = 131072.00 KB Children see throughput for 1 rewriters = 513780.34 KB/sec Parent sees throughput for 1 rewriters = 31989.50 KB/sec Min throughput per process = 513780.34 KB/sec Max throughput per process = 513780.34 KB/sec Avg throughput per process = 513780.34 KB/sec Min xfer = 131072.00 KB Children see throughput for 1 readers = 889758.12 KB/sec Parent sees throughput for 1 readers = 849615.75 KB/sec Min throughput per process = 889758.12 KB/sec Max throughput per process = 889758.12 KB/sec Avg throughput per process = 889758.12 KB/sec Min xfer = 131072.00 KB 這裡的值都很大,是因為我們的s參數設置的有點小.
Copyright © Linux教程網 All Rights Reserved