共享就緒隊列可以限制多處理器系統的可伸縮性嗎?共享就緒隊列可以限制多處理器系統的可伸縮性嗎?
0
A
回答
0
簡而言之,最爲明確。閱讀一些討論。
調整服務是一種藝術形式,或者需要基準測試(並且需要基準的概念數量空間巨大)。我相信這取決於以下因素(這並非詳盡無遺)。
- 這是從準備qeueue拿起一個項目需要多少時間來處理,並
- 工作線程多少是他們?
- 他們有多少生產者,他們生產的頻率如何?
- 您使用的是什麼類型的等待概念?自旋鎖或內核等待(後者更慢)?
所以,如果數據項都往往會產生,並且如果線程的量較大,並且處理時間是低的:該數據結構可以被鎖定大窗戶,從而導致抖動。
其他因素可能包括數據結構的使用以及數據結構被鎖定了多長時間,例如,如果使用鏈表來管理這樣的隊列,add
和remove
版本的操作需要一定的時間。當項目爲added
時,prio隊列(堆)平均需要多一些操作。
如果您的系統進行業務處理,你可以通過只用拿這個問題出來的畫面:基於
- 的工藝木構建築,只是產卵多生產消費過程和使用文件系統進行通信,
- 使用非預先協作線程編程語言,如無堆棧python,Lua或Erlang。
也注意:同步原語導致處理器間高速緩存 - 內聚性泛洪,它們是not good,因此應該謹慎使用。
的討論可以去填補博士論文:d
0
每個CPU就緒隊列爲數據結構的自然選擇。這是因爲,大多數操作系統都會嘗試在同一個CPU上保留一個進程,出於很多原因,您可以使用谷歌。這意味着什麼?如果一個線程就緒並且另一個CPU空閒,OS不會將線程快速遷移到另一個CPU。負載平衡只能在長時間運行。
如果情況不一樣,那不是保持線程cpu親和力的設計目標,而是線程遷移頻繁,然後保持單獨的每個cpu運行隊列將代價高昂。
相關問題
- 1. 單處理器系統可以處理多級隊列調度嗎?
- 2. JGit可伸縮性限制
- 3. Rails中的觀察者可伸縮性(成就係統)
- 4. 蔚藍雲隊列的可伸縮性
- 5. 多線程多核系統中HashMap的可伸縮性問題
- 6. 多線程可以在單處理器系統上實現嗎?
- 7. 可伸縮套接字事件隊列處理
- 8. 服務器可以處理多少時間有限制嗎?
- 9. python在多處理中共享dict()中共享隊列()
- 10. 多個gearman服務器可以共享相同的libdrizzle隊列嗎?
- 11. Python的多處理隊列可靠性,隊列VS SimpleQueue VS JoinableQueue
- 12. SharePoint列表可伸縮性
- 13. 限制Google Domain共享聯繫人的可見性
- 14. jQuery多文檔就緒隊列順序
- 15. 作業隊列和就緒隊列
- 16. PHP腳本可以共享消息隊列嗎?
- 17. 系統進程可以與非系統進程共享數據嗎?
- 18. 多處理 - 共享陣列
- 19. IIS可伸縮性
- 20. 可以用gcov處理共享對象嗎?
- 21. 我可以在python中爲多處理創建共享的多陣列或列表對象列表嗎?
- 22. jaxb可以解析系統屬性嗎?
- 23. 多處理。使用共享隊列的進程子類
- 24. 中斷系統調用處理隊列
- 25. 共享內存,MPI和排隊系統
- 26. Zend_Measure可以檢測公制系統嗎?
- 27. Cytoscape.js的可伸縮性
- 28. aho corasick的可伸縮性
- 29. Oracle Forms的可伸縮性
- 30. 數據庫的可伸縮性是否有限制?