Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.


Członek DUG



Witam,
Chcemy zaprząc serwer do wyświetlania reklam. Musi to być szybki i wydajny.
Zaczynamy próbować z Ngnix, ale po puszczeniu kilkuset reklam mam taki błąd w error logu
7182#0: accept() failed (24: Too many open files) while accepting new connection on 0.0.0.0:80
Dokumentacji jeszcze się nie doszukałem Macie może pomysła gdzie to się zwiększa ?
Dzięki
Redelek
Offline




Pan inż. Cyc





A to czasem pamieci dla programy nie zapchaliscie lub nawet pamieci operacyjnej? :]
Offline


Członek DUG



qluk napisał(-a):
A to czasem pamieci dla programy nie zapchaliscie lub nawet pamieci operacyjnej? :]
Nie serwerek działał poprawnie nie było problemu , miejsce na dysku było ponad 130GB.
Ramu ma 8GB i nawet nie zaczął swap-ować :)
Problem jest w tym że chyba sam serwer ma ograniczoną ilość zapytań ale jak to zwiększyć na razie mam ustawine tak
user www-data;
worker_processes 5;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 2000;
}wydaje mi się że worker_connections 2000; lub worker_processes 5; jest ustawiony za mało. Serwer transmituje reklamy internetowe więc ma kilkaset jak nie kilka tysięcy zapytań na sekundę.
Może coś można zmienić
Redelek
Offline




Pan inż. Cyc





Nie uzywalem jeszcze ale na logike z tego co podales to:
worker_processes okresla ileprocesow ma byc odpalonych
worker_connections ilosc polaczen (prawdopodobnie na proces)
Zwieksz wiec z 5 do 10 sprawdź jak wyglada drzewko procesow odpalonych (przed zmiana i po zmianie). Jesli to tak dziala to ilosci polaczen bardzo bym nie ruszal bo mozliwe ze to ograniczenie jest w samym algorytmie wiec sadze ze maks x2 podniesc ilosc polaczen. A potem regulowac iloscia procesow, ale nie wiem czy napewno tak to dziala.
Offline


Członek DUG



qluk napisał(-a):
Nie uzywalem jeszcze ale na logike z tego co podales to:
worker_processes okresla ileprocesow ma byc odpalonych
worker_connections ilosc polaczen (prawdopodobnie na proces)
Zwieksz wiec z 5 do 10 sprawdź jak wyglada drzewko procesow odpalonych (przed zmiana i po zmianie). Jesli to tak dziala to ilosci polaczen bardzo bym nie ruszal bo mozliwe ze to ograniczenie jest w samym algorytmie wiec sadze ze maks x2 podniesc ilosc polaczen. A potem regulowac iloscia procesow, ale nie wiem czy napewno tak to dziala.
Oki to powalczę myślałem że ktoś tego już używał. Ale jak dojdę do wprawy to coś opiszę:)
Dzięki
Redelek
Offline


Członek DUG



Hej podzielę się rozwiązaniem.
Okazało się że to nie Nginx zwracał błąd tylko system Debian.
Debian ma ustawione domyślnie 1024 pliki na raz , a ja dawałem mu ponad 5000 tyś plików:).
Nie wiem jak to na stałe ustawić ale ja poradziłem sobie tak i na razie chodzi.
Wyświetlenie ustawień
ulimit -a
Zwiększenie limitu otwieranych plików
ulimit -n 203452
Do tego dorobiłem skrypt i jak na razie śmiga wszystko
Pozdrawiam
Redelek
Offline




Pan inż. Cyc





No to musisz zobaczyc czy to nie jest czasem ustawiane podczas kompilacji jajka, jesli tak to nie musisz dopisywac do skryptow startowych :)
Offline