㈠ dd:從一個源讀取數據而後以比特形式寫到另外一個目標地址node
[root@linwaterbin ~]# dd if=/dev/zero of=/home/oracle/disktest bs=1M count=512 conv=fdatasync sql
註釋
if:從哪來
of:往哪去
bs:每次讀取的數據塊大小
count:讀多少個bs
conv:消除Linux內存緩存的影響,保證數據直接寫入磁盤
測試步驟:
建議運行屢次取平均值,而且每次運行前把Linux緩存清理數據庫
[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 outoracle
536870912 bytes (537 MB) copied, 27.4893 seconds, 19.5 MB/s dom
[root@linwaterbin ~]# async
[root@linwaterbin ~]# ide
[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:內存緩存性能檢測
一樣建議屢次測試取平均
[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網站下載對應版本
[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++
安裝:
[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文件或者編譯等操做的效率
[root@linwaterbin ~]# bonnie++ -s 512 -r 256 -u root
主要輸出摘入:
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中進行繪圖
也是平常壓力測試用得最多的一款工具
安裝:
[root@linwaterbin ~]# yum install -y iozone
參數說明:
-l:最小進程數量
-u:最大進程數量
-r:基本讀寫單位,以測試對象的塊大小爲準
如Oracle的塊設爲8k,則你能夠設置爲8k
-s:和bonnie++的s參數含義一致
這個值若是過小會影響測試結果
由於不少程序都已經在內存中跑完了
-f:緩存文件
[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參數設置的有點小