HestiaCP PHP-FPM nọ n'okpuru ibu dị arọ? Njehie ibe weebụ 500 dị ike? Nke a na njikarịcha ga-mmetụta ozugbo!

Ị hụtụla ọnọdụ a? Weebụsaịtị gị na-ebelata ngwa ngwa, ma ọ bụ ọbụna tụfuo njehie 500. Ịmaliteghachi PHP-FPM na-eme ka ọ dịghachi mma , mana nsogbu ahụ na-apụta ọzọ mgbe obere oge gasịrị? Ọ na-ewe iwe nke ukwuu!

Gịnị mere nke a ji eme? N'ezie, nke a na- abụkarị n'ihi nhazi usoro PHP-FPM na-ezighi ezi ma ọ bụ enweghị akụrụngwa sava zuru oke . Taa, anyị ga-emeziwanye PHP-FPM nke ọma n'okpuru HestiaCP iji hụ na ebe nrụọrụ weebụ gị kwụsiri ike nke ọma!

Isi ihe kpatara PHP-FPM ji ebufe ibu

PHP-FPM bụ onye njikwa usoro maka PHP , onye nwere ọrụ ijikwa arịrịọ ndị na-agbanwe agbanwe. Nhazi na-ekwesịghị ekwesị nwere ike ibute:

  • Ihe nkesa agwụla, na-eme ka PHP-FPM ghara ịzaghachi arịrịọ ọhụrụ n'oge;
  • Usoro ole na ole, mgbe okporo ụzọ na-abawanye na mberede, enweghị ike ịhazi ya n'oge;
  • Ojiji usoro dị oke oke, na-eme ka ibu CPU gbawaa.

HestiaCP PHP-FPM nọ n'okpuru ibu dị arọ? Njehie ibe weebụ 500 dị ike? Nke a na njikarịcha ga-mmetụta ozugbo!

Kedu ka esi ama ma ọ bụrụ na ebufela PHP-FPM?

nwere ike iji tophtop Iwu ka ịlele CPU na ojiji ebe nchekwa:

top -c

Ọ bụrụ na ị hụ ozi usoro yiri nke a, ọ pụtara na PHP-FPM na-agba ọsọ n'okpuru nnukwu ibu:

1669293 abc     20   0  790284 227880 185568 R  73.1   0.9   1:30.09 php-fpm: pool chenweiliang.com                                                    
1669522 abc     20   0  801924 224224 170236 R  69.9   0.9   0:59.01 php-fpm: pool chenweiliang.com

Ị na-ahụ usoro ndị a site na iji ihe karịrị pasentị iri asaa nke CPU? Ọ bụrụ na nke a na-eme ugboro ugboro, mgbe ahụ enwere ihe na-adịghị mma na PHP-FPM gị!

Yabụ, kedu ka anyị ga-esi bulie nhazi PHP-FPM ka ọ ghara ibufe ihe nkesa?

Nkwalite ọdọ mmiri usoro PHP-FPM (isi ngbanwe parameter)

Mbụ, mepee php-fpm Faịlụ nhazi:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Gbanwee na ụdị PHP gị, dị ka PHP8.5, wee gbanwee ya ka ọ bụrụ nke a:/etc/php/8.3/fpm/pool.d/www.conf

Jụọ ụdị PHP nke HestiaCP setịpụrụ

v-list-web-domain user domain.com

Ọmụmaatụ:

v-list-web-domain abc chenweiliang.com

Na mmepụta, ị ga-ahụ ihe dị ka:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.5 

Nke a na-egosi na weebụsaịtị ahụ na-eji PHP 8.5.

Ka anyị lelee nhazi PHP-FPM gị:

[chenweiliang.com]
listen = /run/php/php8.5-fpm-chenweiliang.com.sock
listen.owner = abc
listen.group = www-data
listen.mode = 0660

user = abc
group = abc

pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s

Ị nwere ike ịhụ na nke gị pm Nke eji bụ ondemand,Agbanyeghị na ọ nwere ike ibelata ojiji akụrụngwa n'oge enweghị ọrụ, mgbe okporo ụzọ na-abawanye na mberede, usoro ahụ nwere ike ọ gaghị enwe ike ịzaghachi n'oge., na-akpata njehie 500.

