Toon posts:

[Linux] Onverklaarbaar geheugen gebruik.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Deze server met een Celeron 800 en 384mb geheugen draait op Gentoo met linux kernel 2.4.27. Ik kan het geheugengebruik van deze computer niet verklaren. Volgens free wordt er ongeveer 80% geheugen gebruikt(exclusief buffers en cache). Met top kom ik maar op ongeveer 25% geheugen gebruikt door de processen.

(Gesorteerd op geheugen gebruik):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
top - 15:08:23 up 3 days, 20 min,  2 users,  load average: 0.05, 0.01, 0.00
Tasks:  42 total,   1 running,  41 sleeping,   0 stopped,   0 zombie
Cpu(s):   0.0% user,   0.3% system,   0.0% nice,  99.7% idle
Mem:    385940k total,   380848k used,     5092k free,     6060k buffers
Swap:   570296k total,      312k used,   569984k free,    60968k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                          
 1611 squid      9   0 40084  39m 1812 S  0.0 10.4   1:04.73 squid                                                                            
12195 root       9   0  3284 3284 2636 S  0.0  0.9   0:07.65 smbd                                                                             
 1329 named      9   0  2692 2688 2072 S  0.0  0.7   0:00.00 named                                                                            
 1334 named      9   0  2692 2688 2072 S  0.0  0.7   0:00.00 named                                                                            
 1335 named      9   0  2692 2688 2072 S  0.0  0.7   0:00.17 named                                                                            
 1344 named      9   0  2692 2688 2072 S  0.0  0.7   0:00.02 named                                                                            
 1349 named      9   0  2692 2688 2072 S  0.0  0.7   0:00.03 named                                                                            
 1546 root       9   0  2148 2144 1596 S  0.0  0.6   0:00.00 sendmail                                                                         
 1434 proftpd    9   0  2140 2140 1540 S  0.0  0.6   0:00.00 proftpd                                                                          
 1499 root       9   0  1892 1884 1628 S  0.0  0.5   0:00.63 smbd                                                                             
 1549 smmsp      9   0  1804 1744 1328 S  0.0  0.5   0:00.00 sendmail                                                                         
 1486 root       9   0  1736 1728 1484 S  0.0  0.4   0:00.04 smbd                                                                             
12640 peter      9   0  1580 1524 1380 S  0.0  0.4   0:00.47 sshd                                                                             
12638 root       9   0  1508 1456 1320 S  0.0  0.4   0:00.02 sshd                                                                             
 1489 root       9   0  1408 1408 1132 S  0.0  0.4   0:00.70 nmbd                                                                             
12641 peter      9   0  1332 1332 1116 S  0.0  0.3   0:00.08 bash                                                                             
12737 peter      9   0  1280 1280 1064 S  0.0  0.3   0:00.03 bash                                                                             
 1275 lp         8   0  1148 1148  956 S  0.0  0.3   0:00.02 lpd                                                                              
 1608 root       9   0  1256 1068  964 S  0.0  0.3   0:00.01 squid                                                                            
 1663 root       9   0  1112 1028  944 S  0.0  0.3   0:00.00 sshd                                                                             
12736 peter     18   0  1004 1004  812 R  0.3  0.3   0:11.01 top                                                                              
  152 root       9   0   868  868  636 S  0.0  0.2   0:00.07 devfsd                                                                           
 1755 root       9   0   864  864  740 S  0.0  0.2   0:00.00 xinetd                                                                           
 1703 root       8   0   680  680  596 S  0.0  0.2   0:00.01 cron                                                                             
 1001 root       9   0   584  580  496 S  0.0  0.2   0:00.23 metalog                                                                          
 1770 root       9   0   580  580  516 S  0.0  0.2   0:00.02 agetty                                                                           
 1771 root       9   0   580  580  516 S  0.0  0.2   0:00.00 agetty                                                                           
 1772 root       9   0   580  580  516 S  0.0  0.2   0:00.00 agetty                                                                           
 1773 root       9   0   580  580  516 S  0.0  0.2   0:00.00 agetty                                                                           
 1774 root       9   0   580  580  516 S  0.0  0.2   0:00.00 agetty                                                                           
 1775 root       9   0   580  580  516 S  0.0  0.2   0:00.00 agetty                                                                           
    1 root       8   0   500  496  444 S  0.0  0.1   0:03.74 init                                                                             
 1006 root       9   0   464  460  424 S  0.0  0.1   0:00.00 metalog                                                                          
 1179 root       9   0   448  448  400 S  0.0  0.1   0:00.00 dhcpcd                                                                           
 1612 squid      9   0   276  272  236 S  0.0  0.1   0:00.23 unlinkd


