PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Starker Ram Verbrauch



nr8
06.04.11, 10:12
Hallo.

Wir haben einen Server mit 10GB RAM.
Auf diesem Server laufen 2 Jboss Instancen - welche lt. Startparametern höchstens 5GB RAM benützen sollten.
Laut top ist dem auch so:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9890 jboss 17 0 2980m 2.0g 10m S 14.3 21.5 56:46.41 java
9978 jboss 18 0 3011m 1.5g 10m S 5.7 15.4 45:50.10 java

Wenn ich top nach MEM sortiere kommen nach den beiden java Prozessen keine nennenswert RAM verbrauchende Prozesse mehr.

und dennoch:

free -m
total used free shared buffers cached
Mem: 9749 9380 368 0 120 307
-/+ buffers/cache: 8952 797
Swap: 4400 98 4301


Zeitweise fällt der verbrauchte RAM dann wieder auf 5 GB runter - dann steigt er aber wieder bis ins unendliche, sodass der Server zu swappen beginnt.

Meine Frage:
Wie kann es sein, dass lt. MEM (bei Top) gerade mal 37% des Speichers verbraucht sein sollten, aber uns dennoch der RAM ausgeht.

Wir haben die Jboss Prozesse auch schon mit pmap untersucht, aber der Wert von writeable/private entspricht in etwa dem was bei VIRT (von top) steht und übersteigt für beide Prozesse niemals deutlich die 5GB.

Danke.

derRichard
06.04.11, 11:33
wenn dein server 10gb ram hat und du 5/5 an jboss gibst, was ist dann mit dem rest?

und ja, auch der kernel braucht ram...

//richard

nr8
06.04.11, 12:26
Die beiden Jboss Server brauchen nicht jeweils 5Gb sondern gesamt 5GB Speicher. Siehe die Ausgabe von Top die im ersten Post steht.

Das der Kernel auch Speicher braucht ist mir klar aber 5Gb nimmt sich dieser sicher nicht ;-)

derRichard
06.04.11, 13:38
hm, was steht in /proc/meminfo?
und warum schaltest du den swap nicht einfach aus?

ich verstehe das grundlegende problem nicht wirklich.
linux swappt _nicht_ erst wenn der ram voll ist...

//richard

ctFreez
06.04.11, 14:08
Moin,

um deinen Swap speicher sinnvoll nutzen zu können, sollte dieser 1,5 bis 2 mal so groß sein wie dein RAM. Mein Tipp, wenn du große speicherlast hast, dann bau eine schön schnelle 32GB SSD für den swap in den Server.
Nur so kann der Server alle mempages zusätzlich im SWAP vorhalten. Wir wollen ja nicht, der der swap erst benutzt wird, wenn der speicher wirklich zu ende ist, dafür ist die Platte zu langsam.

Swapping ist nix boses!

Guck dir mal an was caches und buffer (http://www.faqs.org/docs/linux_admin/buffer-cache.html) eigentlich genau bedeutet. Dieser speicher steht bei bedarf zur verfügung, wird aber im Moment verwendet um leseoperationen zu beschleunigen. Kannst du also eher zum freien speicher dazu rechnen.

gruß Felix

EDIT:
Cache (http://de.wikipedia.org/wiki/Cache#Organisation)
SWAP (http://wiki.ubuntuusers.de/swap)