在上篇文章中,我们了解了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)/(10241024)=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