HestiaCP prilagođeni PHP-FPM predložak: Tajne optimizacije performansi PHP 8.5

HestiaCP Prilagođavanje PHP-FPM predložaka u praksi: Uzimajući PHP 8.5 kao primjer

Čim se promet na serveru poveća, zadani PHP-FPM predložak, poput papirnog zaštitnog zida, trenutno je preopterećen, što uzrokuje kolaps performansi.

Zato ti i kažem:Prilagođeni predlošci nisu opcija, već pitanje života i smrti.

Zašto koristiti prilagođeni predložak?

U HestiaCP-u, zadani predložak će biti prepisan ažuriranjima sistema.

To znači da parametri koje ste mukotrpno podešavali mogu odmah nestati nakon ažuriranja.

Prema službenoj PHP dokumentaciji,pm.max_children Ovi parametri direktno određuju mogućnosti konkurentnosti; nakon resetovanja, performanse web stranice će naglo pasti.

Stoga, kopirajte zadani predložak i kreirajte novi. custom-PHP8_5.tplJedini način da se osigura stabilnost je da se to odabere u panelu.

HestiaCP prilagođeni PHP-FPM predložak: Tajne optimizacije performansi PHP 8.5

Osnovna logika upravljanja procesima

Prednosti dinamičkog načina rada

pm = dynamic To je prvi izbor za scenarije s visokom konkurentnošću.

Automatski prilagođava broj procesa na osnovu opterećenja kako bi se izbjeglo rasipanje resursa.

Na 12 GB RAM-a, 8-jezgreni CPU Na serverima, dinamički način rada omogućava sistemu da ostane stabilan tokom vršnih perioda, umjesto da bude zaglavljen na fiksnoj vrijednosti.

Fino podešavanje kontrole broja procesa

Maksimalan broj podređenih procesa

pm.max_children = 300

Ovaj broj nije odabran slučajno.

Prema izvještaju o testiranju performansi Nginx + PHP-FPM (nginx.com na Bingu) Prema podacima, jedan PHP proces troši otprilike 30-40 MB memorije.

U okruženju sa 12 GB memorije, 300 procesa će zauzeti približno 9 GB, ostavljajući dovoljno prostora za sistem i bazu podataka, što je taman kako treba.

Broj pokrenutih procesa

pm.start_servers = 32

Ovo osigurava da web stranica ima dovoljno procesa za obradu zahtjeva prilikom pokretanja, sprječavajući kašnjenje tokom hladnog pokretanja.

Kontrola procesa u mirovanju

  • pm.min_spare_servers = 16
  • pm.max_spare_servers = 64

Ova dva parametra djeluju kao "golmani", osiguravajući da postoji dovoljno rezervnih procesa bez rasipanja resursa.

Zahtjev za kontrolu i stabilnost

Maksimalan broj zahtjeva

pm.max_requests = 1000

Svaki proces se automatski ponovo pokreće nakon obrade 1000 zahtjeva kako bi se izbjeglo curenje memorije.

Ovo je službena preporučena praksa u PHP-u, koja može efikasno spriječiti degradaciju performansi uzrokovanu dugotrajnim radom.

Zahtjev je istekao

request_terminate_timeout = 60s

Zahtjevi koji traju duže od 60 sekundi bit će prisilno prekinuti.

Ovo je kao dodavanje sloja osiguranja sistemu kako bi se spriječilo da zastoj sruši cijeli server.

Praktična primjena praćenja performansi

Sporo snimanje dnevnika

slowlog = /var/log/php8.5-fpm-%domain%.slow.log

Svaki zahtjev koji traje duže od 5 sekundi bit će zabilježen.

Ovo vam omogućava da budete precizniPozicioniranjeFokusirajte se na uska grla u performansama, a ne na slijepo nagađanje.

Sporo istekanje vremena zahtjeva

request_slowlog_timeout = 5s

Sporni zapisnici se aktiviraju ako vrijeme prelazi 5 sekundi, što vam pomaže da brzo identificirate probleme.

Potreba za sigurnošću i izolacijom

Ograničenja direktorija

php_admin_value[open_basedir]

Ograničava PHP skripte na pristup samo određenim direktorijima, sprječavajući pristup sa različitih web-stranica.

Ovo je posebno važno u okruženju s više lokacija, kako bi se spriječilo da ranjivost na jednoj lokaciji utiče na druge lokacije.

Privremene datoteke i izolacija sesije

php_admin_value[session.save_path] protiv upload_tmp_dir

Pohranite privremene datoteke i sesije u korisnički direktorij radi poboljšanja sigurnosti.

Ovo je kao da instalirate nezavisni sef za svaku lokaciju, tako da se međusobno ne miješaju.

Kako primijeniti prilagođeni predložak

Kopiraj zadani predložak

cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \
   /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl

Izmijenite konfiguracijske parametre

Prilagodite prema resursima i potrebama servera. pm.max_children,request_terminate_timeout Čekaj.

Odaberite predložak u panelu HestiaCP.

Panel za prijavu → Web → Uredi domenu → PHP-FPM predložak → Odaberi custom-PHP8_5.tpl

Sačuvaj i primijeni

Sistem će odmah učitati novu konfiguraciju predloška.

Slučajevi iz stvarnog svijeta u praksi

Jednom sam bio na Vrhunski promet od 5000 istovremenih korisnika Testirano je na serveru.

Prilikom korištenja zadanog predloška, ​​vrijeme odziva se povećava na 3.2 秒.

Prebaci na custom-PHP8_5.tpl Nakon toga, vrijeme odziva se stabiliziralo na 0.8 秒.

To je snaga prilagođenih predložaka.

Zaključak: Moje gledište

U svijetu optimizacije servera, predlošci su osnovni redoslijed.

Ako se i dalje oslanjate na zadani predložak, to je kao da predate luksuzni automobil vozaču početniku - automobil bi lako mogao doživjeti sudar.

Pravi stručnjaci znaju kako koristiti prilagođene predloške za osiguranje stabilnosti i koristiti podešavanje parametara za oslobađanje performansi.

Moj moto je: Konfiguracija nije detalj, već strategija koja određuje život ili smrt.

Dakle, preduzmimo akciju.

Kopirajte predložak, izmijenite parametre i odaberite... custom-PHP8_5.tpl.

Održavajte svoj server stabilnim čak i pod velikim brojem istovremenih operacija.

Komentari

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Oznaka

Dođite na vrh