goldfisch1980
Goto Top

Unglaublich hoher RAM Verbrauch bei meinem linux system!? Wieso?

Ich bin am rästseln wieso das Linux mit Basisdiensten wie HTTPD und mysql und einem Tomcat so unglaublich Speicherhungrig ist. Es stehen "nur" 3GB zur verfügung und arbeiten kann man fast gar nicht auf dieser Kiste da extrem langsam...

Ich habe ein CentOS release 5.4 (Final) in einer virtuellen Maschine am laufen das wie geschrieben 3 GB RAM hat (bereits aufgestockt von 1GB). Der swap Bereich ist "nur" 1GB gross (historisch bedingt).
Auf dieser virtuellen Maschine läuft ein Apache HTTPD, ein Apache Tomcat und eine mysql Datenbank drauf. Der Speicherverbrauch liegt nach neuem Systemrestart schon bei 700 MB und ist nach ein paar Stunden arbeiten auf dem Systrem auf knapp 3 GB angewachsen! Ich weiss nicht wieso das so ist und bin planlos. Beende ich den tomcat und den apache httpd dienst, bleibt der speicher trotzdem belegt im lt. Anzeige von top (habe bei Mem: xxxx used geschaut). Echt seltsam und ich weiss nicht wieter!
Ich habe übrigens parallel mit den quasi gleichen Diensten ein debian linux in einer vmware mit gerade mal 512 MB RAM Gesamtspeicher, das um ein vielfaches schneller ist aber nur knapp 400 MB Speicher frisst!? Und das läuft seit tagen und die arbeit die gemacht wird auf diesem System ist die gleiche!

Hier mal ein top mit "F" -> "n" des speicherhungrigen CentOS Systems:

