Re: Th: co do jasnej się dzieje a apachem?

Jacek Osiecki joshua w hybrid.pl
Wto, 8 Gru 2009, 09:41:55 CET


On Tue, 8 Dec 2009, Arkadiusz Miskiewicz wrote:

> On Tuesday 08 of December 2009, Jacek Osiecki wrote:
>> Ostatnio narzekałem na problemy z /etc/init.d/apache restart.
>> Ktoś wspomniał by spróbować upgrade'u apr, niby pomogło ale potem się
>> okazało że jednak był to tylko przypadek.
>>
>> Natomiast teraz jest jakiś KOSZMAR
>>
>> Po graceful reload mam setki procesów httpd.prefork <defunct>, niektóre
>>  strony działają inne nie, w logach coś się pojawia albo nie...

> Co masz w:
>
> ps aux|grep httpd

1848 procesów /usr/sbin/httpd.prefork, w tym 1 którego właścicielem jest root
i reszta będących jego potomkami.

> netstat -nlp|grep :80

tcp  0   0 172.16.0.1:80       0.0.0.0:*    LISTEN      557/httpd.prefork 
tcp  0   0 188.40.8.229:80     0.0.0.0:*    LISTEN      557/httpd.prefork 
tcp  0   0 188.40.8.227:80     0.0.0.0:*    LISTEN      557/httpd.prefork 
tcp  0   0 188.40.8.228:80     0.0.0.0:*    LISTEN      557/httpd.prefork 
tcp  0   0 78.46.33.13:80      0.0.0.0:*    LISTEN      557/httpd.prefork 
tcp  0   0 127.0.0.1:80        0.0.0.0:*    LISTEN      557/httpd.prefork

Teraz tak:

Jeśli zrobię /etc/init.d/httpd start, a potem od razu /etc/init.d/httpd stop
- to jest OK, wyłącza się. Ale jeśli zrobię /etc/init.d/httpd reload,
to natychmiast mam kilkaset procesów typu:

http     20500 19994  0 09:28 ?        00:00:00 [httpd.prefork] <defunct>

Jak wtedy zrobię /etc/init.d/httpd stop, to mimo tego ps -ef |grep httpd
pokazuje kilkaset procesów httpd.prefork i drugie tyle [httpd.prefork] <defunct>

> ps. update apra powinien zlikwidować problem dziedziczenia socketów serwera
> przez dzieci - to była główna przyczyna tego typu akcji. Evil user via phpa
> odpalał skrypt perlowy, restart apacza skryptu nie ubijał, a że skrypt
> dziedziczył socketa to i port nadal był zajęty.

Z cgi to jest tylko smokeping - ale on byłby ewentualnie problemem tylko w
momencie gdybym uruchomił restart apache'a gdy właśnie generuje wykresy
dla usera oglądającego stronkę smokepinga, a że jedynym takim userem
jestem ja to raczej nie to.

Na początku miałem pozostałości moich eksperymentów z fastcgi, fcgid
itp. - ale że wywaliłem na pysk wszystkie suexec/f*cgi to raczej nic z
tych rzeczy. Na serwerze jest jeszcze APC, ale ono nie miesza się
apache'owi w porty.

Jakieś dalsze pomysły? Bo generalnie teraz wygląda, jakby dało się
zrobić wyłącznie nie-graceful restart, co mi bardzo nie odpowiada :(

Pozdrawiam,
-- 
Jacek Osiecki joshua w ceti.pl GG:3828944
I don't want something I need. I want something I want.


Więcej informacji o liście dyskusyjnej pld-users-pl