全部博文(389)
分类: Oracle
2014-02-23 19:34:35
RAC硬件性能测试
对于RAC来说共享存储和私有网络的速度是硬件性能两个最重要的方面,这两种指标也直接
决定了整个rac的性能和稳定性.
存储的性能在单机也是最重要。一般的测试工具主要有sysbench和orion,个人比较喜欢
使用sysbench。安装和使用都比较简单.
IO子系统测试:
新建文件,当前的目标是在共享存储目录中
[root@localhost ~]# sysbench --test=fileio --file-total-size=1024M --file-test-mode=rndrw prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
128 files, 8192Kb each, 1024Mb total
Creating files for the test...
首先看看在文件系统中共享存储建可以多少个iops和mbps
[root@localhost ~]# sysbench --test=fileio --file-total-size=1024M --num-threads=2 --file-test-mode=rndrw run
....................
Read 93.75Mb Written 62.5Mb Total transferred 156.25Mb (9.3042Mb/sec)
595.47 Requests/sec executed
per-request statistics:
min: 0.01ms
avg: 0.09ms
max: 128.51ms
approx. 95 percentile: 0.01ms
...........................
mbps为9.3042Mb/sec,iops为595.47.这里由于是文件系统,有linux本身的文件系统作为cache,所以单块硬盘
也表现相当高的iops,对于--num-threads一般设为等于dbwr的进和数+lgwr进程数
接下来我们看看使用DIRECT标志测试的io数据,由于rac当前大部分都是使用ASM作为存储,所以使用DIRECT标
志来bypass linux的cache,这样测出来的数据基本接近存储提供给 RAC的性能数据
[root@localhost ~]# sysbench --test=fileio --file-total-size=1024M --num-threads=2
--file-extra-flags=direct --file-test-mode=rndrw run
................
Read 93.75Mb Written 62.5Mb Total transferred 156.25Mb (2.5215Mb/sec)
161.38 Requests/sec executed
per-request statistics:
min: 0.12ms
avg: 11.63ms
max: 361.74ms
approx. 95 percentile: 33.36ms
.............
可以看到没有使用linux 的文件系统cache后,性能急剧下降,这比较接近单块磁盘的真实速度.
对于使用rac的共享存储使用--max-time进行压力测试,最好压一个小时以上.同时在共享存
储上禁用cache,这样测出来基本接近裸磁盘的速度.其他的参数可以根据具体数据库特性进行
调整,比如DSS可能连续读比较多,或是调整读写比例.
私有网络测试:
网络测试,个人比较喜欢netperf工具,先在两个节点上分别安装netperf.使用一台作为服务器
端,一台作为客户端。在服务器端使用netserver启动进程,客户端使用netperf测试
[root@localhost ~]# netperf -H 172.28.10.150
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.28.10.150 () port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.25 88.74
两者的速度达到了88.74Mbps。
测试tcp和upd和请求和响应时间
[root@localhost ~]# netperf -H 172.28.10.150 -t TCP_RR(UDP_RR)
MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.28.10.150 () port 0 AF_INET : first burst 0
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.00 9237.25
测试udp的速度,私有网络传输快主要是通过upd协议
[root@localhost ~]# netperf -H 172.28.10.150 -t UDP_STREAM
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.28.10.150 () port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
262144 65507 10.01 1737 0 90.91
4194304 10.01 1737 90.91
可以通过-l 定义压力测试的时间,单位为秒,建议一般3-6小时.同时通过os工具观察是否有错误,比如
netstat -s.