top - 19:13:14 up 7 min,  1 user,  load average: 0.16, 0.95, 0.59
Tasks:  91 total,   2 running,  89 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3090720k total,   627960k used,  2462760k free,    16012k buffers
Swap:  1048568k total,        0k used,  1048568k free,   181416k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3725 tomcat    18   0 1138m  55m 9032 S  0.0  1.9   0:10.00 java
 3567 mysql     23   0  184m  22m 3088 S  0.0  0.7   0:01.66 mysqld
 3919 root      34  19  250m  15m 2080 S  0.0  0.5   0:00.44 yum-updatesd
 3654 root      18   0  207m  14m 5056 S  0.0  0.5   0:01.06 httpd
 3797 apache    18   0  207m  10m  688 S  0.0  0.4   0:00.01 httpd
 3800 apache    19   0  207m  10m  688 S  0.0  0.4   0:00.02 httpd
 3801 apache    20   0  207m  10m  688 S  0.0  0.4   0:00.02 httpd
 3802 apache    24   0  207m  10m  688 S  0.0  0.4   0:00.02 httpd
 3805 apache    25   0  207m  10m  688 S  0.0  0.4   0:00.01 httpd
 3304 haldaemo  15   0 31108 4184 1584 S  0.0  0.1   0:01.02 hald
 3972 root      15   0 90132 3352 2608 R  0.0  0.1   0:00.06 sshd
 3448 root      18   0  132m 2708 1796 S  0.0  0.1   0:00.09 cupsd
 3678 root      18   0 69008 2104  696 S  0.0  0.1   0:00.04 sendmail
 3697 smmsp     24   0 59764 1800  648 S  0.0  0.1   0:00.02 sendmail
 3987 root      16   0 66080 1516 1172 S  0.0  0.0   0:00.00 bash
 3392 root      19   0 54400 1512 1116 S  0.0  0.0   0:00.03 automount
 3804 avahi     15   0 23276 1392 1168 S  0.0  0.0   0:00.10 avahi-daemon
 3276 root      18   0 21040 1328  584 S  0.0  0.0   0:00.13 pcscd
 3517 root      25   0 65944 1288 1072 S  0.0  0.0   0:00.01 mysqld_safe
 2696 root      15   0 17536 1232  992 S  0.0  0.0   0:00.17 vmware-guestd
 3429 root      18   0 62632 1204  648 S  0.0  0.0   0:00.00 sshd
 3738 root      18   0 74836 1168  596 S  0.0  0.0   0:00.05 crond
 3934 root      34  19 12916 1108  964 S  0.0  0.0   0:00.04 gam_server
 4015 root      15   0 12732 1072  820 R  0.0  0.0   0:00.08 top
 3305 root      17   0 21692 1064  876 S  0.0  0.0   0:00.16 hald-runner
 3233 dbus      15   0 21264  936  692 S  0.0  0.0   0:00.02 dbus-daemon
 3178 root      25   0 14360  908  744 S  0.0  0.0   0:00.01 rpc.statd
 3480 root      21   0 21644  900  680 S  0.0  0.0   0:00.00 xinetd
 3313 haldaemo  18   0 12324  852  740 S  0.0  0.0   0:00.00 hald-addon-acpi
 3319 haldaemo  18   0 12324  852  740 S  0.0  0.0   0:00.00 hald-addon-keyb
  639 root      21  -4 12676  848  404 S  0.0  0.0   0:00.53 udevd
 3063 root      11  -4 27332  824  592 S  0.0  0.0   0:00.00 auditd
 3068 root       7  -8 16272  780  640 S  0.0  0.0   0:00.00 audispd
 3102 root      15   0 10108  772  620 S  0.0  0.0   0:00.01 syslogd
 3210 root      18   0 48724  724  292 S  0.0  0.0   0:00.00 rpc.idmapd
    1 root      18   0 10348  704  592 S  0.0  0.0   0:00.58 init
 3328 root      18   0 10228  688  588 S  0.0  0.0   0:00.13 hald-addon-stor
 3139 rpc       15   0  8052  592  468 S  0.0  0.0   0:00.00 portmap
 3291 root      18   0  3800  576  480 S  0.0  0.0   0:00.00 acpid
 3840 root      15   0  3792  492  420 S  0.0  0.0   0:00.00 mingetty
 3846 root      19   0  3792  492  420 S  0.0  0.0   0:00.01 mingetty
 3841 root      18   0  3792  488  420 S  0.0  0.0   0:00.00 mingetty
 3844 root      18   0  3792  488  420 S  0.0  0.0   0:00.00 mingetty
 3848 root      19   0  3792  488  420 S  0.0  0.0   0:00.00 mingetty
 3857 root      19   0  3792  488  420 S  0.0  0.0   0:00.01 mingetty
 3366 root      18   0  8516  484  380 S  0.0  0.0   0:00.00 hidd
 3837 root      18   0 18416  480  272 S  0.0  0.0   0:00.00 smartd
 3763 root      23   0 18740  468  316 S  0.0  0.0   0:00.01 atd
 3105 root      15   0  3804  440  352 S  0.0  0.0   0:00.00 klogd
 3119 root      18   0 10760  388  256 S  0.0  0.0   0:00.03 irqbalance
 3711 root      25   0  6452  372  292 S  0.0  0.0   0:00.00 gpm
 3806 avahi     23   0 23148  336  180 S  0.0  0.0   0:00.00 avahi-daemon
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/1
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.05 events/0
    7 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 events/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 khelper
[...]


Ich hoffe es kann mir wer einen tipp geben oder weiss sogar woran es liegen könnte.
Vll. ist auch dieser Email dienst Schuld? Den brauche ich eig. gar nicht...

Danke im vorraus!
Phil

Content-ID: 148458

Url: https://administrator.de/contentid/148458

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

maretz
maretz 05.08.2010 um 20:01:30 Uhr
Goto Top
Moin,

kleiner Tipp: Cached... Linux ist kein ganz blödes System. Es nimmt freien RAM als File-Cache. Und damit ist der RAM immer voll... Selbst wenn du 64 GB RAM einbaust - irgendwann sollten auch die voll sein. Denn freier Speicher ist Geldverschwendung... (den hättest du nich kaufen brauchen wenn der frei ist.).

