[linux] Re: ls -l apache0.mem 64MB, du zegt 4.0k ?

J. mailing-lists op xs4all.nl
Zo Mrt 13 00:13:08 CET 2005


On Sat, 12 Mar 2005, Daniel C. von Asmuth wrote:
> Aldus schreef J. op Sat, Mar 12, 2005 at 10:36:03PM +0100:
> > Ik loop net ff /tmp/ in en zie dat het volgende:
> > ~: ls -l
> > total 4
> > -rw-------    1 root     root     67108864 Mar 12 13:32 session_mm_apache0.mem
> > -rw-------    1 root     root            0 Mar 12 13:32 session_mm_apache0.sem
> > 
> > 64MB voor een webserver die bijna niets te doen heeft ? Ff verder kijken
> 
> Apache is een vrij vet programma, dus dat is niet verbazend en ik zie geen 
> verband met de vraag of Apache bij u 1000 hits per jaar of per seconde serveert.

Ehm, om 1000 hits per seconde te verwerken zal toch extra inspanning 
geleverd moeten worden door de software ? Of bedoel je wat anders ?

> > met du , die zegt dat het bestand maar 4k groot is. Natuurlijk zit er
> > verschil in geraporteerde groote's tussen du en ls -l , dat verschil
> > begrijp ik wel, maar 64MB ?
> 
> Dat is in Unix niets bijzonders. Een programma maakt een file aan, doet een
> seek en schrijft een paar bytes vlak voor de 64 MB grens. De rest blijft leeg
> en neemt ook geen schijfruimte in.

Mischien begrijp ik gewoon niet wat je bedoelt, maar: 
dit lijkt mij wel bijzonder .

Namelijk : ls geeft st_size terug vanuit 1 van de stat() functie's. Dat
betekent dat dit bestand niet de juiste groote in size bytes weergeeft .

Hier de stat():
~: ~/bin/fstat /tmp/session_mm_apache0.mem
filename: /tmp/session_mm_apache0.mem
 device: 769
 inode: 98400
 protection: 100600
 number of hard links: 1
 user ID of owner: 0
 group ID of owner: 0
 device type (if inode device): 0
 total size, in bytes: 67108864
 blocksize for filesystem I/O: 4096
 number of blocks allocated: 8

Er zijn maar 8 blocks voor gereserveerd terwijl de bestandsgroote > 60MB is.. 
Of ..... Het bestand zou nog open moeten zijn en gelockt door een programma, 
apache in dit geval. Maar daar zou lsof uitsluitsel over moeten kunnen geven,

~: lsof | grep apache
apache     555   root    3u   REG        3,1 67108864      98310
/tmp/session_mm_apache0.mem (deleted)
 apache     555   root    4u   REG        3,1        0      98311
 /tmp/session_mm_apache0.sem (deleted)
 apache     555   root    5u   REG        3,1 67108864      98400
 /tmp/session_mm_apache0.mem
 apache     555   root    6u   REG        3,1        0      98404
 /tmp/session_mm_apache0.sem
 ....... etc...

Het bestand is verwijderd ? Maar staat er nog steeds.

> Het lijkt op een stukje shared memory dat in een file is ge-mmapt. Bij
> mij maakt die indiaan alleen files van 0 bytes aan.......

Juist je zegt 't zelf al; daarom mijn vraag: Is dit normaal voor apache
? 

Antwoord: Bij jou dus niet . ;-)

B.t.w.
Mijn apache versie is Apache/1.3.26

> Met vriendenlijke groet,
> Daniel von Asmuth

J.




More information about the Linux mailing list