Linux 什么是;ulimit-l“;什么意思?

Linux 什么是;ulimit-l“;什么意思?,linux,ulimit,Linux,Ulimit,根据手册页,ulimit中的“-l”表示“可以锁定到内存中的最大大小”。这句话到底是什么意思?它会如何影响正在运行的程序?被锁定的内存可能不会被调出-这会减少可用于其他进程的内存量。此设置限制了可以锁定的内存量。此设置限制了您可以使用多少内存使其无法打开 主页上说: 可锁定到RAM中的最大内存字节数。实际上,此限制向下舍入为系统页面大小的最接近倍数。此限制影响mlock(2)和mlockall(2)以及mmap(2)映射锁定操作。由于Linux 2.6.9,它还影响shmctl(2)SHM_LO

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

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

此设置限制了您可以使用多少内存使其无法打开

主页上说:

可锁定到RAM中的最大内存字节数。实际上,此限制向下舍入为系统页面大小的最接近倍数。此限制影响mlock(2)和mlockall(2)以及mmap(2)映射锁定操作。由于Linux 2.6.9,它还影响shmctl(2)SHM_LOCK操作,在该操作中,它设置了共享内存段(请参阅shmget(2))中可能由调用进程的实际用户ID锁定的总字节数的最大值。shmctl(2)SHM_锁与由mlock(2)、mlockall(2)和mmap(2)MAP_LOCKED建立的每进程内存锁分别进行说明;进程可以在这两个类别中的每一个类别中锁定不超过此限制的字节。在2.6.9之前的Linux内核中,这个限制控制了特权进程可以锁定的内存量。自Linux2.6.9以来,特权进程可以锁定的内存量没有限制,而这个限制控制着非特权进程可以锁定的内存量


这是否意味着如果我将其设置为100M,然后启动程序(比如说java程序),它会将其保留在内存中,并且不会分页?不完全是这样。然后程序必须锁定内存,这是对用户的限制,而不是对每个程序的限制,因此其他程序可以锁定内存并使用一些分配ulimit只限制您可以锁定的数量。您需要调用mlock或mlockall才能将其实际锁定。