Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2765741
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(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.

 

 

 

 

 

阅读(4009) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~