一臺上面的性能出奇的好,但是爲什麼沒有線性關係

上午將lab裏面五臺機器從sles9全部升到了sles10,過程還算順利。下午開始測試IB和APP在同一臺機器的情況,發現load的效率有1萬多條每秒鐘,而昨天6臺機器往一臺server上feed的效率才達到3萬多,也就是說server模式下,多臺機器的效率只有各自的一半左右。

分析後覺得管道是瓶頸。server模式下,多個服務進程會往一個FIFO裏面寫數據,各個進程在工作時是獨佔的。至於server模式下帶來的網絡開銷應該是可以忽略的,應爲實際測試發現網絡流量不過每秒鐘不會超過30兆,應該是沒有問題。

爲了驗證,我們將APP配置成server模式,但是隻用一臺機器來feed,發現插入效率和非server模式基本上一樣。那基本上可以確認多進程間通信是個大問題。

打算回去後再好好審視下方案,包括多線程方案以及減小feeder發送過來的單個數據的大小等等,這樣雖然帶來了網絡負荷的增加,但是鎖的爭用應該會小一些。這需要測試數據說話。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章