php failed to open stream: Too many open files

Marcin Kamiński maxiu w best.net.pl
Pią, 21 Sie 2009, 20:08:05 CEST


Andrzej Mateja pisze:
> Miesiu pisze:
>> Wszystko jedno - próbowałem nawet wywoływać skrypt przez
>>    exec("php -f skrypt parametry");
>> lub
>>    system("php -f skrypt parametry");
>> ale
>>    lsof -p proces | wc -l
>> ciagle pokazuje, że licznik rośnie i jak dojdzie do 1024 to się wywala.
>>
>> Nie bardzo chcę zmieniać limit z 1024 na więcej - bo w wielu miejscach 
>> odradzają.
>>
>> Co mogę mieć źle, że php nie zamyka plików po sobie?
>>
> 
> Z chęcią Ci pomogę jak tylko będę umiał, ale kolego - zasysanie skryptów 
> PHP czy przez Apache, czy przez te wywołania, które opisałeś, dadzą 
> jeden i ten sam efekt. Więc problem leży przede wszystkim w tym jak 
> Twoje skrypty zostały zaprojektowane i napisane. No i musisz podać 
> trochę więcej szczegółów :). Jeśli się mylę to proszę mnie poprawić.

Witam
Niekoniecznie wina leży po stronie PHPów. Winny może być Apache.
Jeśli Apache ma wiele wirtualek i do każdej osobne pliki z logami, to
trzyma je cały czas otwarte. Niestety uruchamiając PHPa przez mod_php do
dyspozycji zostaje mniej deskryptorów.
Z tego powodu przy dużej ilości wirtualek lepiej logować do jednego
pliku i go potem rozdzielać. Lub przejść na fcgi.

Pozdrawiam

-- 
- Marcin Kaminski --------------------------------- maxiu -
--- software architect ------------------------ Bestmax ---
----- e-commerce expert -------------------- best.net -----
------- http://karnisz.net/ --- http://best.net.pl/ -------


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