Что значит "улимит-л"?


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

2 16

2 ответа:

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

Это ограничивает объем памяти, который вы можете сделать неуправляемым с помощью 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, нет ограничения устанавливаются на объем памяти, который может заблокировать привилегированный процесс, и этот предел вместо этого управляет объемом памяти, который может заблокировать непривилегированный процесс.