[apache] Opeens bestaat session_mm_apache0.mem?

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • eborn
  • Registratie: April 2000
  • Laatst online: 11-05 23:12
Ik was zojuist eens mijn Linux machine aan het opschonen en kwam opeens in de /tmp directory de bestanden session_mm_apache0.mem en session_mm_apache0.sem tegen. Het mem bestand neemt meer dan 60 MB in beslag en het sem bestand helemaal niets. Nu kan ik me niet herinneren dat ik die bestanden wel eens eerder heb gezien. Natuurlijk staan er wel eens session bestanden in de /tmp directory, maar geen files van deze omvang. Hoogstens enkele kilobytes.

Ik heb daarom eens op Google gezocht, maar kan eigenlijk niet veel informatie over deze bestand vinden (niet meer dan dat ze bestaan). Maar waarvoor dienen ze? Dan kan ik namelijk bepalen of ik ze wel of niet nodig heb. En misschien kan ik ze dan ergens uitschakelen. :)

Ik draai op dit moment (zonder problemen) Apache 1.3.27 (geinstalleerd via apt-get onder Debian).

Verwijderd

Kijk eens of er iets staat in de logfiles.

Verwijderd

Die bestanden heb ik ook, weet niet precies waar ze voor dienen, maar ze nemen niet die 60 mb in beslag. Doe maar eens du -h /tmp. Zal wel iets met geheugen te maken hebben. Zo lijkt het alsof /proc/kcore 256 mb, wanneer je swap partitie 256 mb is.

  • eborn
  • Registratie: April 2000
  • Laatst online: 11-05 23:12
Verwijderd schreef op 25 januari 2003 @ 22:32:
Die bestanden heb ik ook, weet niet precies waar ze voor dienen, maar ze nemen niet die 60 mb in beslag. Doe maar eens du -h /tmp. Zal wel iets met geheugen te maken hebben. Zo lijkt het alsof /proc/kcore 256 mb, wanneer je swap partitie 256 mb is.
Je hebt gelijk :) Ik vergeet altijd dat du commando (ben dan in de war met df). Maar goed, het zal dan wel iets van de laatste versies zijn. Wel vreemd dat Google er helemaal niets over zegt. Zulk soort dingen verwacht je toch in change-logs o.i.d. te vinden.

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 06:05
Ging net eens voor de gein kijken op mn eigen server enw at schetst mijn verbazing:
code:
1
2
-rw-------    1 root     root     67108864 Jan 19 06:25 session_mm_apache0.mem
-rw-------    1 root     root            0 Jan 19 06:25 session_mm_apache0.sem

:?

Draai ook debian (sid, apache 1.3.27)

  • MikeN
  • Registratie: April 2001
  • Laatst online: 13-05 14:50
Ik kijk net:

code:
1
2
-rw-------    1 root     root     335544320 Jan 25 06:25 session_mm_apache0.mem
-rw-------    1 root     root            0 Jan 25 06:25 session_mm_apache0.sem


Ik heb het meest, krijg ik nu een prijs? :+

Maar goed, volgens mij heeft dit iets met mm te maken :+
Het zal wel een manier zijn van de verschillende apache processen om geheugendata uit te wisselen ofzo :?

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 06:05
Zo te zien is het idd een soort van shared mem:
Doe maar eens een lsof /tmp/session_mm_apache0.*
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lsof session_mm_apache0.*
COMMAND   PID     USER   FD   TYPE DEVICE     SIZE   NODE NAME
apache  10630 www-data  mem    REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10630 www-data  mem    REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10630 www-data    7u   REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10630 www-data    8u   REG    3,3        0 161708 session_mm_apache0.sem
apache  10631 www-data  mem    REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10631 www-data  mem    REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10631 www-data    7u   REG    3,3 67108864 161645 session_mm_apache0.mem
apache  10631 www-data    8u   REG    3,3        0 161708 session_mm_apache0.sem
.
.
.
.

Verwijderd

Op die manier zou apache data tussen verschillende processoren uitwisselen......als KEES hier toevallig langs fietst......jij ook zo zulke files in /tmp bij die SMP machines? (b.v die Xeons met HT :9 ...)

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

mm heeft inderdaad het een en ander met shared memory te maken.

