OOM – убивает процесс от пользователя с наибольшим потреблением памяти?

У меня многопользовательская система, где активные пользователи должны получать справедливую долю доступной памяти.

Могу ли я настроить Linux, чтобы убить процесс пользователя с наибольшим общим потреблением памяти?

Это произойдет, когда система потеряет память. Я полагаю, что самый большой из процессов этого пользователя должен быть убит.

Я не хочу устанавливать ограничения на количество пользователей для пользователей, поскольку их число варьируется и потому, что будет потеряна память, если большинство пользователей не работают. Убийство самого большого процесса будет работать, но оно должно быть для каждого пользователя. В противном случае один пользователь может вызвать множество небольших процессов и привести к тому, что средний процесс другого пользователя будет убит.

One Solution collect form web for “OOM – убивает процесс от пользователя с наибольшим потреблением памяти?”

Ниже будет уничтожен процесс, используя большую часть памяти на коробке. Это то, что вы искали, или это должен быть процесс пользователя, который использует большую часть памяти (что может быть не самым большим нарушителем и причиной нехватки памяти)?

#!/bin/bash free=`awk '/^Mem/ {print $3}' <(free -m)` psout=`ps axo pid,args,pmem,rss,vsz --sort -pmem,-rss,-vsz | head -2` pid=`echo $psout | cut -d " " -f 6` if (( $free < 1 )); then kill -9 $pid fi; 

Изменить: теперь я вижу ваши рассуждения, попытаюсь изменить приведенный выше код.

Изменить 2: Поскольку мне не нужно сегодня выполнять этот проект, позвольте мне поставить вас на правильный путь. Вы можете скачать smem (скрипт python) из приведенного ниже URL-адреса: https://www.selenic.com/smem/download/

Запуск от root с ключом -u даст вам общий объем памяти, используемый каждым пользователем. Возьмите это в массиве, отсортируйте по используемому mem, а затем просто добавьте -u в команду ps, чтобы убить худшего нарушителя этого пользователя.

  • Можно узнать размеры данных (int, float, double, ...) в системе без написания программы C?
  • Какой процесс обновляется / proc / scsi / scsi?
  • Установка Fedora на жесткий диск: ошибка проверки конфигурации хранилища
  • В какой версии библиотеки C используется моя система?
  • Переустановка Windows 7 с двойной системой загрузки с Fedora
  • Двойная загрузка с Windows 7 и Fedora 20
  • Linux и Unix - лучшая ОС в мире.