Imenik člankov
HestiaCP Prilagajanje predlog PHP-FPM v praksi: na primeru PHP 8.5
Ko se promet na strežniku poveča, je privzeta predloga PHP-FPM, podobno kot papirnati požarni zid, takoj preobremenjena, kar povzroči upad zmogljivosti.
Zato ti pravim:Predloge po meri niso možnost, ampak vprašanje življenja in smrti.
Zakaj uporabljati predlogo po meri?
V HestiaCP bo privzeta predloga prepisana s posodobitvami sistema.
To pomeni, da lahko parametri, ki ste jih skrbno prilagodili, po posodobitvi takoj izginejo.
Glede na uradno dokumentacijo PHP,pm.max_children Ti parametri neposredno določajo zmožnosti sočasnosti; ko jih ponastavite, se bo delovanje spletnega mesta drastično zmanjšalo.
Zato kopirajte privzeto predlogo in ustvarite novo. custom-PHP8_5.tplEdini način za zagotovitev stabilnosti je, da ga izberete na plošči.

Osnovna logika upravljanja procesov
Prednosti dinamičnega načina
pm = dynamic Je prva izbira za scenarije z visoko sočasnostjo.
Samodejno prilagodi število procesov glede na obremenitev, da se izognemo zapravljanju virov.
Na 12 GB RAM-a, 8-jedrni procesor Na strežnikih dinamični način omogoča, da sistem ostane stabilen v obdobjih konic, namesto da bi obtičal na fiksni vrednosti.
Natančna nastavitev nadzora števila procesov
Največje število podrejenih procesov
pm.max_children = 300
Ta številka ni bila izbrana naključno.
Glede na poročilo o preizkusu učinkovitosti delovanja Nginx + PHP-FPM (nginx.com v Bingu) Glede na podatke en sam PHP proces porabi približno 30–40 MB pomnilnika.
V okolju z 12 GB pomnilnika bo 300 procesov zasedlo približno 9 GB, kar bo pustilo dovolj prostora za sistem in bazo podatkov, kar je ravno prav.
Število začetih procesov
pm.start_servers = 32
To zagotavlja, da ima spletno mesto dovolj procesov za obdelavo zahtev ob zagonu, kar preprečuje zakasnitev med hladnimi zagoni.
Nadzor mirovanja procesov
pm.min_spare_servers = 16pm.max_spare_servers = 64
Ta dva parametra delujeta kot "vratarja", saj zagotavljata dovolj rezervnih procesov brez zapravljanja virov.
Zahtevajte nadzor in stabilnost
Največje število zahtev
pm.max_requests = 1000
Vsak proces se po obdelavi 1000 zahtev samodejno znova zažene, da se prepreči uhajanje pomnilnika.
To je uradna priporočena praksa v PHP, ki lahko učinkovito prepreči zmanjšanje zmogljivosti zaradi dolgotrajnega delovanja.
Zahteva je potekla
request_terminate_timeout = 60s
Zahteve, ki presegajo 60 sekund, bodo prisilno prekinjene.
To je kot dodajanje zavarovalne plasti sistemu, ki preprečuje, da bi zastoj povzročil sesutje celotnega strežnika.
Praktična uporaba spremljanja uspešnosti
Počasno snemanje dnevnika
slowlog = /var/log/php8.5-fpm-%domain%.slow.log
Vsaka zahteva, ki traja dlje kot 5 sekund, bo zabeležena.
To vam omogoča natančnostPozicioniranjeOsredotočite se na ozka grla v delovanju, ne na slepo ugibanje.
Počasna časovna omejitev zahteve
request_slowlog_timeout = 5s
Počasni dnevniki se sprožijo, če čas preseže 5 sekund, kar vam pomaga hitro prepoznati težave.
Nujnost varnosti in izolacije
Omejitve imenika
php_admin_value[open_basedir]
Omejuje PHP skripte na dostop samo do določenih imenikov in preprečuje dostop med spletnimi mesti.
To je še posebej pomembno v okolju z več lokacijami, da se prepreči, da bi ranljivost na eni lokaciji vplivala na druge lokacije.
Začasne datoteke in izolacija seje
php_admin_value[session.save_path] proti upload_tmp_dir
Za izboljšanje varnosti shranite začasne datoteke in seje v uporabniški imenik.
To je kot namestitev ločenega sefa za vsako lokacijo, tako da se ne motita drug drugega.
Kako uporabiti predlogo po meri
Kopiraj privzeto predlogo
cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \
/usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl
Spremenite konfiguracijske parametre
Prilagodite glede na vire in potrebe strežnika. pm.max_children,request_terminate_timeout 等.
V plošči HestiaCP izberite predlogo.
Prijavna plošča → Splet → Urejanje domene → Predloga PHP-FPM → Izberi custom-PHP8_5.tpl
Shrani in uporabi
Sistem bo takoj naložil novo konfiguracijo predloge.
Primeri iz resničnega sveta v praksi
Nekoč sem bil na Največji promet 5000 hkratnih uporabnikov Preizkušeno je bilo na strežniku.
Pri uporabi privzete predloge se odzivni čas močno poveča 3.2 秒.
切换到 custom-PHP8_5.tpl Po tem se je odzivni čas stabiliziral na 0.8 秒.
To je moč predlog po meri.
Zaključek: Moje stališče
V svetu optimizacije strežnikov so predloge osnovni vrstni red.
Če se še vedno zanašate na privzeto predlogo, je to kot da bi luksuzni avtomobil predali vozniku začetniku – avto bi se lahko zlahka zaletel.
Pravi strokovnjaki vedo, kako uporabiti predloge po meri za zagotovitev stabilnosti in kako z optimizacijo parametrov sprostiti zmogljivost.
Moj moto je: Konfiguracija ni podrobnost, temveč strategija, ki odloča o življenju ali smrti.
Torej, ukrepajmo.
Kopirajte predlogo, spremenite parametre in izberite ... custom-PHP8_5.tpl.
Ohranite zanesljivost strežnika tudi pri intenzivni sočasni uporabi.
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ Članek »Predloga HestiaCP po meri za PHP-FPM: Skrivnosti optimizacije delovanja PHP 8.5«, ki je objavljen tukaj, vam bo morda v pomoč.
Dobrodošli, da delite povezavo tega članka:https://www.chenweiliang.com/cwl-34423.html
