Linux
管理 Linux 電腦上的資源使用限制
大家好,我想知道是否有一個很好的管理工具來限制 Linux 環境中的使用者資源消耗。
為了提供有關我的問題的更多詳細資訊,我目前正在嘗試解決使用者跨系統消耗整個 cpu 的問題。無論是執行模擬還是測試錯誤的並發程式碼,我都遇到了單個使用者將最大化伺服器或一組電腦的問題。
我知道 /etc/security/limits.conf 但我沒有看到一種基於 cpu 使用限制使用者/使用者組的方法,當單個程序佔用 cpu 的多個核心時,這有點沒用。
如果我錯過了 limits.conf 手冊頁中的任何內容,請隨時指出我的方向,如果您有其他建議,我很樂意聽到!
謝謝!
我會看看 cgroups - 這允許通過向程序提供共享來“切片”系統。
您可以在記憶體、cpu、磁碟 io 等方面給出限制。
例如將 10MB 的記憶體限制為一個組 foo
echo 10000000 > /sys/fs/cgroup/memory/groupname/foo/memory.limit_in_bytes
這裡有幾個選項需要考慮。
第一,您可以在 /etc/security/limits.conf 中設置每個使用者或每個組的 nice 值。您可以通過添加如下行來設置它:
@users - priority 10 username - priority 19
不過,這並不能阻止使用者創建大量程序。您可以通過限制他們的最大打開文件數來進一步限制使用者,這會將他們可以使用的打開句柄數量減少到可管理的數量。
您也可以考慮使用虛擬機來完成此任務。這種隔離在使用者不斷使共享系統上的資源飽和的情況下非常有用。使用良好的編排和部署系統,例如 OpenStack 或 CloudStack(或者甚至只是簡單的 libvirt 和 KVM 用於較小的規模)可以使事情變得更容易,特別是考慮到這些堆棧的“易用性”部署工具的數量,例如 Mirantis Fuel .