Что значит "ulimit -l"? - PullRequest
       14

Что значит "ulimit -l"?

18 голосов
/ 10 июня 2009

Согласно man-странице, «-l» в ulimit означает «Максимальный размер, который может быть заблокирован в памяти». Что именно означает это предложение? Как это может повлиять на работу программ?

Ответы [ 2 ]

14 голосов
/ 10 июня 2009

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

8 голосов
/ 10 июня 2009

Это ограничивает объем памяти, который вы можете отключить с помощью mlock

Страница setrlimit сообщает:

Максимальное количество байтов памяти, которое может быть заблокировано в ОЗУ. По сути, этот предел округляется до ближайшего кратного размера страницы системы. Этот предел влияет на операции mlock (2) и mlockall (2) и mmap (2) MAP_LOCKED. Начиная с Linux 2.6.9, он также влияет на операцию SHMctl (2) SHM_LOCK, где он устанавливает максимальное количество байтов в сегментах общей памяти (см. Shmget (2)), которые могут быть заблокированы реальным идентификатором пользователя вызывающего процесса. Блокировки shmctl (2) SHM_LOCK учитываются отдельно от блокировок памяти для каждого процесса, установленных в mlock (2), mlockall (2) и mmap (2) MAP_LOCKED; процесс может блокировать байты до этого предела в каждой из этих двух категорий. В ядрах Linux до 2.6.9 этот предел контролировал объем памяти, который может быть заблокирован привилегированным процессом. Начиная с Linux 2.6.9, нет ограничений на объем памяти, который может заблокировать привилегированный процесс, и вместо этого этот предел определяет объем памяти, который может заблокировать непривилегированный процесс.

...