swingbench测试云上oracle rac性能
谁说云上不能跑oracle rac?
1、测试环境
1.1、测试数据库环境配置
配置
数量
主机名
计算节点
cpu:2c
内存:8g
高效云盘:60g
2
db01/db02
存储节点
cpu:1c
3
cell01/cell02/cell03
ssd云盘
50g
1.2、在swingbench机器上开启集群协调器,以及把db01、db02加入到协调器中;
./coordinator –g &
./minibench -g db01 -cs
10.10.10.162:1521:orcl1 -co localhost &
./minibench -g db02 -cs
10.10.10.163:1521:orcl2 -co localhost &

1.3、插入测试数据,共1.6g,每秒插入81330行;
2、测试rac性能
2.1、配置swingbench测试环境,主要以oltp为主,用户数400;达到了最高tps是400,平均tps是282;
2.2、在测试过程中,使用袋鼠云easydb可看到数据库单节点的qps为1400左右,tps接近150左右;
2.3、袋鼠云easydb输出的计算节点和存储节点的实时cpu负载信息,可以看出cpu的使用率已经达到80%左右,而此时的存储节点只有20%左右,说明此方案对存储节点的资源使用是比较低的;
2.4、袋鼠云easydb,主机实时性能监控输出,包含的内容有qps、tps、物理读写、解析和会话等信息;
主机db01:
主机db02:
2.5、袋鼠云easydb监控数据库实时会话,其中包括sid、spid、等待事件、主机、sql_id、执行时间、以及详情里的sql语句和执行计划;
2.6、下面是iostat的输出截图;
2.7、网络实时监控iftop输出,从此处就可以了解到oracle rac之间网络流量是比较大的;
结论:
1、以测试环境的ecs配置来看,单节点可达到1400的qps,282的tps;
2、磁盘io的读写其实是通过网络来实现的,在我的测试环境读是8mb/s,写是12mb/s;
3、网络方面峰值的tx和rx,可达到160mb,这个结果与磁盘io的读写是很接近的。
从swingbench测试来看,用户如果想在阿里云上使用oracle rac,两节点满足3000的qps,以及300的tps以上的需求,考虑到测试数据与真实数据及应用的差距,推荐配置8c32g的计算节点,4c16g的存储节点。
在说到阿里云的网络,这里不得不吐槽一下阿里云了,为什么在购买ecs的时候,没有万兆网络可选?这是剥夺了用户选择的权利。