Ich habe das Internet durchforstet, um herauszufinden, wie viel Speicher ein Java-Prozess auf einem Linux-Rechner (Red Hat) haben kann. (Ich spreche nicht über Heap, sondern die gesamte Speicherkapazität, die der Java Prozess beansprucht)
Ich bin nicht berechtigt, etwas auf diesem Rechner auszuführen. So kann ich nicht einfach ein Programm ausführen, das Speicher bis zur Out-of-Memory-Bedingung verbraucht.
Ich habe jedoch die Erlaubnis, Konfigurationsdateien usw. zu überprüfen (zum Beispiel: Ich habe versucht, cat / proc / meminfo auszuführen, aber ich kann es nicht verstehen; es scheint, dass keines seiner Ergebnisse für den Parameter I steht wissen wollen).
Ich habe ein Java-Programm auf einer separaten Red-Hat-Maschine ausprobiert - auf der ich die Erlaubnis habe, Programme auszuführen - und ich konnte Java-Programme bis etwa 3 GB wachsen sehen.
Gibt es einen Weg, wie ich herausfinden kann, wie viel Speicher ein Prozess bekommen kann?
ulimit ist dein Freund. Java-Prozesse unterscheiden sich nicht von anderen. Aber wenn Sie nicht einmal ulimit -a ausführen können, ist es schwierig, Ihre Frage zu beantworten.
Hier ist eine nützliche Lektüre: Begrenzung der Zeit und des Speicherverbrauchs von ein Programm in Linux , das zum Timeout Tool führt, mit dem man einen Prozess (und seine Gabeln) blockieren kann Zeit oder Speicherverbrauch.
Ich habe mich mit genau diesem Problem beschäftigt und die beste Lösung gefunden, wenn Sie 2.6.24 oder höher verwenden, ist cgroup / Gruppen . Ein Beispiel wäre so, hier ist die Standarddatei /etc/cgconfig.conf mit einer hinzugefügten Kontrollgruppe am unteren Rand. Diese Kontrollgruppe begrenzt die Menge des physischen Speichers auf 100 MB und die gesamte Zuweisung des virtuellen Speichers auf 200 MB.
%Vor%Sobald ich dies konfiguriert habe, kann ich der Gruppe einen Prozess wie folgt hinzufügen
%Vor%Dies wird den Speicher des Hauptprozesses und aller von ihm erzeugten Kinder begrenzen. Es verfügt auch über Funktionen, um die Speichernutzung in den Controllern abzufragen.
Tags und Links memory linux process out-of-memory