Predloga HestiaCP po meri za PHP-FPM: Skrivnosti optimizacije zmogljivosti PHP 8.5

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.

Predloga HestiaCP po meri za PHP-FPM: Skrivnosti optimizacije zmogljivosti PHP 8.5

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 = 16
  • pm.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.

发表 评论

您的邮箱地址不会被公开。 必填 项 已 用 * Oznaka

Pomaknite se na vrh