2009-06-10 184 views

回答

12

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

+0

这是否意味着如果我将它设置为100M,然后启动程序(让我们说一个Java程序),它会将它保存在内存中,不会分页? – 2009-06-10 10:00:23

8

这限制了多少,你可以让内存与unswappable 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开始,对特权进程可能锁定的内存数量没有限制,而这个限制决定了非特权进程可能锁定的内存数量。