上午将lab里面五台机器从sles9全部升到了sles10,过程还算顺利。下午开始测试IB和APP在同一台机器的情况,发现load的效率有1万多条每秒钟,而昨天6台机器往一台server上feed的效率才达到3万多,也就是说server模式下,多台机器的效率只有各自的一半左右。
分析后觉得管道是瓶颈。server模式下,多个服务进程会往一个FIFO里面写数据,各个进程在工作时是独占的。至于server模式下带来的网络开销应该是可以忽略的,应为实际测试发现网络流量不过每秒钟不会超过30兆,应该是没有问题。
为了验证,我们将APP配置成server模式,但是只用一台机器来feed,发现插入效率和非server模式基本上一样。那基本上可以确认多进程间通信是个大问题。
打算回去后再好好审视下方案,包括多线程方案以及减小feeder发送过来的单个数据的大小等等,这样虽然带来了网络负荷的增加,但是锁的争用应该会小一些。这需要测试数据说话。
作者上午将实验室内的五台机器从SLES9升级到SLES10。下午进行性能测试时发现,在同一台机器上运行IB和APP时,数据加载效率明显高于多台机器向单一服务器馈送数据的情况。通过进一步分析确定了多进程间通信可能是导致效率下降的主要原因。
1万+

被折叠的 条评论
为什么被折叠?



