2012-01-19 43 views
0

我正在尋找解決方案來管理一些Linux軟件包以實現資源管理,如下所述。我知道我可以寫一個可以做我想做的守護進程,但是我想省掉那些不重要和冗長的工作。Linux:根據公平份額限制每個用戶的CPU /內存資源

我管理一臺機器,用於進行長時間計算,吃大量的CPU。在該機器上,幾個用戶可以登錄並開始計算。目標是優化機器負載,並且每個用戶都可以獲得他公平的CPU時間份額。記憶存在一個類似的問題,但目前較不重要。

所以這是我的想法如何可能爲了澄清我的意思工作:

負載優化會給所有要求的CPU時間,系統進程(最終根),並計算出剩餘容量。該容量將除以登錄的用戶數量。每個用戶只需要少於他的份額,就可以獲得他所有的要求。緩解直到所有用戶需要比他們的份額更多。然後節制剩餘的用戶以接收相等份額,例如通過重新生成。

這並不一定要準確jiffy。長時間的計算運行幾個小時,有時幾天。所以如果平均時間平均爲5-10分鐘,這已經是完美的用戶調度。

有沒有人知道一個解決方案,這大約是什麼?

+0

你見過像condor這樣的批處理調度程序嗎? – Flexo

+0

Condor看起來很有趣,特別是如果我們添加更多的計算從機。我一定會評估它以備將來使用。感謝指針。 –

回答

3

安排用戶進程分類到每個用戶的cgroups,然後只使用Linux的CFS cgroup調度(CONFIG_CGROUP_SCHED)。雖然在此,我會推薦systemd,因爲它已經完成了每個用戶的排序。

+0

systemd是新的,不適用於bfs和zen內核。 – Bytemain

+0

您可以使用標準設置。 –

+0

cgroup看起來很有趣。我將嘗試獲得更多關於其功能的信息,並查看是否值得編譯適當的內核。 2.6.39對於Debian Squeeze來說是遙遠的未來。 ;) –