在上篇文章中,我们了解了GBase 8s SSC集群的网络交互机制。本文将聚焦于网络吞吐量的计算,分析SSC集群在不同业务场景下的表现,并与HAC和RHAC集群进行对比。
一、无业务场景下的网络吞吐量
在无业务时,网络上只有每秒发送的心跳包和心跳包的ACK,则网络吞吐量极低,具体为
(114+86)/(1024*1024)=0.2KB/s
主节点的发送PPS为1包/s。
二、有业务场景下的网络吞吐量
假定在高性能服务器、400并发的情况下,TPCC的性能为100万tpmc,此时网络上传输的包为LSN数据包和LSN ACK数据包。
如果数据库在非缓冲日志模式下,每次事务提交时,则主节点发送LSN数据包,从节点收到后回复LSN ACK数据包,因此网络吞吐量为
( (126+94)*1000000/60)/(1024*1024)=3.5MB/s
主节点的发送PPS为
1000000/60=16666.7
如果数据库在缓冲日志模式下,假定逻辑日志buffer为最大值64M,当逻辑日志buffer满后,主节点才发送LSN数据包,在之前的测试时得知在tpcc测试时,每1万tpmc产生约200M逻辑日志,在性能为100万tpmc的情况下,产生的逻辑日志为100*200=20000M,此时网络吞吐量为
(20000/64)*(126+94) /60/1024=1.12KB/s
主节点的发送PPS为
(20000/64)/60=5.2包/s。
以上计算的场景为理想情况,而在实际的测试环境中,在网络上还会传输其他消息,如每5s的统计数据包,同时有多种情况如checkpoint同样会触发逻辑日志buffer刷新到磁盘,同样会触发主节点向从节点发送LSN,除了这两类还有其他的消息进行通信。同时,以上都是以只有一个SSC从节点为前提的,如果有N个SSC从节点,则是上述计算值的N倍。
而相比与SSC集群,HAC和RHAC集群在相同的业务场景下至少要传输200*100M的逻辑日志,则网络吞吐量至少为
(200*100)/60=333.33MB/s
三、SSC从节点支持更新操作的场景分析
在SSC从节点支持更新操作的场景下,TPCC业务在SSC从节点执行,而TPCC在测试中只包含neworder业务,neworder业务涉及的表以及表典型字段长度如下:
表名称 | 典型字段长度 |
District | 95 |
Order | 24 |
New-Order | 8 |
Stock | 306 |
Order-Line | 54 |
涉及的操作如下:
UPDATE District
INSERT Order
INSERT New-Order
for( int i=0;i<num;i++)
{
UPDATE Stock
INSERT Order-Line
}
neworder业务平均每个客户的一个订单有10个订单项,即num值为10。假设num=1时,neworder每个事务主从间网络交互包如下:
第1组网络包信息如下:
- SSC从节点发送给主节点,网络包包含的消息类型为ProxyWriteBeginWork、ProxyWriteUpate和ProxyWriteSync三类消息类型,涉及的表为District,因此网络报长度为54+20+176+(108+95*2+4)+28=580字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
第2组网络包信息如下:
- SSC从节点发送给主节点,网络包包含的消息类型为ProxyWriteInsert和ProxyWriteSync两类消息类型,涉及的表为Order,因此网络报长度为54+20+(108+24+4-2)+28=236字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
第3组网络包信息如下:
- SSC从节点发送给主节点,网络包包含的消息类型为ProxyWriteInsert和ProxyWriteSync两类消息类型,涉及的表为New-Order,因此网络报长度为54+20+ (108+8+4-2)+28=220字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
第4组网络包信息如下:
- SSC从节点发送给主节点,网络包包含的消息类型为ProxyWriteUpate和ProxyWriteSync两类消息类型,涉及的表为Stock,因此网络报长度为54+20+(108+306*2+4-2)+28=824字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
第5组网络包信息如下:
- SSC从节点发送给主节点,网络包包含的消息类型为ProxyWriteInsert和ProxyWriteSync两类消息类型,涉及的表为Order-Line,因此网络报长度为54+20+ (108+54+4-2)+28=266字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
第6组网络包信息如下:
- SSC从节点发送给主节点的网络包由ProxyWriteBeginWork、ProxyWriteFlush2LSN和ProxyWriteCommit三类消息组成,此包的长度为54+20+176+36+28=314字节。
- 主节点的回复网络包由ProxyWriteSync类型消息组成,此包的长度为54+20+68=142字节。
当num大于1时,只需要第4组和第5组重复num次即可,因此,在TPCC测试中只包含neworder业务且性能为100万TPMC时,每个事务产生的网络流量为
(580+142)+(236+142)+(220+142)+( (824+142)+(266+142) )*10+(314+142)=15658字节
网络吞吐量为
15658*1000000/60/1024/1024=248.9MB/s
SSC从节点的发送PPS为
(4+2*10)*1000000/60=400000包/s
四、与HAC和RHAC集群的对比
综合以上3小节可知,在相同的业务场景下,相比于HAC和RHAC集群,SSC集群的网络压力要很低,在TPCC性能达到100万tpmc的情况下SSC集群主从节点间的理论网络吞吐量最高为3.4MB/s,主节点的发送PPS为16666.7包/s,而HAC和RHAC集群网络吞吐量至少为333.33MB/s,以上只是理论值,忽略了其他消息类型,实际测试场景要高于理论值。
同时,在SSC从节点支持更新的场景下,假定TPCC中只包含neworder业务并且直接在SSC从节点执行测试,如果TPCC性能达到100万tpmc,则网络吞吐量为248.9 MB/s,SSC从节点的发送PPS达到400000包/s。
通过对GBase 8s SSC集群网络吞吐量的深入分析,我们可以看到其在不同业务场景下的优秀表现。SSC集群的设计不仅优化了网络交互,还确保了在高负载情况下的稳定性和可靠性。随着企业对数据库性能要求的不断提高,GBase 8s SSC集群无疑将成为更多企业的首选。
标签:20,54,142,网络,节点,8s,交互,GBase,SSC From: https://blog.51cto.com/u_17026136/12058173