www.conf: "Ọdọ mmiri akụrụngwa zuru ụwa ọnụ" nke sistemụ ahụ dị n'ime ya.

Mgbe etinyere PHP-FPM, sistemụ ahụ ga-enye gị... www.conf faịlụ.
Nke yaN'ọnọduỌ dị nnọọ mfe—ọ bụ naanị usoro ndabara nke na-arụ ọrụ n'ime igbe, nke a na-ejikarị... www-data Nbudata onye ọrụ.

Ụdị ọdọ mmiri a dabara adaba karịsịa maka gburugburu ebe otu ebe: nhazi ahụ dị mfe, paramita niile bụkwa ndebiri izugbe, dịka:

user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5

Ọ bụrụ na naanị otu ebe nrụọrụ weebụ ka ị na-akwado, ị nwere ike iji ya ozugbo na ntụkwasị obi na-enweghị nsogbu ọ bụla ọzọ.

etUFO.org.conf: Ọdọ mmiri pụrụ iche

Ozugbo ị na-agba ọtụtụ ebe nrụọrụ weebụ, ị gaghị enwe ike itinye mmadụ niile n'otu ọdọ mmiri.
N'oge a, HestiaCP ga-emepụta ọdọ mmiri dị iche na akpaghị aka maka saịtị ọ bụla, dịka ọmụmaatụ... etUFO.org.confPụrụ iche maka aha ngalaba etufo.org

Ụzọ a na-ejikarị egwu egwu bụ:

  • Gbanwee ndị ọrụ na otu:user = etufo,group = etufo
  • Nlekota onwe onye:listen = /run/php/etufo.sock
  • Ịgbanwe ọnụọgụgụ usoro na-eme ka o doo anya na nkume kwụsiri ike ọbụlagodi n'okpuru oke nkwekọrịta.
  • Faịlụ ndekọ dị iche iche na-eme ka nsogbu ndị a doo anya.

Uru ya doro anya: ịnọpụ iche n'enweghị nsogbu . Ọ bụrụgodị na otu ebe emebie, ndị ọzọ agaghị emetụta ya.

dummy.conf: faịlụ nzuzu

dummy.conf Ndị a na-abụkarị ihe atụ ma ọ bụ ndebiri nke sistemụ ahụ na-enye.
Ọ gaghị arụ ọrụ n'ezie ma ọ bụrụ na ị gbanwee ma mee ka ọ rụọ ọrụ aka.
Mkpa ya dị ka "akwụkwọ ntuziaka ọrụ," na-agwa gị otu esi ede nhazi ọdọ mmiri ọhụrụ.

Gịnị mere e ji kewaa ọdọ mmiri ahụ?

  • 安全 性Jiri ndị ọrụ dị iche iche maka saịtị dị iche iche iji zere ikike ndị na-emegiderịta onwe ha.
  • 性能优化Enwere ike ịgbanwe ọnụọgụ nke usoro dị iche iche maka ọdọ mmiri ọ bụla, na-enye ohere maka mgbanwe mgbanwe dabere na mkpa okporo ụzọ.
  • Nnọpụ icheE kewapụrụ ndekọ, njehie, na adreesị ige ntị, nke na-eme ka nsogbu dị mfe.

Dịka ọmụmaatụ, ọ bụrụgodị na www.conf ada, etufo.org.conf ka ga na-arụ ọrụ nke ọma ma ọ gaghị emebi sava ahụ dum.

实际场景

  • Sava otu saịtị: www.conf ezuola.
  • Sava ọtụtụ ebe nrụọrụ weebụEbe nrụọrụ weebụ ọ bụla nwere faịlụ .conf nke ya, dịka etufo.org.conf.
  • dummy.confMaka ntụnyere naanị, anaghị atụ aro ya.

Ntụnyere Nhazi

www.conf (ọdọ mmiri ndabara)

