PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VServer mit Tomcat und Java



zottelhase
10.04.12, 13:48
Hallo,

Ich habe mir einen Vserver mit debian lenny (5) gemietet und versuche dort einen tomcat 7 zum laufen zu bringen. Ich habe zugesicherte 512 mb Ram.

Ich habe versucht das JRE /JDK 6 von sun und das openjdk6 zu installieren. doch bei allen 3 Java versionen stürzt der Tomcat nach dem starten mit "killed" ab.
Ich habe die Java opts entsprechend minimiert sodass der Speicher ausreicht.

(Das "killed" kommt sogar ab und zu wenn ich java-version eingebe).
Ich hab im internet gefunden dass ein "oom-killer" prozesse killed die zuviel Speicher verbrauchen. Ist etwas misteriös, da meine VM nie mehr als ca 100 mb Ram braucht (zumindest nicht mit meinen java opts einstellungen).


Weis da jemand zufällig rat wie ich den tomcat auf dem vserver zum laufen bringe?



Vielen Dank ;)

muell200
10.04.12, 15:59
erstmal willkommen auf dem board



Weis da jemand zufällig rat wie ich den tomcat auf dem vserver zum laufen bringe?


nicht falsch verstehen:

ES GEHT NICHT - IST KEINE FEHLERMELDUNG

um dir zu helfen brauchen wir mehr infos....

was steht in den logs...
welche version, kernel,....

gruss

derRichard
10.04.12, 16:05
(Das "killed" kommt sogar ab und zu wenn ich java-version eingebe).
Ich hab im internet gefunden dass ein "oom-killer" prozesse killed die zuviel Speicher verbrauchen. Ist etwas misteriös, da meine VM nie mehr als ca 100 mb Ram braucht (zumindest nicht mit meinen java opts einstellungen).


Weis da jemand zufällig rat wie ich den tomcat auf dem vserver zum laufen bringe?


naja, es kommt auf das speicherlimit an.
wenn vsz (virtual size) auf 512mb limitiert ist, hast du schlechte karten.
die 100mb die du meinst, sind bestimmt rsz (resident size)

//richard

zottelhase
10.04.12, 18:18
Danke für die Antworten,

joa das Problem ist in den logs steht nix ^^. Das ist ja das seltsame, das Tomcat log ist nach dem "started" leer, im Kernel Log und message log steht leider auch nichts.
(das ist ja das was mich so verrückt macht, sonst könnte man auch besser googeln ^^)


Kernel Version ist:


2.6.26-2-openvz-686

tomcat log:

Apr 6, 2012 5:32:56 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.27
Apr 6, 2012 5:32:56 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/tomcat/apache-tomcat-7.0.27/webapps/docs
Apr 6, 2012 5:33:00 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,613] milliseconds.
Apr 6, 2012 5:33:00 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/tomcat/apache-tomcat-7.0.27/webapps/ROOT
Apr 6, 2012 5:33:00 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/tomcat/apache-tomcat-7.0.27/webapps/manager
Apr 6, 2012 5:33:00 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/tomcat/apache-tomcat-7.0.27/webapps/host-manager
Apr 6, 2012 5:33:00 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8081"]
Apr 6, 2012 5:33:00 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Apr 6, 2012 5:33:00 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4216 ms


Ram hab ich 184 mb (ohne jvm) von theoretischen (shared) 4.6 Gb in gebrauch. mit Jvm sind es mit meinen Java opts ca 380 mb, also noch unter den 512 zugesicherten.


wenn ihr weiter infos braucht sagt bitte welche befehle ich ausführen soll ^^.

Grüße,
zottelhase

marce
10.04.12, 18:47
Poste doch einfach mal die konkreten Start-Optionen vom TomCat und z.B. die passende Zeile von top, free, oder einem sonstigen Tool, mit dem Du den Speicherverbrauch überwachen kannst.

Generell würde ich aber sagen: VServer, TomCat, Java + 512MB vertragen sich nicht so gut... - Java hält sich was die konfigurierten Grenzen angeht nicht sklavisch daran sondern nimmt das mehr als "Richtlinie"... abgesehen davon, daß bei zu geringer Speicherzuweisung das Ding alles andere als stabil laufen wird...

zottelhase
10.04.12, 19:45
free ergibt ohne tomcat:



total used free shared buffers cached
Mem: 4854 184 4669 0 0 0
-/+ buffers/cache: 184 4669
Swap: 0 0 0



free -m mit gestartetem tomcat:



total used free shared buffers cached
Mem: 4854 462 4391 0 0 0
-/+ buffers/cache: 462 4391
Swap: 0 0 0



