Linux
限制使用者啟動程序的最大 CPU 時間
我們有一個使用 Sun Grid Engine 執行 CentOS 的集群,用於研究模擬。然而,一些對系統不太熟悉的使用者最終會在頭節點上執行作業,這當然會讓其他人的工作變慢。
將來,我想放一條 SSH 登錄消息,警告人們直接在頭節點上執行的程序的最大執行時間,但也允許執行長時間的作業(例如大型 tar/gzip 操作),如果他們不錯。
TL;DR:如果 nice 值 <= 0,我如何將使用者執行的作業限制為 24 小時 cpu 時間?
您可以嘗試編寫一個腳本來檢查正在執行的作業並記錄它們的使用率並決定在達到一定數量之後要做什麼。您還可以嘗試AND - Auto Nice Daemon和
ulimits
/PAM limits
來限制使用者的 CPU 時間(在使用者使用了那麼多 cpu 時間之後,程序/會話將被終止)。
使用cpulimit;在 debian 中位於儲存庫中,但不適用於 centos。在這裡,他們有一個編譯和使用它的方法:連結。如果您有集群,只需在一台備用機器上編譯、測試並使用配置管理工具(如 cfengine)部署它。