Swingbench测试云上Oracle RAC性能
谁说云上不能跑Oracle RAC?
1、测试环境
1.1、测试数据库环境配置
|
配置 |
数量 |
主机名 |
计算节点 |
CPU:2C 内存:8G 高效云盘:60G |
2 |
db01/db02 |
存储节点 |
CPU:1C 内存:8G 高效云盘:60G |
3 |
cell01/cell02/cell03 |
SSD云盘 |
50G |
3 |
|
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的时候,没有万兆网络可选?这是剥夺了用户选择的权利。