[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5

etufo.org.conf (Ọdọ mmiri omenala)

[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log

Isi ihe dị iche bụ: njirimara onye ọrụ, adreesị ige ntị, na ọnụọgụ usoro.

1. Gbanwee PHP-FPM usoro ọdọ mmiri parameters

Ọ bụrụ na nhazi ahụ na-eji dynamicNke a bụ usoro nke ibido ụfọdụ usoro ọrụ ma na-emegharị ha nke ọma dịka olu arịrịọ si dị, nke nwere ike ịza ngwa ngwa mgbe olu arịrịọ na-abawanye na mberede.

Maka weebụsaịtị nwere oke okporo ụzọ, a na-atụ aro ka iji ya pm = dynamicN'ihi na ọ nwere ike idowe ụfọdụ usoro na-abaghị uru ma zere njehie 500 n'oge nnukwu concurrency.

A na-atụ aro ka iji ya naanị mgbe olu nnweta dị oke ala yana akụrụngwa ebe nchekwa siri ike. pm = ondemand Ka ịchekwaa akụrụngwa.

Akwadoro maka dynamic, ma kwalite pm.max_children Na paramita ndị ọzọ:

pm = dynamic
pm.max_children = 16  ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4   ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2  ; 最小空闲进程数
pm.max_spare_servers = 7  ; 最大空闲进程数
pm.max_requests = 3000    ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s  ; 空闲进程 10s 后自动退出

Gịnị mere i ji chọọ ịgbanwe ya otú a?

  • pm = dynamic: Kenye usoro n'ụzọ na-agbanwe agbanwe ka ịzenarị arịrịọ echere nke nwere ike bute site na ondemand;
  • pm.max_children = 16: Gbochie njehie 500 mere site na usoro ole na ole;
  • pm.start_servers = 5: Zere mmalite usoro ngwa ngwa;
  • pm.max_requests = 3000:Na-egbochi nkwụsị ebe nchekwa, megharịa usoro ahụ mgbe niile.

2. Machie oge igbu oge nke ederede PHP iji gbochie ogologo oge

request_terminate_timeout = 30s  ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M  ; 限制 PHP 进程最大内存占用

Nke a na-egbochi ụfọdụ edemede PHP nke na-eri oke CPU imebi sava ahụ.

Mgbe ịchekwaa, malitegharịa usoro PHP:

sudo systemctl restart php8.3-fpm

Mee ka PHP-FPM dịkwuo mma dabere na nhazi VPS

Ihe atụ nhazi VPS:

  • Nkọwa: VPS 3 NVMe
  • Oghere Diski: 300 GB
  • Isi CPU: 8
  • Ram: 24 GB

Dabere na nhazi VPS gị ( isi CPU asatọ, RAM 24 GB ), akụrụngwa sava gị zuru oke. Maka PHP-FPM, RAM 24 GB na-enye gị ohere ịhazi ọtụtụ usoro n'otu oge.

N'ebe mmepụta ihe, anyị na-ekenyekarị ebe nchekwa zuru oke (dịka 8GB-12GB) maka sistemụ ahụ n'onwe ya, ebe nchekwa data Apache (dịka MySQL /MariaDB), na ebe nchekwa (dịka Redis / Memcached ), na-ahapụ ebe nchekwa 12GB-16GB fọdụrụ ka ekenye ya kpamkpam na PHP-FPM.

Dabere na ojiji ebe nchekwa nkezi nke 40MB-60MB kwa usoro PHP , 1GB nke ebe nchekwa nwere ike ịgba ọsọ ihe dị ka usoro 16-25.

Ihe ndị a bụ nhazi FPM dị elu nke nwere nkwekọrịta dị elu, nke a haziri maka gị , nke nwere ike ime ka ikike WordPress ka mma ma gbochie ya ịda n'ihi mmụba okporo ụzọ mberede:

pm = dynamic

; 允许的最大 PHP 进程数(12GB 内存 / 40MB ≈ 300)
; 8核CPU搭配300个进程,可以轻松应对极高并发,且不至于让内存溢出
pm.max_children = 300

; 启动时创建的初始进程数(CPU核心数 * 4)
pm.start_servers = 32

; 维持的最小空闲进程数(服务器空闲时保留的进程,保证随时响应)
pm.min_spare_servers = 16

; 维持的最大空闲进程数(超过这个数量的空闲进程会被释放)
pm.max_spare_servers = 64

; 每个进程处理1000个请求后自动重启,高配置服务器可适当调大,有效防止WP插件内存泄露
pm.max_requests = 1000

; 单个请求最大执行时间,超时60秒强杀,防止死锁卡死
request_terminate_timeout = 60s

; 慢日志路径及触发阈值(请求超过5秒则记录,用于排查性能瓶颈)
slowlog = /var/log/php8.5-fpm.log.slow
request_slowlog_timeout = 5s

💡 Gịnị kpatara nhazi a?

  1. pm.max_children = 300Nke a bụ isi ihe dị mkpa. Nhazi gị gara aga nke usoro iri ise dị oke mma maka ebe nchekwa 24GB. Mgbe ị na-ahụ mmụba mberede na okporo ụzọ (ma ọ bụ bots na-ejupụta na ndabere), usoro iri ise ga-ejupụta ozugbo, na-akpata oge njikọ. Ịbawanye ya ruo 300 nwere ike ime ka ikike nhazi n'otu oge nke sava gị dịkwuo mma ọtụtụ ugboro.
  2. pm.start_servers / `min_spare_sava_spareEbe ọ bụ na ị nwere isi CPU asatọ, ị nwere ike na mbụ ma na-ejidekarị usoro ndị ọzọ na-abaghị uru, nke na-enye gị ohere iji uru nke multi-core mee ihe ka e wee nwee ike imepe arịrịọ ọhụrụ ozugbo n'echeghị ka e mepụta usoro.
  3. pm.max_requests = 1000Mmụba site na 500 ruo 1000. Ebe nchekwa gị buru ibu, ọ dịghịkwa mkpa ịmalitegharị usoro ihe omume ugboro ugboro. Ịbawanye ruo 1000 nwere ike ibelata oriri CPU nke mbibi na mmepụta usoro ugboro ugboro na-akpata.

Lee ndekọ ahụ nwayọ:

tail -f /var/log/php8.5-fpm.log.slow
tail -f /var/log/php8.4-fpm.log.slow

Mgbe ịmechara mgbanwe ndị ahụ, cheta ịmalitegharịa ọrụ PHP-FPM ka mgbanwe ndị ahụ wee malite ịrụ ọrụ.

systemctl restart php8.5-fpm

Kwado nlekota ọnọdụ PHP-FPM ka ịdeba ọganihu n'oge ọ bụla

Inye aka na nlekota usoro PHP-FPM na-enye gị ohere ịhụ ọnụọgụ nke usoro ndị na-arụ ọrụ ma rịọ maka ọnọdụ ichere n'oge ọ bụla , na-egbochi oke ibu nke sava.

Na php-fpm.conf Etinyere na:

pm.status_path = /status

Mgbe ahụ, nhazi Nginx:

location /status {
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    allow 127.0.0.1;
    deny all;
}

N'ụzọ dị otú a, ị nwere ike http://yourdomain.com/status Lelee PHP-FPM na-arụ ọrụ!

Bulite ndekọ PHP-FPM iji dozie nsogbu ngwa ngwa

Na php-fpm.conf Gbakwunye na:

php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_value[log_errors] = On
php_admin_value[error_reporting] = E_ALL
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s  ; 执行超过 5s 的脚本记录到日志

N'ụzọ dị otú a, mgbe ọ bụla njehie 500 mere, ị nwere ike ịlele ndekọ ozugbo:

tail -f /var/log/php-fpm/error.log

Hụ ma PHP na-akọ njehie, dị ka out of memory,script execution timeout

Malitegharịa PHP-FPM oge niile iji gbochie ntapu ebe nchekwa

nwee ike ịgafe cron Malitegharịa PHP-FPM oge niile ka ọ ghara ịkpata usoro na-adịte akaNhapu ebe nchekwa.

crontab -e

Tinye ọrụ akwadoro ka ịmalitegharịa PHP-FPM ozugbo n'elekere atọ nke ụtụtụ kwa ụbọchị:

0 3 * * * /usr/sbin/service php8.5-fpm restart

Gịnị ma ọ bụrụ na nsogbu ahụ adịgide? Nkwalite ọzọ!

Ọ bụrụ na ị ka na-enweta njehie 500 mgbe ụfọdụ mgbe ị gbasoro njikarịcha ndị a dị n'elu , ị nwere ike ịga n'ihu na njikarịcha ndị a:

1. Kwado OPcache iji kwalite arụmọrụ PHP

Ọ bụrụ na OPcache emebeghị, ị nwere ike iwunye ya dị ka nke a (iji Ubuntu dịka ọmụmaatụ):

sudo apt install php8.5-opcache -y

Mgbe ahụ dezie php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
  • opcache.validate_timestamps=0
  • Gbanyụọ nchọpụta ozugboBelata I/O sistemụ faịlụ ma melite arụmọrụ.
  • Agbanyeghị, nke a pụtara na ị ga-eji aka gị hichapụ cache ahụ (maliteghachi ọrụ PHP) mgbe ị gbanwere faịlụ PHP.

Mgbe ị gbanweechara nhazi ahụ, ị ​​ga-amalitegharị ọrụ PHP ka mgbanwe ndị ahụ wee rụọ ọrụ.

sudo systemctl restart php<版本>-fpm

Mmetụta? Nwelite ọsọ igbu ibe ibe PHP nke ukwuu!

2. Nginx nhazi njikarịcha

Gbaa mbọ hụ na parampat metụtara Nginx nwere ezi uche, dịka fastcgi_read_timeout Gbanwee ya n'ụzọ ziri ezi ka ịzenarị Nginx akwụsị scripts PHP n'ihi ogologo oge igbu oge:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Nchịkọta: Bulite PHP-FPM na webụsaịtị agaghịzi daa!

Kedu mgbanwe ndị anyị mebere ka emechara nke a?

✅ Na-ebuli ọdọ mmiri usoro PHP-FPM, jiri ondemandMa kwalite pm.max_children oke;
Na-amachi oge igbu oge nke ederede PHP, iji gbochie ọrụ CPU ogologo oge;
Kwado nlekota PHP-FPM, lelee usoro ibu ọrụ ozugbo;
Na-ebuli ndekọ PHP-FPM, ngwa ngwa dozie njehie 500;
Malitegharịa ekwentị PHP-FPM mgbe niile, gbochie nkwụsị ebe nchekwa;
Kwado OPcache, melite PHP arụmọrụ arụmọrụ;
Na-ebuli Nginx Nhazi, ka ịzenarị nsogbu oge.

Mgbe nkwalite a gachara, ibu PHP-FPM ga-ebelata nke ukwuu yana ọrụ webụsaịtị ga-adịkwu mma! 🔥

Gaa nwaa ya ugbu a! 💪🚀

Ọ bụrụ na ị ka nwere mmasị ịmụtakwu gbasara ịhazi ndebiri PHP-FPM na HestiaCP, mgbe ahụ isiokwu a ga-enye gị nghọta miri emi:

👉 Nlereanya PHP-FPM nke HestiaCP ahaziri ahazi: Nzuzo Nhazi arụmọrụ PHP 8.5 ▼

N'ime ọdịnaya a, ị ga-ahụ:

  • Usoro nhazi nke ọma maka nkwekọ: Otu esi eme ka ọsọ nzaghachi ka mma site na nhazi usoro ezi uche dị na ya.
  • Ngwọta nkewapụ nchekwa: Zere ihe egwu ịnweta ebe niile ma hụ na akaụntụ kwụsiri ike.
  • Ndekọ na nlekota: Jiri ndekọ dị nwayọ chọta ihe mgbochi ma na-eme ka arụmọrụ weebụsaịtị ka mma mgbe niile.

评论

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

Pịgharịa gaa na n'elu