为特定程序分配一些内存

为特定程序分配一些内存

如何使系统的一部分主内存专用于 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

相关内容