output van free(-m):
code:
1
2
3
4
             total       used       free     shared    buffers     cached
Mem:           376        371          5          0          5         59
-/+ buffers/cache:        306         70
Swap:          556          0        556


Geen ramdisk in gebruik:
code:
1
2
3
4
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             8.8G  6.2G  2.2G  75% /
/dev/hdc1             113G  109G  4.2G  97% /mnt/hdc
none                  189M     0  189M   0% /dev/shm



Kan misschien anders verklaren waar het geheugen door gebruikt zou kunnen worden?

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

[TOPIC=814910///#geheugenvol]

Verwijderd

Topicstarter
Ja is mij bekend, beter lezen aub.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 10:51
Is er ook een probleem met de performance van deze machine dan?

Verwijderd

Topicstarter
Nee dat niet echt, hij wordt niet intensief gebruikt.

Hij is echter wel een aantal keren vastgelopen de laatste tijd, maar ik vermoed dat het koeling/hardware problemen zijn ivm het niet werken van een hardware reset.

Ik was van plan om 128mb uit deze pc te halen en ik was geinteresseerd welke processen hoeveel geheugen gebruiken. Ik kan alleen een groot gedeelte niet verklaren.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Beter lezen? Uit jouw vraag blijkt anders niet echt dat je snapt wat er in dat verhaaltje wordt uitgelegd; het 'used' geheugen is niet allemaal aan processen toegewezen. Onder 't gebruikte geheugen valt ook alles wat de kernel cached van block deviced e.d. en dat zie je simpelweg niet terug in top. In top kun je alleen het geheugen zien wat aan processen is toegewezen en zelfs dat kun je niet veilig bij elkaar optellen, want shared geheugen zie je bij elk proces ook weer terug.

Verwijderd

Verwijderd schreef op donderdag 18 november 2004 @ 16:08:
[...]
Geen ramdisk in gebruik:
code:
1
none                  189M     0  189M   0% /dev/shm
Eugh, /dev/shm wordt over het algemeen gemount als tmpfs, dus je gebruikt wel degelijk een "ramdisk"... Overigens zie ik verder niets raars aan je memory gebruik. Die 128m kun je er zonder zorgen uithalen. Eventueel squid iets limiteren qua geheugen gebruik maar voor de rest moet dat probleemloos gaan draaien...

[ Voor 26% gewijzigd door Verwijderd op 18-11-2004 17:44 ]


Verwijderd

Topicstarter
/dev/shm is gemount als tmpfs dat klopt. Maar tmpfs moet toch vanzelf geheugen vrijgeven wanneer erom gevraagd wordt. Of heeft tmpfs geheugen hogere 'prioriteit' dan buffers en cache?

@Bergen: nog steeds ben ik van mening dat je niet goed gelezen hebt :)

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Dat stukje van 'buffers en cache' had ik even gemist ja... Lekker scheel.

Misschien kunnen we iets nuttigs halen uit cat /proc/meminfo?

  • Jesse
  • Registratie: Februari 2001
  • Laatst online: 10-02 21:06
Volgens mij snap ik het probleem niet?

code:
1
2
3
385940k = 376m
380848k = 371m
5092k = 5 m

Doe eens free -k en vergelijk dat met wat je ziet in top.

Edit: Of heb je nou het gesorteerde geheugengebruik op zitten tellen zegmaar? Dan kom ik ongeveer 10 mb verkeerd uit (Te weinig in top) op me servertje (P2 233, 3x64 mb ram).

[ Voor 46% gewijzigd door Jesse op 18-11-2004 19:09 ]


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Jesse schreef op donderdag 18 november 2004 @ 18:58:
Volgens mij snap ik het probleem niet?
Nou kijk, als je het used geheugen pakt en je trekt daar de buffers en de cache af, dan heb je 't geheugen wat wordt gebruikt door je processen. Als je top start en vervolgens sorteert op virtueel geheugen (de kolom VIRT) kun je het verbruik optellen en dan moet je op 't zelfde uitkomen. In top zie je natuurlijk alleen de grootsten, maar dan moet je al redelijk in de buurt komen, maar TS komt maar op 25% van z'n geheugen, terwijl er 80% in gebruik is.

De waarden zouden veel logischer zijn als 't cached geheugen wat hoger zou zijn... Je zou bijna zeggen dat de kernel verkeerde waarden uitpoept.

[ Voor 13% gewijzigd door Bergen op 18-11-2004 19:20 ]


