[英]very interesting result from latency test of IPC on Linux 2.6.18
我正在linux 2.6.18下對unix socket進行性能(延遲)測試,
進程A每10毫秒寫入1024個字節到進程B,結果顯示平均延遲為20 us,標准偏差小(2~3 us)。
當我與進程A和B同時運行一些額外的CPU綁定進程時,測試變得有趣,這些新進程非常緩存,例如簡單數學計算的繁忙循環,但結果讓我感到驚訝,IPC延遲突然下降,平均成為15美元。
據我所知,為了提高交互性,O(1)調度程序(2.6.23之前的2.6)通過某種啟發式方法獎勵IO綁定進程,但這無法解釋為什么速度甚至比第一種情況更快。
我還考慮過,如果Linux在進程A得到獎勵時做了一些特殊的繁忙循環,但似乎沒有進一步測試。
這真讓我困惑。
我的配置:CPU:Intel(R)Xeon(R)CPU E5-2609 0 @ 2.40GHz,10M L3緩存MEM:32G OS:Linux 2.6.18-308.el5 SMP x86_64
我懷疑硬件的某些省電功能在這里起作用。 10ms的睡眠時間足以讓現代硬件進入低功耗狀態。 當您在微秒級別上查看事物時,從節能狀態出來會有一個真實的,可測量的延遲。
我的猜測是並行運行“忙”程序可以防止硬件進入低功耗狀態。 標准的嘗試:
最后一個建議對於Sandy Bridge CPU(這就是你所擁有的)尤為重要,至少對於RHEL / CentOS 5.x(我猜你正在運行)。 我發現Linux內核仍會覆蓋某些BIOS設置。 其他可以幫助您的Linux內核參數:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.