為特定程序分配一些內存

為特定程序分配一些內存

如何讓系統的一部分主記憶體專用於 SSH 流程?

每次我的伺服器運行一些機器學習應用程式時,主記憶體就會完全滿,甚至不允許任何人執行 ssh。我們有一台主記憶體為 64GB 的伺服器。

我希望 63 GB 可供所有其他用戶用於所有其他進程,但希望將剩餘的 1GB 專門用於啟動 SSH 進程。任何關於此的線索都會有很大的幫助。

答案1

我能想到的一些方法:

  1. 給予 SSH 流程更高的優先權。

    renice -n -10 -p `pidof sshd`
    

    ssh伺服器優先權較高,可以頻繁調度CPU;因此,它不太可能被交換到磁碟。

  2. 使用 Systemd資源控制控制機器學習程式資源使用的模組。您可以使用 applyMemoryMax到使用者分片,以便在該使用者會話中啟動的所有進程都不能使用超過指定值的記憶體。命令是:

    systemctl set-property MemoryMax=5G user-XXXX.slice
    

    或者也許在 ssh 伺服器上使用相同的技巧MemoryLow

相關內容