30 Stimmen

Was bedeutet "ulimit -l"?

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?

27voto

1800 INFORMATION Punkte 125009

Einmal gesperrter Speicher wird möglicherweise nicht ausgelagert - dies verringert die Menge an Speicher, die für andere Prozesse verfügbar ist. Diese Einstellung begrenzt die Menge an Speicher, die gesperrt werden kann.

12voto

brian-brazil Punkte 28151

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X