Von daher - alles ok, lass die Kiste laufen und entspann dich face-smile
dog
dog 05.08.2010 um 21:00:41 Uhr
Goto Top
Geldverschwendung wäre es, wenn er nichts bringen würde, aber er bringt doch was: Seelenfrieden (zumindest unter Windows) face-wink
maretz
maretz 05.08.2010 um 21:04:43 Uhr
Goto Top
hmm - ok, da bin ich generell ggf. etwas pragmatisch... ich hab auch im auto nur einen reservereifen (falls ich den mal brauche) - und nich 5 neue reifen und 2 neue motoren schon im Kofferraum... würde zwar sicher auch cool aussehen - aber solang es nix bringt bleiben die dinger draussen ;)
goldfisch1980
goldfisch1980 05.08.2010 um 22:57:29 Uhr
Goto Top
Ich hab ja kein Problem mit der Tatsache dass der RAM voll ist. Aber dass ein Request auf meiner Entwicklungsumgebung nur 2 - 3 Sek. braucht und hingegen in dem CentOS mit 6 mal so viel RAM und pro Request aber 30-40 Sekunden, das haut ned hin!

face-sad
AndreasHoster
AndreasHoster 06.08.2010 um 09:16:49 Uhr
Goto Top
Ähm, bin ich jetzt der Einzige, der die Tabelle auch anschaut bevor er schreibt?

Ich sehe da oben:
Mem: 3090720k total, 627960k used, 2462760k free, 16012k buffers

Und 627960k used, 2462760k free bedeutet, das ca. 2,5 GB frei sind (gut, ein bischen Cache liegt da auch noch drin) und nur 670 MB benutzt werden.
Wo ist also der unglaublich hohe RAM Verbrauch?
CPU Auslastung ist auch praktisch 0.

Wie sieht das eigentlich mit der Auslastung des Systems aus, auf dem die VM läuft?
maretz
maretz 06.08.2010 um 09:44:26 Uhr
Goto Top
Nein - du bist nicht der einzige... Denn da steht auch "uptime: 7 Min" - und da ist es dann für Win-User schon verwirrend das der eben schon mal locker 180 MB als "cached" wegballert...

Daher gehe ich davon aus das diese Werte verwirren...
goldfisch1980
goldfisch1980 06.08.2010 um 09:57:02 Uhr
Goto Top
Das ist korrekt. Das ist absolut frisch gebootet das system ohne dass auch nur 1 HTTP Request oder eine mysql Datenbankabfrage gemacht wurde.

Gut lassen wir das mit der Speicherauslastung beiseite. Habe verstanden dass das "normal" ist.
Fakt ist aber, dass die Requests die an den Webserver gehen, bis zu 40-60 Sek. dauern. SSH und andere Dienste funktionieren hingegen in einem moderaten Zeitrahmen. Und da die Speicherauslastung immer am Limit ist (nach paar Stunden online) dachte ich dass es eben daran liegt...!? Aber scheint nicht so zu sein.