Op een Woody bak (apache 1.3.26-0woody3, libmm11 1.1.3-6.1) heb ik geen .mem file, alleen de .sem .

Op mijn laptop, met Sid (apache 1.3.27-0.1, libmm12 1.2.2-1) heb ik ze beiden, en de .mem file is 67108864 bytes. Hij maakt deze file overigens direkt bij het starten van apache aan, en bij mij was hij even groot direct na het starten van apache als weken later.

Het treedt dus alleen op bij nieuwe versies van apache of libmm12 (ik weet zo niet welke het veroorzaakt). De vraag is dan een beetje of het een bug is, of dat het gewoon zo hoort (in welk geval het de vraag is of een 60+ meg file in /tmp plempen zo'n goede oplossing is, of het maken van een 60+ meg file überhaupt een goede oplossing is)...

  • eborn
  • Registratie: April 2000
  • Laatst online: 11-05 23:12
libmm12 is in debian unstable van 1 januari, apache 1.3.27 van 4 januari :) Geen idee welke van de twee dus de 'veroorzaker' is. Maar goed, zo lang ik er geen last van heb ;)

Verwijderd

Bij Sarge (Debian Testing) is er ook maar 1 (lege) .sem file.

Ook hier wordt er over gesproken... http://translate.google.c...3Den%26lr%3D%26ie%3DUTF-8

[ Voor 69% gewijzigd door Verwijderd op 26-01-2003 10:47 ]


  • Wilke
  • Registratie: December 2000
  • Laatst online: 09:27
.sem = semaphore, een locking-mechanisme (om te zorgen dat maar 1 stukje code tegelijk aan het shared memory zit).
.mem = shared memory file. Apache kan dat idd gebruiken, maar waarom het zo groot is/lijkt weet ik niet precies.

Verwijderd

Heb apache v#
code:
1
2
3
4
5
6
[root@tbls /tmp]# ls -all
total 28
drwxrwxrwx    4 root     root         8192 Jan 26 11:17 ./
drwxrwxrwx   63 root     root         4096 Jan 25 11:24 ../
drwxr-xr-x    3 root     root         4096 Jan 18 17:29 root/
-rw-------    1 apache   apache       5275 Jan 18 15:16 sess_71c95ef9478b50df9c5314d48e7d1faf

maar geen 2e groot bestand.

Volgens mij is dat de sessie die loopt op het moment dat je de apache server een reload/restart geeft 8)7

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

Oeps, ik ontdek net wat...
code:
1
2
3
4
5
6
7
8
9
10
[marcelm@nothing tmp]$ pwd
/tmp
[marcelm@nothing tmp]$ ls -l session_mm_apache0.*
-rw-------    1 root     root     67108864 Jan 26 17:42 session_mm_apache0.mem
-rw-------    1 root     root            0 Jan 26 17:42 session_mm_apache0.sem
[marcelm@nothing tmp]$ ls -sh session_mm_apache0.*
 12K session_mm_apache0.mem     0 session_mm_apache0.sem
[marcelm@nothing tmp]$ du -sh session_mm_apache0.*
12K     session_mm_apache0.mem
0       session_mm_apache0.sem

Die "60+ meg file" neemt de toch wel schokkende hoeveelheid in van 12 KB...

Dit treedt op als in een file een flink stuk na het einde van de file wat wordt weggeschreven. De lengte van de file wordt dan overeenkomstig verhoogd, maar het stuk tussen de oude EOF en de nieuwe weggeschreven data is ongedefinieerd. Omdat die data ongedefineerd is is het ook niet nodig daar blocks aan te verspillen, dus die worden niet opgeslagen.

Die file van apache is dus waarschijnlijk iets van 8KB, met ergens achteraan nog eens 4KB en dan tussenin compleet niks. Als dat 4KB stukje "hoog" genoeg in de file staat dan is de lengte van de file wel 67MB, maar de grootte niet.

Het kan nog steeds heel goed een bug (in libmm of apache) zijn, waardoor naar de verkeerde positie in de file wordt ge-seek()ed, maar de gevolgen zijn iig niet zo ernstig... een paar KB in /tmp kun je wel missen :P

Verwijderd

iemand een SMP machine? zijn daar meerdere .sem en .mem files? (waar staat die 0 in de filename anders voor?)

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 06:05
denk voor meerdere instanties van apache ;)
Pagina: 1