Laut der Manpage bedeutet "-l" in ulimit "Die maximale Größe, die im Speicher gesperrt werden darf". Was bedeutet dieser Satz genau? Wie kann er sich auf laufende Programme auswirken?
Antworten
Zu viele Anzeigen?Dies begrenzt, wie viel Speicher Sie mit mlock unvertauschbar machen können
Die setrlimit-Manpage sagt:
Die maximale Anzahl von Byte Speicher, die in den RAM gesperrt werden können. Tatsächlich wird dieses Limit auf das nächstgelegene Vielfache der Systemspeichergröße abgerundet. Dieses Limit betrifft mlock(2) und mlockall(2) sowie die mmap(2) MAP_LOCKED Operation. Seit Linux 2.6.9 betrifft es auch die shmctl(2) SHM_LOCK Operation, bei der ein Maximum für die insgesamt von dem Echtbenutzerkennzeichen des aufrufenden Prozesses gesperrten Bytes in den gemeinsamen Speichersegmenten (siehe shmget(2)) gesetzt wird. Die shmctl(2) SHM_LOCK Sperrungen werden separat von den prozessspezifischen Speichersperren behandelt, die durch mlock(2), mlockall(2) und mmap(2) MAP_LOCKED eingerichtet wurden; ein Prozess kann Byte bis zu diesem Limit in beiden Kategorien sperren. In Linux-Kerneln vor 2.6.9 steuerte dieses Limit die Menge an Speicher, die von einem privilegierten Prozess gesperrt werden konnte. Seit Linux 2.6.9 werden keine Grenzen mehr für die Menge an Speicher festgelegt, die ein privilegierter Prozess sperren kann, und dieses Limit regelt stattdessen die Menge an Speicher, die ein unprivilegierter Prozess sperren kann.