Konfiguracja MPM Apache Prefork

Konfiguracja MPM Apache Prefork

Prefork to domyślny moduł APACHES Multi-Process. Kiedy zaczynasz pracować jako administrator systemu, ogólnie zajmujesz się serwerami o niskim ruchu. Nie musisz wiedzieć o tym, jak Apache obsługuje wiele procesów jednocześnie. Nawet ja nie wiedziałem o tym. Ale po kilku dniach, kiedy zaczniesz pracować z serwerami wysokiego obciążenia i musisz zoptymalizować Apache. W ten sposób ważne jest, aby wiedzieć o modułach wielopustoszniczych w Apache i o tym, jak to działa

Domyślna konfiguracja apache prefork

Poniżej znajduje się domyślna konfiguracja modułu multimprocesowego prefork, jak poniżej dla wersji Apache.

Dla Apache 2.4

Startervers 3 minSpareservers 5 MaxSpareservers 10 MaxRequestworkers 400 MaxConnectionSperchild 0 

Dla Apache 2.2

Startervers 5 minSpareservers 5 MaxSpareservers 10 MaxClients 150 MaxRequestSperchild 0 

Dyrektywy konfiguracji prefork:

1. Startervers: Ta dyrektywa zdefiniowała liczbę procesów serwera dziecięcego do utworzenia w uruchomieniu Apache. Liczba procesów jest dynamicznie zwiększona na podstawie obciążenia serwera, więc nie musisz normalnie zmieniać tej wartości.

2. MinSpareservers: Jest to minimalna liczba bezczynnych procesów dziecięcych działających przez Apache, które zawsze czekają na połączenie przychodzące. Jeśli minimalne procesy bezczynności są mniejsze niż wartość minSpareservers, Apache uruchomi procesy dziecięce, aby utrzymać minimalne zapasowe serwery.

3. MaxSpareservers: Jest to maksymalna liczba procesów, które mogą być w stanie bezczynności. Jeśli w dowolnym momencie procesy bezczynności są więcej niż wartość maksympareservers, proces nadrzędny zabija dodatkowe bezczynne procesy.

4. MaxClients i MaxRequestworkers: To jest najważniejsza dyrektywa prefork. Ta zdefiniowana maksymalna liczba żądań może być obsługiwana przez serwery Apache. Jeśli maksymalna liczba połączeń lub żądań przekracza wartość, wszystkie dodatkowe żądania muszą czekać w kolejce.

Zachowaj tę wartość tak wysoką, jak pozwala na to sprzęt. Zobacz poniższe szczegóły, aby ustawić tę wartość.

A. Znajdź całkowitą liczbę pamięci RAM w twoim systemie.
B. Dowiedz się, ile pamięci RAM jest dostępne dla serwera Apache.
C. Średnia pamięć używana przez pojedynczy proces Apache.

Wartość <= ( Total Memory available for Apache) / ( Memory used by one process )5. MaxRequestSperchild lub MaxConnectionSperchild: Jest to maksymalna liczba żądań może być przetwarzana przez proces dziecka w jego życiu. Na przykład, jeśli ustawisz tę wartość na 100. Każdy nowy proces dziecka będzie serwować do 100 żądań, a następnie zabity przez proces nadrzędny. W tym miejscu Apache rozpoczyna nowe dziecko procesów.

Zalecamy, aby ta wartość była wyższa (co najmniej większa niż 0). Ustawienie tego parametru 0 oznacza, że ​​proces nigdy nie wygasa, który może powodować problem z wyciekiem pamięci i pochłonąć wysoką pamięć.

Kiedy zmieniać startery, minSpareservers i MinSpareservers wytykają wartości:

Nigdy nie musisz zmieniać tych dyrektywy na serwerach o niskim ruchu. Jeśli obsługujesz serwer z tysiącami żądań na minutę, to tylko ty musisz zmienić te wartości. Ale najpierw musisz wiedzieć o częstotliwości generowania nowych procesów w Apache

    • Apache 2.2 może generować jedno procesy na sekundę.
    • Apache 2.4 może generować do 32 procesów na sekundę. Gdy minimalne bezczynne procesy zapasowe są mniejsze niż wartość minSpareservers, proces APACHE START 1 i poczekaj na jedną sekundę, jeśli jest jeszcze mniej, Apache Start 2 procesy i poczekaj sekundę, jeśli jeszcze mniej Apache uruchamia 4 procesy i poczekaj na sekundę, podobnie Apache może uruchomić do 32 zapasowych procesów dziecięcych na sekundę i powtórzył się, aż minimalny proces.
    • Na przykład, jeśli twój serwer działa z Apache 2.2, a następnie Apache może uruchomić tylko jedno zapasowe procesy na sekundę. Oznacza to, że jeśli Twój serwer otrzymuje więcej niż 1 połączenie na sekundę, musisz dostosować wszystkie te parametry, aby zawsze uruchamiać pewne bezczynne procesy. Ale zależy to również od tego, ile czasu zajmuje procesy do wykonania.

      Podobnie, jeśli serwer działa z Apache 2.4, możesz bardzo rzadko zmienić te parametry, ponieważ Apache 2.4 może uruchomić do 32 procesów chili na sekundę.