“ulimit -l”是什么意思?

时间:2009-06-10 09:51:11

标签: linux ulimit

根据联机帮助页,ulimit中的“-l”表示“可能锁定到内存中的最大大小”。这句话到底意味着什么?它如何影响正在运行的程序?

2 个答案:

答案 0 :(得分:14)

锁定的内存可能不会被分页 - 这会减少可用于其他进程的内存量。此设置限制了可以锁定的内存量。

答案 1 :(得分:8)

这限制了您使用mlock

无法解决的内存量

setrlimit联机帮助页说:

  

可以锁定到RAM的最大内存字节数。实际上,此限制向下舍入到系统页面大小的最接近倍数。此限制会影响mlock(2)和mlockall(2)以及mmap(2)MAP_LOCKED操作。从Linux 2.6.9开始,它还影响shmctl(2)SHM_LOCK操作,它在共享内存段(参见shmget(2))中的总字节数上设置了最大值,这可能被调用进程的真实用户ID锁定。 shmctl(2)SHM_LOCK锁与mlock(2),mlockall(2)和mmap(2)MAP_LOCKED建立的每进程内存锁分开计算;进程可以在这两个类别中的每一个中将字节锁定到此限制。在2.6.9之前的Linux内核中,此限制控制了特权进程可以锁定的内存量。从Linux 2.6.9开始,对特权进程可能锁定的内存量没有限制,而这个限制则控制了非特权进程可能锁定的内存量。