Ich habe einen neuen Server mit Ubuntu 11.04 (Natty) (64-Bit). Ich begann mit der Installation von openjdk
und tomcat6
. Beim Start des Tomcat-Servers werden sofort mehr als 480 MB Arbeitsspeicher verwendet. Dies scheint unverhältnismäßig und ich frage mich, ob jemand eine Lösung hat, um Tomcat dazu zu bringen, 200-300 MB (oder weniger) Speicher zu verwenden.
Ich habe memtop verwendet, um Folgendes zu sehen: (Hinweis: Ich habe alle bis auf die großen Einträge entfernt. Der 499-MB-Eintrag ist Tomcat.)
user@xyz:~# python memtop-0.9.py
PID | private/writ. mem |command
| current | previous |(truncated)
19776 | 499.3 MB | +++++ |/usr/lib/jvm/java-6-openjdk/bin/java-Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties-Djava.awt.headless=true-Xm
18082 | 148.6 MB | +++++ |/usr/sbin/mysqld
1385 | 3.6 MB | ++ |pythonmemtop-0.9.py
RAM usage: ============================================== 69.3 %
Außerdem können Sie sehen, welche JDK- und Tomcat-Pakete ich installiert habe:
user@xyz:~# dpkg --get-selections | grep jdk
default-jdk install
openjdk-6-jdk install
openjdk-6-jre install
openjdk-6-jre-headless install
openjdk-6-jre-lib install
user@xyz:~# dpkg --get-selections | grep tomcat
libtomcat6-java install
tomcat6 install
tomcat6-admin install
tomcat6-common install
tomcat6-user install
Das Startskript für Tomcat ist Xmx
auf 128 MB festgelegt :
JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
Hat jemand eine Idee, was ich tun könnte, um den Speicherverbrauch auf etwas Vernünftigeres zu reduzieren? Ich verstehe nicht, warum JVM und Tomcat zusammen so viel Speicher benötigen würden.
EDITS
Zum Teufel habe ich Tomcat 6 direkt heruntergeladen und das Startskript ausgeführt. Beachten Sie, dass diesmal kein Xmx- Wert festgelegt wurde. Bei der Ausführung dieses, memtop zeigt , dass Tomcat mit 737 MB sind im Wert von Speicher!
Dies lässt mich glauben, dass es ein Problem mit openjdk gibt , das eine ernsthafte Menge an Speicher für die JVM verwendet.
Ich habe das gleiche mit einem neuen .zip-Download von Tomcat 7 versucht - das gleiche Problem. Es wurden 740 MB Speicher verwendet.
Ich habe das Sun JRE / JDK installiert. Der Speicherverbrauch ging von fast 500 MB auf rund 400 MB zurück . Dies ist immer noch mehr Speicher als ich bevorzugen würde!
(sun-java6-bin, sun-java6-jdk, sun-java6-jre)
Wenn ich renne top
, bekomme ich folgendes:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13749 tomcat6 20 0 481m 68m 9892 S 0 7.4 0:02.85 java
Ich erkenne und erwarte, dass eine 64-Bit-Maschine / JVM mehr Speicher benötigt, aber ich habe nicht erwartet, dass sie so hoch ist. Ich verwende eine VM, die mir nur 512 MB garantiert.
RES
und VIRT
, wenn Sie verwenden top
?