ich hab die java opts zwischen xms=64m ,xmx 64m bis beides auf 128 m (liegt immer noch unter der 512er speichergrenze

top ergibt



top - 21:43:10 up 1 day, 2:22, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 27 total, 1 running, 25 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 0.0%id,100.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4970644k total, 195604k used, 4775040k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11993 root 20 0 14700 10m 1152 D 2 0.2 0:00.08 miniserv.pl
11992 root 20 0 0 0 0 Z 1 0.0 0:00.08 miniserv.pl <defunct>
533 mysql 20 0 123m 15m 4036 S 0 0.3 0:56.48 mysqld
1 root 20 0 1984 692 592 S 0 0.0 0:01.50 init
346 root 20 0 1696 636 516 S 0 0.0 0:00.16 syslogd
353 root 20 0 5276 1032 680 S 0 0.0 0:00.00 sshd
388 root 20 0 2700 1304 1076 S 0 0.0 0:00.00 mysqld_safe
534 root 20 0 1632 532 460 S 0 0.0 0:00.00 logger
585 postgres 20 0 40668 4940 4316 S 0 0.1 0:00.70 postgres
615 root 20 0 2356 848 704 S 0 0.0 0:00.00 xinetd
641 root 20 0 8164 1636 844 S 0 0.0 0:05.56 sendmail-mta
666 root 20 0 2040 884 704 S 0 0.0 0:00.28 cron
676 root 20 0 22188 6284 3440 S 0 0.1 0:03.98 apache2
681 www-data 20 0 22636 4360 1252 S 0 0.1 0:00.00 apache2
691 postgres 20 0 40668 1368 732 S 0 0.0 0:30.10 postgres
692 postgres 20 0 40668 1184 548 S 0 0.0 0:20.02 postgres
693 postgres 20 0 40668 1304 640 S 0 0.0 0:03.92 postgres
694 postgres 20 0 11988 1088 456 S 0 0.0 0:02.10 postgres
695 root 20 0 12972 8852 1516 S 0 0.2 0:07.44 miniserv.pl
716 www-data 20 0 22188 4008 1108 S 0 0.1 0:00.00 apache2
1372 www-data 20 0 22524 4316 1256 S 0 0.1 0:00.00 apache2
2086 messageb 20 0 2484 1084 880 S 0 0.0 0:00.00 dbus-daemon
2261 avahi 20 0 2880 1436 1220 S 0 0.0 0:00.00 avahi-daemon
2262 avahi 20 0 2748 464 280 S 0 0.0 0:00.00 avahi-daemon
11019 root 20 0 8032 2692 2232 S 0 0.1 0:00.14 sshd
11021 root 20 0 2836 1624 1240 S 0 0.0 0:00.08 bash
11991 root 20 0 2260 1076 872 R 0 0.0 0:00.02 top

marce
10.04.12, 21:11
schön wäre natürlich, wenn im top-Auszug ein Tomcat zu sehen wäre :-)

Ich muss morgen mal schauen, es gibt die Möglichkeit, den Speicherverbrauch vom TomCat selbst loggen zu lassen....

Wo hast Du denn die JAVA_OPTS gesetzt?

zottelhase
10.04.12, 23:13
Hi,

Ich hab einmal die Java opts generell mit export gesetzt und dann wo das nichts geholfen hab in die setenv.sh im tomcat\bin verzeichniss.
(die momentante setenv.sh ist
JAVA_OPTS="-Xms128m -Xmx128m"
)


Hier ein top auszug mit gestartetem tomcat



Tasks: 34 total, 1 running, 33 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.1%sy, 0.0%ni, 3.2%id, 96.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4970644k total, 470548k used, 4500096k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13604 root 20 0 270m 25m 7532 S 114 0.5 0:00.67 java
1 root 20 0 1984 692 592 S 0 0.0 0:01.74 init
346 root 20 0 1696 636 516 S 0 0.0 0:00.20 syslogd
353 root 20 0 5276 1032 680 S 0 0.0 0:00.00 sshd
388 root 20 0 2700 1304 1076 S 0 0.0 0:00.00 mysqld_safe
533 mysql 20 0 123m 15m 4036 S 0 0.3 1:04.62 mysqld
534 root 20 0 1632 532 460 S 0 0.0 0:00.00 logger
585 postgres 20 0 40668 4940 4316 S 0 0.1 0:00.72 postgres
615 root 20 0 2356 848 704 S 0 0.0 0:00.00 xinetd
641 root 20 0 8164 1636 844 S 0 0.0 0:06.30 sendmail-mta
666 root 20 0 2040 884 704 S 0 0.0 0:00.32 cron
676 root 20 0 22188 6284 3440 S 0 0.1 0:04.58 apache2
681 www-data 20 0 22636 4360 1252 S 0 0.1 0:00.00 apache2
691 postgres 20 0 40668 1368 732 S 0 0.0 0:34.44 postgres
692 postgres 20 0 40668 1184 548 S 0 0.0 0:22.58 postgres
693 postgres 20 0 40668 1304 640 S 0 0.0 0:04.46 postgres
694 postgres 20 0 11988 1088 456 S 0 0.0 0:02.48 postgres

fork
18.04.12, 19:21
Hi,

ich hab' auch eine Java-Anwendung(cyclos) im Testbetrieb mit Tomcat laufen mit der Option -Xmx256M. Jedoch merke ich das es bei meinem VServer (Debian,512MB RAM) gelegentlich zu Überlastungsproblemen wg. zu wenig Arbeitsspeicher kommt, die offensichtlich von der Java-Anwendung herrühren. Dann wird auch der Apache ausgeknockt und reagiert fast nicht mehr. Die statischen Webseiten gehen noch mit langen Wartezeiten. Die dynamischen(PHP/MySQL) bringen keine Seite mehr(timeout). Ansonsten läuft da nur noch MySQL+Postfix drauf.

Abstürze hatte ich da noch keine. Hab' es aber auch noch nicht mit weniger RAM per Option getestet.

Grüße,
fork