一台上面的性能出奇的好,但是为什么没有线性关系

作者上午将实验室内的五台机器从SLES9升级到SLES10。下午进行性能测试时发现,在同一台机器上运行IB和APP时,数据加载效率明显高于多台机器向单一服务器馈送数据的情况。通过进一步分析确定了多进程间通信可能是导致效率下降的主要原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上午将lab里面五台机器从sles9全部升到了sles10,过程还算顺利。下午开始测试IB和APP在同一台机器的情况,发现load的效率有1万多条每秒钟,而昨天6台机器往一台server上feed的效率才达到3万多,也就是说server模式下,多台机器的效率只有各自的一半左右。

分析后觉得管道是瓶颈。server模式下,多个服务进程会往一个FIFO里面写数据,各个进程在工作时是独占的。至于server模式下带来的网络开销应该是可以忽略的,应为实际测试发现网络流量不过每秒钟不会超过30兆,应该是没有问题。

为了验证,我们将APP配置成server模式,但是只用一台机器来feed,发现插入效率和非server模式基本上一样。那基本上可以确认多进程间通信是个大问题。

打算回去后再好好审视下方案,包括多线程方案以及减小feeder发送过来的单个数据的大小等等,这样虽然带来了网络负荷的增加,但是锁的争用应该会小一些。这需要测试数据说话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值