2010-06-23 78 views
0

我有一個具有UI模塊和其他支持服務的應用程序。這些其他服務有內存泄漏和其他線程同步問題。因此,在某些機器,特別是四核,雙核機器中,服務會偶爾崩潰。爲進程及其效果設置處理器親和力

我知道解決這個問題的最好方法是清理內存泄漏和同步問題。

但是作爲解決辦法,我們爲這些服務中的2個設置了處理器關聯性,並觀察到在此之後崩潰沒有發生。

現在我的問題是 我的服務是否會受到性能影響,因爲我限制它們僅使用一個處理器?

編輯1:注意:這些服務是多線程的。

回答

1

這當然取決於這些服務是否依賴線程。如果他們是單線程的,你不會注意到太多的區別。

在你的情況中,因爲服務是多線程的,它們可能會或可能不會經歷性能損失 - 這取決於實際設計,具體取決於它們是否依賴並行執行的多個線程。

1

(可能更適合serverfault.com)

由於服務創建多個線程,最有可能的。

此外,即使系統沒有負載,響應時間可能會增加。如果您綁定的CPU正忙於另一個線程,則必須等待該線程放棄其時間片。這可能會引起許多由(或)線程處理的小請求。

感知的結果可能是微妙的或破壞性的:您可能會在一段時間內運行良好,但當請求達到高峯時,依賴服務(如果有的話)可能會變慢。