cpu 抖动_微抖动,繁忙的等待和绑定CPU
cpu 抖動
性能分析新機器
當我在新機器上工作時,我想了解它的局限性。 在這篇文章中,我將研究機器的抖動以及忙于等待本周末構建的新PC的影響。 該機器的規格很有趣,但不是發布目的。 永遠不要少于它們:
- i7-3970X六核運行于4.5 GHz(打開HT)
- 32 GB的PC-1600內存
- OCZ RevoDrive 3,PCI SSD(實際寫入帶寬為600 MB / s)
- Ubuntu 13.04
注意: OCZ RevoDrive在Linux上不受官方支持,但比其模型便宜得多。
測試抖動
我的微抖動采樣器查看正在運行的線程的中斷。 它與jHiccup相似,但是它沒有測量線程喚醒的延遲,而是測量了線程一旦開始運行如何獲得的延遲。 令人驚訝的是,線程的運行方式會影響喚醒后將看到的延遲類型。
該圖表有點密集。 它示出了一個CPU小時內發生的平均(每次測試運行多于兩個時鐘小時)有原始數據是可用的范圍內的時間的中斷的數量該處
有趣的區別在于操作系統如何處理與隔離的CPU和/或繁忙的等待線程的綁定。
忙碌中
在繁忙等待的情況下,綁定到隔離的內核確實有助于減少較高的等待時間間隔。
這些測試同時運行。 唯一的區別是“綁定”線程綁定到“ isolcpus” CPU,該內核的其他CPU也被隔離。 即整個核心都是孤立的。
相當忙-50%
在這種情況下,線程在采樣1毫秒和Hibernate1毫秒之間交替
未綁定的50%繁忙線程的延遲要低得多,只有2微秒,但更長的延遲要多得多。
有點忙– 10%
在此測試中,采樣器運行0.111毫秒,睡眠1毫秒。 即使在這種情況下,綁定到隔離的CPU也會有所不同。
綁定但不隔離– 10%
在這種情況下,未隔離綁定線程。 它被綁定到一個CPU上,在該CPU上內核不是免費的,并且也不是孤立的。 與該測試中的未結合相比,單獨結合似乎沒有什么區別。
比較綁定線程和隔離線程
我以前見過的東西,但我發現有點奇怪,就是如果您放棄CPU,則線程喚醒后性能會很差。 以前,我已將緩存設置為未預熱,但是代碼對內存的訪問很少,并且代碼非常短,因此仍然可能但不太可能。 以每小時一百萬的速度在20微秒處達到峰值可能是由于每次喚醒時都會發生延遲。 這大約是90,000個時鐘周期,對于高速緩存未命中來說似乎很多。
比較未綁定的線程
在此圖表中,它表??明即使您不受束縛,對CPU的貪婪也確實有幫助。 繁忙的線程較少被中斷。 很難說50%的忙比10%的忙更好。 可能是這樣,但是需要更長的測試時間(我說這是在誤差范圍之內)
結論
在不隔離CPU的情況下使用線程相似性在此系統上似乎無濟于事。 我懷疑其他Linux版本甚至Windows都是如此。 在親和力和隔離性有幫助的地方,繁忙的等待仍然有意義,因為調度程序似乎會減少中斷線程的次數(如果您這樣做的話)。
翻譯自: https://www.javacodegeeks.com/2013/07/micro-jitter-busy-waiting-and-binding-cpus.html
cpu 抖動
總結
以上是生活随笔為你收集整理的cpu 抖动_微抖动,繁忙的等待和绑定CPU的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以吗英语怎么说 可以吗的英语是什么
- 下一篇: 魔方如何复原 怎样还原魔方?