Brak pamięci dla Apache
Mam VPS z 768 MB pamięci RAM i procesorem 1,13 GHz. Mam serwis randkowy php/mysql, wydajność jest doskonała, a obciążenie serwera jest ogólnie bardzo niskie.
Czasami reklamuję się na Facebooku iw godzinach szczytu mogę uzyskać 100-150 kliknięć w kilka sekund - prowadzi to do braku pamięci na serwerze:
Nie można przydzielić pamięci: nie można utworzyć procesu potomnego:/opt/suphp/sbin/suphp ....
Wszyscy użytkownicy otrzymują błąd 500 stron.
Zastanawiam się tylko, czy to brzmi rozsądnie, czy nie - 100-150 nie brzmi dla mnie jak liczba, która powinna spowodować, że Apache zabraknie pamięci.
Wszelkie porady/wskazówki dotyczące diagnozowania problemu są mile widziane.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
4 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jeśli obciążenie staje się naprawdę duże, należy również przyjrzeć się szybkości przetwarzania żądań (szybsze ładowanie poprawia ogólny rozmiar * czas pamięci wymagany dla jednego żądania)
Być może, jeśli Twoja witryna w ogóle nie obciąża procesora i chcesz ekstremalnego Req/S, wypróbuj inny serwer WWW (taki jak nginx lub lighttpd), który zachowuje się lepiej w takich sytuacjach.
Anonimowy użytkownik
Potwierdzenie od:
Następnie uruchomienie suphp na dedykowanej maszynie za pośrednictwem CGI jest zwykle bardzo głupim pomysłem - użyj mod_php lub fastCGI.
Przyspieszając system, nie tylko poprawisz jakość obsługi klienta, ale także zmniejszysz zużycie pamięci. Więc....
Zainstaluj pamięć podręczną kodu operacji PHP, jeśli jeszcze jej nie masz.
Zacznij zgłębiać wydajność swojego systemu - zmień konfigurację httpd, aby rozpocząć rejestrację% D, i spójrz na iloczyn częstotliwości adresów URL i% D, aby określić, które adresy URL powodują najwięcej problemów.
Niższy próg powolnego logowania zapytań w MySQL - użyj tego
parser
http://www.retards.org/projects/mysql/
lub podobnie do analizy danych (pamiętaj, że ponownie należy ustalać priorytety na podstawie iloczynu częstotliwości i czasu wykonania).
Dodaj automatyczne dołączanie, aby włączyć kompresję bufora wyjściowego gz.
Rozpocznij rejestrowanie liczby uruchomionych procesów httpd i porównaj to z mniejszą liczbą buforów/buforów dostępnych w „wolnym” - mapuj i wykreśl dane, aby określić, ile procesów httpd możesz rozsądnie uruchomić - a następnie zmodyfikuj swój httpd.conf, aby dostosować się do tego limitu . Zauważ, że we/wy dysku
fenomenalny
powolny oznacza, że do buforowania wymagana jest wystarczająca ilość pamięci.
Zacznij sprawdzać, czy Twój serwer zapewnia dobre informacje o buforowaniu treści - lub czy klienci i serwery proxy powinni wracać po rzeczy, które się nie zmieniły (mod_expires, mod_headers)
Ale czasami potrzebujesz więcej sprzętu. Poleciłbym pomyśleć o drugim serwerze, a nie tylko o aktualizowaniu tego, który masz - dodanie systemu DNS z działaniem okrężnym jest trywialne - a otrzymasz dodatkową korzyść w postaci lepszej dostępności (po ustaleniu, jak radzić sobie z replikacją bazy danych).
Anonimowy użytkownik
Potwierdzenie od:
Jeśli chcesz zatrzymać stan „poza błędem”, możesz skonfigurować
Parametr konfiguracyjny Apache do odpowiedniego poziomu. Aby uzyskać oszacowanie pamięci dla każdej instancji Apache, przyjrzyj się
wydrukuj i odejmij kolumny RES i SHR wszystkich poleceń httpd. Pamiętaj, aby odjąć całą pamięć wymaganą przez MySQL i resztę systemu. Zwróć uwagę, że możesz uzyskać stosunkowo niewielką liczbę MaxClients na tym komputerze (30-50).
Pozostałe odpowiedzi stanowią dobre podsumowanie tego, co możesz zrobić, aby zwiększyć liczbę jednoczesnych żądań, które możesz obsłużyć. Należy pamiętać, że w tak niskim systemie może być trudne, choć niekoniecznie niemożliwe, dopasowanie Apache/PHP/MySQL plus lighttpd/nginx/memcached/caching. To, jak łatwe lub trudne, będzie zależeć od aplikacji i docelowej wydajności. Rozważ przejście na większy serwer ... o wiele łatwiej będzie ci zebrać wszystko, czego potrzebujesz do 2 lub 4 GB.
Anonimowy użytkownik
Potwierdzenie od:
Wysoka skalowalność
http://highscalability.com/
na przykład blog obejmuje większość tego obszaru. Mam nadzieję że to pomoże!