Versi unedited tina artikel ieu asalna diterbitkeun dina
Kuring gé ngabejaan Anjeun dina nutshell kumaha pangalusna pikeun ngonpigurasikeun PHP-FPM pikeun ngaronjatkeun throughput, ngurangan latency, sarta ngagunakeun CPU jeung memori leuwih konsistén. Sacara standar, garis PM (manajer prosés) dina PHP-FPM nyaéta dinamis, jeung lamun teu boga cukup memori, mangka leuwih hade pikeun masang seueur anu mesen. Hayu urang ngabandingkeun 2 pilihan kontrol dumasar kana dokuméntasi php.net tur tingal kumaha favorit kuring béda ti aranjeunna statik pm pikeun lalu lintas volume tinggi:
pm = dinamis - Jumlah prosés anak dikonpigurasi sacara dinamis dumasar kana arahan ieu: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = paménta - prosés dijieun dina paménta (sabalikna tina kreasi dinamis, lamun pm.start_servers dibuka nalika layanan dimimitian).
pm = statik - Jumlah prosés anak dibereskeun sareng dituduhkeun ku parameter pm.max_children.
Pikeun detil, tingali
Kamiripan antara manajer prosés PHP-FPM sareng pengontrol frékuénsi CPU
Ieu sigana offtopic, tapi Kaula bade numbu ieu topik konfigurasi PHP-FPM. Saha anu teu acan ngalaman slowdown prosésor sahenteuna sakali - dina laptop, mesin virtual atawa dedicated server? Inget skala frékuénsi CPU? pilihan ieu sadia pikeun nix jeung Windows bisa ningkatkeun kinerja sistem na responsiveness ku cara ngarobah setelan throttle processor ti seueur anu mesen dina kinerja*. Waktos ieu, hayu urang ngabandingkeun déskripsi sareng ningali kamiripan:
gubernur=ondemand - skala dinamis frékuénsi processor gumantung kana beban ayeuna. Gancang luncat ka frékuénsi maksimum lajeng ngurangan éta salaku période inactivity ngaronjat.
gubernur=konservatif= skala frékuénsi dinamis gumantung kana beban ayeuna. Ngaronjatkeun sareng ngirangan frékuénsi langkung lancar tibatan ondemand.
Gubernur = kinerja - frékuénsi salawasna maksimum.
Pikeun detil, tingali
Ningali kamiripan? Abdi hoyong nunjukkeun perbandingan ieu pikeun ngayakinkeun yén éta pangsaéna pikeun dianggo pm statik pikeun PHP-FPM.
Pikeun parameter regulator processor kinerja mantuan pikeun aman ningkatkeun kinerja sabab ampir sakabéhna gumantung kana wates CPU server urang. Salian ieu, tangtosna, aya ogé faktor sapertos suhu, ngeusi batre (dina laptop) sareng efek samping sanésna anu terus-terusan ngajalankeun prosésor dina 100%. Setelan kinerja ensures kinerja processor panggancangna. Baca, contona, ngeunaan
Ngagunakeun pm statik pikeun ngahontal kinerja server maksimum
Pilihan PHP-FPM pm statik sakitu legana gumantung kana bebas memori dina server. Lamun memori low, eta leuwih hade milih seueur anu mesen atawa dinamis. Di sisi anu sanésna, upami anjeun gaduh mémori, anjeun tiasa ngahindarkeun manajer prosés PHP overhead ku netepkeun pm statik ka kapasitas server maksimum. Dina basa sejen, lamun sagalana diitung ogé, anjeun kudu ngadegkeun pm.statik nepi ka volume maksimum prosés PHP-FPM nu bisa dieksekusi, tanpa nyieun masalah sareng memori low atanapi cache. Tapi henteu saluhureun éta ngagentos prosesor sareng ngumpulkeun sakumpulan operasi PHP-FPM ngantosan dieksekusi..
Dina screenshot di luhur, server boga pm = statik jeung pm.max_children = 100, sarta ieu nyokot kira 10 GB kaluar tina sadia 32. Nengetan kolom disorot, sagalana jelas dieu. Dina screenshot ieu aya kira 200 pamaké aktip (leuwih ti 60 detik) dina Google Analytics. Dina tingkat ieu, kurang leuwih 70% tina PHP-FPM prosés anak masih dianggurkeun. Ieu ngandung harti yén PHP-FPM salawasna disetel ka jumlah maksimum sumberdaya server paduli lalulintas ayeuna. Prosés dianggurkeun ngantosan puncak lalu lintas sareng ngaréspon langsung. Anjeun teu kedah ngantosan dugi pm bakal nyieun prosés anak lajeng nungtungan aranjeunna nalika jaman béakna pm.process_idle_timeout. Kuring nyetel nilai ka luhur pisan pm.max_requestssabab ieu mangrupikeun server anu tiasa dianggo kalayan henteu aya bocor memori dina PHP. Anjeun tiasa install pm.max_requests = 0 kalawan statik lamun anjeun sagemblengna yakin kana Aksara PHP aya jeung nu bakal datang. Tapi leuwih sae pikeun ngajalankeun deui naskah kana waktu. Nyetél angka nu gede ngarupakeun requests, sabab urang hayang ulah aya waragad pm teu perlu. Contona, sahenteuna pm.max_requests = 1000 - gumantung kana kuantitas pm.max_children jeung jumlah requests per detik.
Potret layar nunjukkeun paréntah
top -bn1 | grep php-fpm
Iraha nganggo pm ondemand sareng dinamis
Upami anjeun nganggo pm dinamis, kasalahan sapertos kieu lumangsung:
WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children
Coba ngarobah parameter, kasalahan moal dileungitkeun, kawas
PM dinamis sareng utamina seueur anu mesen tiasa dianggo upami anjeun gaduh sababaraha kolam renang PHP-FPM. Salaku conto, anjeun ngagaduhan sababaraha akun cPanel atanapi sababaraha situs wéb dina kolam renang anu béda. Kuring boga server kalawan, sebutkeun, 100+ rekening cpanel sarta ngeunaan 200 domain, sarta pm.static atawa malah dinamis moal nyalametkeun kuring. Kabéh nu peryogi didieu nyaeta seueur anu mesen, Barina ogé, leuwih ti dua per tilu situs web narima saeutik atawa euweuh lalulintas, sarta kalawan seueur anu mesen kabéh prosés anak bakal layu atawa gugur, nu bakal nyalametkeun urang loba memori! Untungna, pamekar cPanel perhatikeun ieu sareng nyetél nilai standar seueur anu mesen. Saméméhna, nalika standar éta dinamis, PHP-FPM teu cocog pikeun server dibagikeun sibuk pisan. Loba geus dipaké suPHP, sabab pm dinamis memori dihakan sanajan kalawan pools dianggurkeun sarta akun cPanel PHP-FPM. Paling dipikaresep, lamun lalulintas anu alus, anjeun moal hosted on server kalawan jumlah badag pools PHP-FPM (shared hosting).
kacindekan
Upami anjeun nganggo PHP-FPM sareng lalu lintas anjeun beurat, manajer prosés seueur anu mesen и dinamis pikeun PHP-FPM bakal diwatesan throughput alatan overhead alamiah maranéhanana. Ngartos sistem anjeun sarta ngonpigurasikeun prosés PHP-FPM nurutkeun kapasitas server maksimum. Set kahiji pm.max_children gumantung kana pamakéan pm maksimum dinamis atawa seueur anu mesen, lajeng ningkatkeun nilai ieu ka tingkat mana mémori jeung processor bakal dianggo tanpa overloaded. Anjeun bakal aya bewara nu mibanda pm statik, Kusabab anjeun gaduh sagalana dina mémori, lalulintas spikes bakal ngabalukarkeun pangsaeutikna paku CPU kana waktu, sarta server na beban CPU averages bakal level kaluar. Rata-rata ukuran prosés PHP-FPM gumantung kana pangladén wéb sareng peryogi konfigurasi manual, janten langkung seueur manajer prosés anu otomatis dinamis и seueur anu mesen - leuwih populér. Kuring miharep artikel ieu mangpaat.
UPDAT Ditambahkeun bagan patokan
sumber: www.habr.com