Verwijderd

Topicstarter
Ondertussen heb ik de pc opnieuw opgestart om te kunnen zien hoeveel hij dan gebruikt. Dit is dus met dezelfde processen, zelfde versies, zelfde instellingen.


code:
1
2
3
4
             total       used       free     shared    buffers     cached
Mem:           376         52        324          0          4         23
-/+ buffers/cache:         24        352
Swap:          556          0        556


Enorm verschil dus. Ik vermoed dat er een memleak ergens zit ofzo. Daarnaast is de computer al weer een keer vastgelopen toen ik een paar processen aan het stressen was. Ik ga dat ding eerst maar eens open maken om te kijken of de koeling dicht gestoft is.

Verwijderd

Topicstarter
Nu dat hij een nachtje heeft gelopen is het weer zover.

free -m:
code:
1
2
3
4
             total       used       free     shared    buffers     cached
Mem:           376        371          4          0         29         62
-/+ buffers/cache:        279         97
Swap:          556          0        556


cat /proc/meminfo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        total:    used:    free:  shared: buffers:  cached:
Mem:  395202560 390045696  5156864        0 31318016 65302528
Swap: 583983104        0 583983104
MemTotal:       385940 kB
MemFree:          5036 kB
MemShared:           0 kB
Buffers:         30584 kB
Cached:          63772 kB
SwapCached:          0 kB
Active:          59692 kB
Inactive:        50092 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       385940 kB
LowFree:          5036 kB
SwapTotal:      570296 kB
SwapFree:       570296 kB


top is weer ongeveer hetzelfde alleen gebruikt squid nog maar 3,1 % mem.

Verwijderd

Wat is nu het probleem? Het is vrij normaal dat als je vers opstart je een stuk meer geheugen vrij hebt dan nadat je een tijdje multiuser bent. Zie vooral ook je buffers + cache waardes.

Verwijderd

Topicstarter
(startpost situatie, ik heb top niet van vorige post ivm weer een restart)

Gebruik processen: ~25%(volgens top) = 94mb
Gebruik cache+buffers: (volgens free) = 65 mb
totaal: 159mb

totaal gebruik volgens free(INCLUSIEF buffers+cache): 371 mb

Mijn vraag is waar de rest gebruikt word.

Verwijderd

Voor je buffers & cache word respectievelijk 279MB en 97MB gebruikt volgens je laatste free output (regel +/- buffers/cache).

Verwijderd

Topicstarter
Je leest de output van free verkeerd, de 279 is - buffer/cache en de 97 is + buffers/cache volgens mij.

  • Jesse
  • Registratie: Februari 2001
  • Laatst online: 10-02 21:06
Wat er aan buffers en cache gebruikt wordt zie je dus rechtsbovenin onder buffers en cached. Wat onder used in de tweede rij te zien is is het gebruikte geheugen waar de buffers en cache vanaf gehaald zijn, en dat is nogal veel als je kijkt naar wat ie draaid.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Tja, er zal dus wel ergens een memoryleak zitten... Maarja, dat kan elk proces zijn. Gewoon kijken of je iets kunt updaten dus.

  • Sendy
  • Registratie: September 2001
  • Niet online
Een memory leak in een applicatie zou natuurlijk gewoon in top te zien moeten zijn; het kan dus niet zomaar elk proces zijn.

Memory leaks in de kernel kan natuurlijk ook (al is dat misschien onwaarschijnlijk). Maar memory leaks hebben meestal tot gevolg dat er steeds meer geheugen wordt gebruikt. Je machine gaat dus swappen, totdat de swap ook vol is. Als je dat niet ervaart (laat je computer eens een week draaien) dan is het geen memory leak (of een hele vreemde).

Heb je al eens in /proc gekeken hoeveel geheugen de applicaties gebruiken?

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Squid heeft doorgaans de gewoonte om erg vele memmory te pakken. Sluit die eens af als je het weer ziet... Dikke kans dat het totaal gebruik aanzielijk zakt.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Ik geef dit topic nog even een schopje... Zonet kwam ik het programmatje memstat tegen (zit iig in de Ubuntu APT-repository). De omschrijving volgens man:
NAME
memstat - Identify what's using up virtual memory.

SYNOPSIS
memstat [-w]

DESCRIPTION
memstat lists all the processes, executables, and shared libraries that are using up virtual memory.
Bij mij poept ie een lijst van (volgens wc) 482 regels uit, ontzettend gedetailleerd dus. Misschien heb je er er iets aan.
Pagina: 1