Please or Zarejestruj się to create posts and topics.

ISPConfig3 na Raspberry Pi 5: Instalacja i Konfiguracja Panelu Hostingowego cz. 4

ISPConfig3 jest panelem hostingowym służącym do zarządzania serwerami poprzez przeglądarkę internetową...

Cały artykuł jest dostępny na blogu : Konfiguracja Ispconfig3

krystian23 has reacted to this post.
krystian23

Witam

Utknąłem przy konfiguracji konta dla swojej witryny internetowej w Panelu Ispconfig 3.

Nie wiem czy ma to jakieś znaczenie ale podaje parametry swojego serwera:

Jest to vps

2xcpu

4GB Ram

40DB dysk ssd

sieć 100mbit

Chodzi mi dokładnie o konfigurację PHP-FPM Process Manager w zakładce Opcje

Standardowo jest Ondemand - tak zostawić czy lepiej zmienić na jakąś inną opcję ? czy wpisane tam standardowo parametry są odpowiednie ? czy lepiej je jakoś zmodyfikować ?

Po za tym świetny materiał odnośnie własnego serwera internetowego, Pozdrawiam.

Dziękuję za miłe słowa 🙂

Odnośnie twojego pytania to:

Wszystko zeleży jakie strony hostujesz, ile tych stron oraz jaki masz ruch na tych stronach. Innym czynnikiem  również ważnym jest to, czy serwer stoi za jakimś proxy ? np. serwerem cdn.

Po kolei

Ondemand - Uruchamia procesy na żądanie. Z tego powodu sprawdzi się na maszynach gdzie hostujesz kilka/kilkanaście stron z bardzo dużym ruchem o różnym natężeniu w różnych porach dnia/miesiąca/roku, gdzie wąskim gardłem jest ilość pamięci RAM. Oszczędza RAM.

Static - Uruchamia wszystkie zdefiniowane procesy wraz ze startem serwera. przez co strona otwiera się trochę szybciej, gdyż serwer nie traci czasu na otwieranie potrzebnych procesów php-fpm i ich zamykanie. Ta opcja sprawdzi się wszędzie tam, gdzie na serwerze działa jedna, maksymalnie dwie strony o w miarę stałym natężeniu ruchu (np. jakaś strona b2b, panel hostingowy itp), gdzie wąskim gardłem jest obciążenie cpu. W innym przypadku będzie ciężko zapanować nad optymalnym i bezproblemowym działaniem stron.

Dynamic - Z tej opcji powinieneś korzystać prawie zawsze. Jest to coś pośredniego między ondemand a static, gdyż pozwala na stałe otwarcie podstawowej ilości procesów php-fpm, po których przekroczeniu będą się one otwierały już dynamicznie, w miarę jak będą wymagane. Opcja zalecana gdy na serwerze działa wiele różnych stron, o różnym natężeniu ruchu, także gdy mają one różnych właścicieli.

Parametry będziesz musiał dostosować do własnego serwera i stron. Podam przykład dla ostatniej opcji Dynamic.

PHP-FPM Process Manager: Dynamic

PHP-FPM pm.max_children: 50

PHP-FPM pm.start_servers: 5

PHP-FPM pm.min_spare_servers: 2

PHP-FPM pm.max_spare_servers: 5

PHP-FPM pm.max_requests: 2000

  • PHP-FPM Process Manager: Dynamic
    Umożliwia dynamiczne zarządzanie procesami. PHP-FPM automatycznie dostosowuje liczbę procesów roboczych w zależności od obciążenia. To oznacza, że w zależności od liczby żądań, PHP-FPM może zwiększać lub zmniejszać liczbę aktywnych procesów.
  • PHP-FPM pm.max_children
    To maksymalna liczba procesów PHP-FPM, które mogą działać jednocześnie. Jeśli liczba żądań przekroczy tę wartość, nowe żądania będą musiały czekać, aż jeden z istniejących procesów zakończy pracę.
  • PHP-FPM pm.start_servers
    Określa liczbę procesów roboczych, które powinny być uruchamiane przy starcie PHP-FPM. Dobrze jest ustawić tę wartość na podstawie przewidywanego obciążenia serwera. Proponuję ją ustawić na średnią ilość osób jaka odwiedza naszą stronę w ciągu 1 minuty
  • PHP-FPM pm.min_spare_servers
    To minimalna liczba "wolnych" procesów roboczych, które PHP-FPM powinien utrzymywać w gotowości. Jeśli liczba wolnych procesów spadnie poniżej tej wartości, PHP-FPM utworzy nowe procesy, aby zwiększyć ich liczbę.
  • PHP-FPM pm.max_spare_servers
    Określa maksymalną liczbę "wolnych" procesów roboczych. Jeśli liczba wolnych procesów przekroczy tę wartość, PHP-FPM zacznie kończyć nadmiarowe procesy, aby zaoszczędzić zasoby.
  • PHP-FPM pm.max_requests
    Ustala maksymalną liczbę żądań, które każdy proces PHP-FPM może obsłużyć, zanim zostanie zakończony i ponownie uruchomiony. Jest to przydatne w kontekście zarządzania pamięcią, ponieważ może pomóc w zapobieganiu wyciekom pamięci.

Jeśli wszystkie strony na serwerze działają za serwerem proxy np. Cloudflare, można się pokusić o ustawienie opcji Static jako że cała komunikacja odbywa się pomiędzy serwerem, a proxy i cały ruch jest łatwiejszy doi przewidzenia. To jest jednak do przetestowania. Osobiście jednak i takiej zostałbym przy opcji Dynamic z odpowiednio wysoką ilością procesów startowych, która nie za wiele zmienia w takiej konfiguracji w stosunku do Static.

u mnie średnia ilość osób w ciągu minuty (z czego większość to boty pewnie) wynosi około 15-20. Serwer stoi za cloudflare (plan free bez żadnych płatnych dodatkowych opcji). Serwer stawiałem według samouczka na blogu. Jedyną róznicą jest serwer nginx, nie apache.

Jeśli ustawię parametry jak poniżej, będzie ok ?

PHP-FPM Process Manager: Dynamic

PHP-FPM pm.max_children: 50

PHP-FPM pm.start_servers: 15

PHP-FPM pm.min_spare_servers: 5

PHP-FPM pm.max_spare_servers: 15

PHP-FPM pm.max_requests: 2000

Może być jako konfiguracja wyjściowa. Obserwuj jak zachowuje się serwer i w razie potrzeby koryguj parametry w górę lub w dół aż osiągniesz zadowalający efekt. Zwróć tylko uwagę na to, że w niektórych okresach ruch może wzrosnąć nawet kilkukrotnie np. w święta.  Warto wziąć to pod uwagę i nie żyłować za mocno tych ustawień.

a czy jak ustawię Dynamic dla jednej strony internetowej, a Ondemand dla innej, to nie będzie z tym żadnych problemów ?

Nie będzie problemów.