Da euch die werte verwirren - sorry, hier ein TOP auszug nach 14 Stunden ohne dass grossartig was gemacht wurde:
top - 09:58:15 up 14:52,  3 users,  load average: 0.38, 0.48, 0.35
Tasks: 101 total,   2 running,  99 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.7%sy,  0.0%ni, 98.2%id,  0.3%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   3090720k total,  2929148k used,   161572k free,   124900k buffers
Swap:  1048568k total,        0k used,  1048568k free,   321984k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    6 root      10  -5     0    0    0 S  0.7  0.0   0:01.36 events/0
 2696 root      15   0 17536 1236  992 S  0.7  0.0   0:03.95 vmware-guestd
    1 root      15   0 10348  704  592 S  0.3  0.0   0:00.67 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.15 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.09 migration/1
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    7 root      10  -5     0    0    0 S  0.0  0.0   0:01.12 events/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 khelper
   33 root      10  -5     0    0    0 S  0.0  0.0   0:00.03 kthread
   38 root      10  -5     0    0    0 S  0.0  0.0   0:00.07 kblockd/0
   39 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kblockd/1
   40 root      14  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
  200 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
  201 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/1
  204 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
  206 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod
  280 root      18   0     0    0    0 S  0.0  0.0   0:00.00 pdflush
  281 root      15   0     0    0    0 S  0.0  0.0   0:00.64 pdflush
  282 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 kswapd0
  283 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0
  284 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 aio/1
  490 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kpsmoused
  536 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 mpt_poll_0
  537 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0
  541 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ata/0
  542 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 ata/1
  543 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 ata_aux
  550 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 kstriped
  563 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 ksnapd
  581 root      10  -5     0    0    0 S  0.0  0.0   0:02.70 kjournald
  606 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kauditd
  639 root      15  -4 12676  848  404 S  0.0  0.0   0:00.56 udevd
 2053 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 kmpathd/0
 2054 root      19  -5     0    0    0 S  0.0  0.0   0:00.00 kmpathd/1
 2055 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 kmpath_handlerd
 2100 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kjournald
 2102 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kjournald
 2107 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kjournald
 2594 root      15   0     0    0    0 S  0.0  0.0   0:03.85 vmmemctl
 3063 root      11  -4 27332  840  596 S  0.0  0.0   0:00.10 auditd
 3068 root       7  -8 16272  788  640 S  0.0  0.0   0:00.09 audispd
 3102 root      15   0 10108  772  620 S  0.0  0.0   0:00.08 syslogd
 3105 root      15   0  3804  440  352 S  0.0  0.0   0:00.02 klogd
 3119 root      18   0 10760  388  256 S  0.0  0.0   0:02.37 irqbalance
 3139 rpc       15   0  8052  592  468 S  0.0  0.0   0:00.00 portmap
 3170 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 rpciod/0
 3171 root      13  -5     0    0    0 S  0.0  0.0   0:00.00 rpciod/1
 3178 root      25   0 14360  908  744 S  0.0  0.0   0:00.01 rpc.statd

Wie der Host aussieht in Sachen Auslastung das weiss ich nicht.. Das ist ja eine virtuelle maschine und ich habe auf den Host kein Zugriff.


gruss
phil
dog
dog 06.08.2010 um 10:09:29 Uhr
Goto Top
Bist du dir sicher, dass du nicht einfach keine/die falschen Indizes auf der MySQL-Datenbank hast und die Query-Zeit darum mit den Datensätzen exponentiell ansteigt?

Setz dir mal einen MySQL Query Proxy dazwischen und dann führ mal alle Queries auf der Produktiv-DB manuell aus.
goldfisch1980
goldfisch1980 06.08.2010 um 10:46:44 Uhr
Goto Top
Das habe ich auch schon geprüft. Ich habe den mysql slow log aktiviert. Führe ich den Befehl direkt im mysql auf der konsole aus iss das ergebnis ruckzuck da... Ich tippe mittlerweile vielmehr auf nen Netzwerkfehler...
Oder ich habe von vmware inkompatibilitäten gehört! Wenn man ein image in einem Server importiert - muss das nicht zwangsläufig 100% kompatibel sein... Jmd. da erfahrung?
maretz
maretz 06.08.2010 um 16:38:14 Uhr
Goto Top
Was für ein Image hast du in was für einen Server importiert?
goldfisch1980
goldfisch1980 07.08.2010 um 01:36:26 Uhr
Goto Top
Xen Image in ein vmware Server.
goldfisch1980
goldfisch1980 10.08.2010 um 23:20:19 Uhr
Goto Top
Okay hab die Lösung: im vmware server von dynamischer Speicherreservierung auf fixe Speicherreservierung umstellen...