Antworten:
Auf neueren Kerneln (2.6.32+) unter CentOS / RHEL können Sie dies zur Laufzeit mit / proc / <pid> / limits ändern:
cd /proc/7671/
[root@host 7671]# cat limits | grep nice
Max nice priority 0 0
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits | grep nice
Max nice priority 5 6
Wie hier dokumentiert , prlimit
können Sie mit dem mit util-linux 2.21 eingeführten Befehl die Grenzen laufender Prozesse lesen und ändern.
Dies ist ein Nachfolger des beschreibbaren /proc/<pid>/limits
Kernels, der nicht in den Mainline-Kernel integriert wurde. Diese Lösung sollte funktionieren.
Wenn Sie noch nicht haben prlimit(1)
, können Sie den Code zu einer minimalistischen Version in der prlimit(2)
Manpage finden .
In neueren Versionen von util-linux-ng können Sie den Befehl prlimit verwenden. Weitere Informationen finden Sie unter folgendem Link: https://superuser.com/questions/404239/setting-ulimit-on-a-running-process
Sie können ulimit man ulimit
mit der Option -n versuchen, aber die Mag-Seite erlaubt es den meisten Betriebssystemen nicht, dies festzulegen .
Mit können Sie eine systemweite Beschränkung für Dateibeschreibungen festlegen sysctl -w fs.file-max=N
und die Änderungen nach dem Start in beibehalten/etc/sysctl.conf
Ich würde jedoch auch vorschlagen, den Prozess zu untersuchen, um festzustellen, ob wirklich so viele Dateien zu einem bestimmten Zeitpunkt geöffnet sein müssen und ob Sie tatsächlich einige Dateien schließen und dabei effizienter sein können.
ulimit
Wendet keine Einstellungen auf laufende Prozesse an .
Der Prozess kann seine eigenen Soft-Limits ändern, wenn er dazu programmiert ist (oder wenn Sie es schaffen, ihn zu hacken), aber seine Hard-Limits können nicht erhöht werden, es sei denn, er verfügt über die CAP_SYS_RESOURCE-Funktion. Sie können die Grenzwerte zur Laufzeit in überprüfen /proc/$pid/limits
.