30

根据手册页,ulimit 中的“-l”表示“可以锁定到内存中的最大大小”。这句话到底是什么意思?它如何影响正在运行的程序?

4

2 回答 2

27

锁定的内存可能不会被调出——这会减少其他进程可用的内存量。此设置限制可以锁定的内存量。

于 2009-06-10T09:54:53.520 回答
12

这限制了您可以使用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 开始,

于 2009-06-10T09:56:48.510 回答