Выделите часть памяти для определенной программы

Выделите часть памяти для определенной программы

Как выделить часть основной памяти системы для использования только процессом SSH?

Каждый раз, когда мой сервер запускает некоторые приложения машинного обучения, основная память полностью заполняется и не позволяет никому даже сделать ssh. У нас есть сервер с 64 ГБ основной памяти.

Я хочу, чтобы 63 ГБ могли использоваться для всех других процессов всеми другими пользователями, но хочу сделать оставшийся 1 ГБ исключительно для запуска процесса SSH. Любые темы по этому поводу были бы действительно полезны.

решение1

Вот несколько подходов, которые я могу придумать:

  1. Присвойте процессу SSH более высокий приоритет.

    renice -n -10 -p `pidof sshd`
    

    При более высоком приоритете сервер ssh может чаще планироваться в ЦП; в результате он будет реже выгружаться на диск.

  2. Используйте SystemdКонтроль ресурсовмодуль для управления использованием ресурсов вашей программы машинного обучения. Вы можете использовать apply MemoryMaxк пользовательскому срезу, чтобы все процессы, запущенные в этом сеансе пользователя, не могли использовать больше памяти, чем указано. Команда:

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

    Или, может быть, использовать тот же трюк на ssh-сервере с MemoryLow.

Связанный контент