limits.conf для установки ограничений памяти

limits.conf для установки ограничений памяти

Я хотел бы ограничить использование любым процессом более 500 МБ ОЗУ. Насколько мне известно, это делается с помощью RSS в /etc/security/limits.conf, но процесс под названием gnome-panel, по-видимому, использует 618436 кБ VmRSS. Как это возможно?

/etc/security/limits.conf

* жесткий rss 512000

имя пользователя@debian:~$ cat /proc/3002/status
Имя: gnome-panel
Состояние: S (спящий)
Тег: 3002
Код: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Группы: 20 24 25 29 44 46 112 116 117 1000 1002 1003
VmПик: 916636 КБ
Размер виртуальной машины: 916636 КБ
VmLck: 0 КБ
VmHWM: 618436 КБ
VmRSS: 618436 кБ
VmData: 601972 КБ
VmStk: 104 КБ
VmExe: 516 КБ
VmLib: 29232 КБ
VmPTE: 1760 кБ
Темы: 1
Сигнал Q: 0/14001
СигналPnd: 00000000000000000
ШдПнд: 00000000000000000
SigBlk: 0000000000000000
Сигнал: 0000000020001000
СигналКгт: 0000000180000000
КапИнх: 00000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Разрешено_процессоров: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000001
Список_разрешенных_мемов: 0
добровольные_ctxt_переключения: 871965
недобровольные_ctxt_переключения: 47553
PaX: PeMR

имя пользователя@debian:~$ cat /proc/3002/limits
Ограничение Мягкий предел Жесткий предел Единицы измерения     
Максимальное время ЦП неограниченно неограниченно секунд   
Максимальный размер файла неограничен неограниченное количество байт     
Максимальный размер данных неограниченный неограниченный байт     
Максимальный размер стека 8388608 неограниченных байт     
Максимальный размер файла ядра 0 0 байт     
Максимальный резидентный набор 524288000 524288000 байт     
Макс. количество процессов 100 100 процессов
Максимальное количество открытых файлов 1024 1024 файла     
Макс. заблокированная память 65536 65536 байт     
Максимальное адресное пространство неограниченно неограниченно байт     
Макс. количество блокировок файлов неограниченно неограниченно     
Макс. ожидающих сигналов 14001 14001 сигналов   
Максимальный размер очереди сообщений 819200 819200 байт     
Максимальный хороший приоритет 0 0                    
Максимальный приоритет в реальном времени 0 0                    
Максимальный тайм-аут в реальном времени неограниченный неограниченный us

решение1

Нашел это решение, посмотрев здесь:http://shortrecipes.blogspot.de/2009/04/limitsconf-virtual-memory-limit.html

Для вашего примера:

* hard as 512000

Похоже, это эквивалентно ulimit -v 512000, применяемому в момент входа в учетную запись.

решение2

limits.conf(5)на странице руководства написано:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)

решение3

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

решение4

Ограничение RSS в limits.conf не будет работать в ядрах > 2.4.30.

Вы должны использоватьCgroups

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