![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.05.2005 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Mam postawiony dość popularny serwis na serwerze dedykowanym - Solaris, Apache, PHP i MySQL. Mój problem polega na tym, że czasami, nie zależnie od pory dnia, zużycie pamięci przez Apache'a drastycznie wzrasta, nawet do 90%. A z reguły, przez zdecydowana większość czasu użycie pamięci oscyluje wokoło 20%. To duże zużycie zazwyczaj nie trwa długo - do pół godziny. Po czym powoli spada, i tak po 2 minutach jest znowu 20%. Sa to wszystkie procesy Apache-a: /opt/local/sbin/httpd -k start I jest ich kilkadziesiąt. Zużycie procesora takiego jednego procesu jest znikome, poniżej 0,5%. Logi puste. O co może tutaj chodzić? Dlaczego czasami zużycie pamięci tak bardzo czasami wzrasta? Co się stanie jak użycie pamięci dojdzie do 100%? Strona przestanie działać? I jedno istotne pytanie - czy taki pojedyńczy proces Apache-a, który zajmuje bardzo dużo pamięci, mogę zabić, aby tej pamięci zwolnić? Czy Apache się po czymś takim nie wysypie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 18 Dołączył: 4.09.2010 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po czym powoli spada, i tak po 2 minutach jest znowu 20%. Sa to wszystkie procesy Apache-a: /opt/local/sbin/httpd -k start I jest ich kilkadziesiąt. Zużycie procesora takiego jednego procesu jest znikome, poniżej 0,5%. Logi puste. "jakiś" ślad musi zostać. procesy same się nie mnożą, tylko są to jakieś requesty. zobacz access i error logi serwera www. jeśli site jest podpięty pod bazę, to slow logi bazy. jeśli masz dostęp, to sprawdzaj statystyki rrd. pomyśl o całości serwera, może "obok" wysyłasz duże bazy newsletterowe, robią się backupy, jakieś cronowe zadania? Cytat O co może tutaj chodzić? Dlaczego czasami zużycie pamięci tak bardzo czasami wzrasta? Co się stanie jak użycie pamięci dojdzie do 100%? Strona przestanie działać? zacznie zrzucać pamięć do swapa, czyli tak jak w desktopie - dysk mieli w nieskończoność, a komp zdycha;) Cytat I jedno istotne pytanie - czy taki pojedyńczy proces Apache-a, który zajmuje bardzo dużo pamięci, mogę zabić, aby tej pamięci zwolnić? Czy Apache się po czymś takim nie wysypie? leczyć przyczyny a nie zabijać pacjenta. a jak to dedyk to nawet nie znając przyczyn, możesz wykonać parę zmian, które na pewno nie zaszkodzą a mogą diametralnie pomóc. przykładowo migracja apache->nginx |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 2 Dołączył: 9.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisał kolega wyżej:
- logi apache'a - musi w nich coś być - jeśli masz Apache Prefork, to w chwili, gdy procesy "workerów" nie będą wydalać z serwowaniem strony, apache zacznie wcinać RAM, aż w koncu zacznie swappować co skończy się "zdechnięciem" serwera (zeżre cały ram, cały swap i dalej będzie głodny - możesz mieć problem połączyć się via SSH, bo nie będzie ramu na obsłużenie sesji...) Apache Worker (threaded) jest podobno szybszy i mniej pamięciożerny, ale nie wszystkie aplikacje dobrze na nim działają. nginx, light....możesz mieć problem z uruchomieniem konkretnej aplikacji "out of the box", ale ludzie sobie chwalą. Poczytaj to: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html i ustaw MaxClients oraz opcjonalnie MaxRequestsPerChild (to jest alternatywa dla tego Twojego "czy mogę zabić proces" - po serwnięciu MaxRequestsPerChild requestów proces sam się zabije (master go wykończy) i na jego miejsce zostanie uruchomiony nowy - trzeba uważać, bo uruchamianie workera zajmuje przeważnie więcej czasu niż obsługa requestu, więc ustawianie tego limitu bardzo nisko, może spowodować spadek wydajności....natomiast jeśli zauważysz, że procesy apache'a "puchną", tzn. uruchamiasz i mają np. 30MB, a po paru godzinach mają już 120MB - to ten parametr może pomóc "doraźnie/na szybko" ograniczyć wycieki pamięci - lepiej poszukać w aplikacji, ale wiadomo jak to czasem bywa...). No i znów - jak pisał kolega uupah5 - jeśli masz dostęp do jakichś statsów (najlepiej z serwera, ale od biedy Google Analytics też jakieś światło rzuci) - sprawdź, może o danej porze masz naturalny peak. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:23 |