共享伺服器資源管理

共享伺服器資源管理

我們有一個運行 Ubuntu LTS 的本機 Xeon 伺服器,由少數開發人員共用。每個開發人員都使用他的用戶登入並在其上運行各種工作負載。我們遇到的問題是,當有時運行 CPU 或儲存大量工作負載時,其他使用者實際上無法在電腦上工作,shell 變得無回應。

我們嘗試要求用戶在建置時限制 CPU 使用率,它解決了 CPU 問題,但顯然磁碟 IO 利用率仍然是一個問題。我們使用 SSD 儲存。

不可能在伺服器上使用虛擬機,因為我們不想硬限制資源。我們只是想確保其他用戶不會出現資源匱乏的情況。

我們有什麼選擇?

答案1

工作負載修改的彈性如何?有一些實用程序,例如nice,可以限制進程的優先級,限制它們可以獲得的切片大小。

https://www.geeksforgeeks.org/nice-and-renice-command-in-linux-with-examples/#

但正如您已經指出的,該解決方案並不完美,因為這裡的問題可能是,當只有一個用戶打開時,他們將無法充分利用系統的潛力。這可能只是一個新問題。

磁碟IO,其他人已經詢問並製定了解決方案,例如這裡的答案https://unix.stackexchange.com/questions/536007/cgroups-throttle-per-user-disk-io-bandwidth-on-linux

恐怕不會有完美的解決方案,這就是為什麼像虛擬化這樣的東西變得如此流行,以更有效地利用共享資源。

就像 Linux 的所有事物一樣,可能還有更多的工作(甚至可能是為利用它們而設計的系統)

恕我直言,要正確地做到這一點可能需要在核心層級進行一些調度,或者需要一些介面來使用現有的調度選項,我不知道有什麼。 ……但是我以前就錯了,所以如果其他人提出解決方案,我也會學習!所以答案可能是,不接受讓步就沒有答案。

相關內容