find /var/lib/php5/ ..... Hvad er det og hvad gør jeg?
Hey guys,
Er der nogen der kan præcist fortælle mig hvad dette gør? Det ligger og hiver en masse IO på mine diske
Kører nogen gange i flere processer..
Jeg har snakket med en, som mente det måske (som han husker) er nogle gamle php sessions den leder efter og vil slette?. Men den sluger virkelig meget IO.
Så, er der nogen der ved præcist hvad det er den laver og kan jeg gøre noget ved det?
Kører med:
Debian GNU/Linux 6.0 \n \l
2.6.32-5-amd64
Apache/2.2.16 (Debian)
PHP:
PHP 5.3.3-7+squeeze7 with Suhosin-Patch (cli) (built: Feb 2 2012 17:32:55)
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Har forsøgt at google, men kunne ikke finde noget.
Har haft det samme issue på en anden box kørende det samme.
pft.
/Goerred
Er der nogen der kan præcist fortælle mig hvad dette gør? Det ligger og hiver en masse IO på mine diske
find /var/lib/php5/ -type f -cmin +24 -delete
Kører nogen gange i flere processer..
Jeg har snakket med en, som mente det måske (som han husker) er nogle gamle php sessions den leder efter og vil slette?. Men den sluger virkelig meget IO.
Så, er der nogen der ved præcist hvad det er den laver og kan jeg gøre noget ved det?
Kører med:
Debian GNU/Linux 6.0 \n \l
2.6.32-5-amd64
Apache/2.2.16 (Debian)
PHP:
PHP 5.3.3-7+squeeze7 with Suhosin-Patch (cli) (built: Feb 2 2012 17:32:55)
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Har forsøgt at google, men kunne ikke finde noget.
Har haft det samme issue på en anden box kørende det samme.
pft.
/Goerred
Kommentarer7
Den sletter rigtigt nok
Det gør den ved at lede i /var/lib/php5 efter filer der er oprettet for mere end 24 dage siden og slette dem.
Hvis den bruger meget IO, så har du nok rigtigt mange filer i mappen eller har haft det tidligere, hvor selve mappen så er vokset sig for stor.
Den bør ikke kører mere end en af gangen.
Hvis du kører
"ls -lh /var/lib"
hvor stor siger den så php5 mappen er?
Tak for svaret.
Okay, good
Okay, good to know.
Mappen er 152MB nu.. Er det meget? Hvad kan der gøres - skal den bare tømmes eller?
drwx-wx-wt 2 root root 152M Mar 3 15:56 php5/
#2
Det er ekstremt meget.
De
Det er ekstremt meget.
De 152MB er størrelsen på selve mappen, ikke filerne der ligger i den.
Hver gang "find" skal finde filer i mappen skal systemet først læse de 152MB fra disken, hvilket er grunden til det er så IO-tung.
Den eneste måde du kommer uden om dette problem er at slette mappen og oprette den igen med de rigtige rettigheder.
Du kan gøre det ved:
mv /var/lib/php5 /var/lib/php5.old
mkdir /var/lib/php5
rsync -avPH /var/lib/php5.old/ /var/lib/php5/
Det omdøber først den gamle mappe til /var/lib/php5.old og opretter en ny /var/lib/php5, derefter kopieres indholdet og rettighederne fra den gamle mappe til den nye (husk de afsluttende '/' i de to stier).
Tusinde tak for det hurtige,
Jeg har nu gjort som du beskrev, det tog lidt tid men nu kører det.
Folderen er nu 6 mb i stedet
drwx-wx-wt 2 root root 6.1M Mar 3 16:23 php5
drwx-wx-wt 2 root root 152M Mar 3 16:20 php5.old
Efter det er gjort ser det umiddelbart ud som om at mit IO er faldet rigtig meget og cpu wait'en er nærmest helt væk.
TAK :-)
Hvad er det, der gør at den er blevet så stor og kan jeg forhindre at det sker igen?
Hvad er det, der gør at
Det sker fordi der kommer for mange filer i mappen.
Når det kommer for mange filer i en mappe, så er der ikke længere plads i mappen til at referere til filerne og derfor vokser den i størrelse. Desværre kan den aldrig blive mindre igen, hvilket er noget skidt for IO hvis man vil liste indholdet i mappen.
Der er flere ting man kan gøre ved det.
- Du kan oprette færre sessioner i PHP.
- Du kan også flytte dine sessions til en database, dette kræver at du har mulighed for at ændre koden til dit website, da du skal skifte session håndteringen ud med din egen kode.
- Du kan lade dine sessions leve i kortere tid, så der ikke kommer så mange af dem, samtidigt skal du lade cronjobbet køre oftere, standard er hvert 30. min i debian. Du ændre det i /etc/cron.d/php5
- Du kan også sørge for at PHP selv sletter sine sessioner, dette kan dog lede til langsommere requests, når garbage collect kører. Kig på session.gc_probability og session.gc_divisor i php.ini
Mange tak for svaret! Jeg
Tak!
Husk at lukke taggene ellers