HestiaCP PHP-FPM aia ma lalo o ka ukana kaumaha? Ua hewa ka ʻaoʻao pūnaewele 500? E hoʻokō koke ʻia kēia loiloi!

Ua hālāwai paha ʻoe me kēia kūlana? Lohi koke kāu pūnaewele, a hoʻolei paha i kahi hewa 500. ʻO ka hoʻomaka hou ʻana i ka PHP-FPM e hoʻihoʻi iā ia i ka maʻamau , akā hoʻi hou ka pilikia ma hope o kekahi manawa? He mea hoʻonāukiuki loa ia!

No ke aha kēia e hana ai? ʻOiaʻiʻo, ʻo ka maʻamau, hana ʻia kēia e ka hoʻonohonoho pono ʻole ʻana o ka waihona hana PHP-FPM a i ʻole nā ​​​​kumuwaiwai kikowaena lawa ʻole . I kēia lā, e hoʻomaikaʻi piha mākou i ka PHP-FPM ma lalo o HestiaCP e hōʻoia i ka paʻa o kāu pūnaewele!

ʻO ke kumu nui i hoʻonui ʻia ai ka PHP-FPM

ʻO PHP-FPM ke luna hana no PHP , kuleana no ka lawelawe ʻana i nā noi dynamic. Hiki i ka hoʻonohonoho kūpono ʻole ke alakaʻi i:

  • Ua pau nā kumuwaiwai kikowaena, hiki ʻole iā PHP-FPM ke pane i nā noi hou i ka manawa kūpono;
  • Kakaʻikahi loa nā kaʻina hana, ke piʻi koke mai ke kaʻa, ʻaʻole hiki ke hana i ka manawa;
  • Kiʻekiʻe loa ka hoʻohana ʻana i ke kaʻina hana, e pahū ana ka ukana CPU.

HestiaCP PHP-FPM aia ma lalo o ka ukana kaumaha? Ua hewa ka ʻaoʻao pūnaewele 500? E hoʻokō koke ʻia kēia loiloi!

Pehea e ʻike ai inā ua hoʻonui ʻia ka PHP-FPM?

hiki ke hoʻohana tophtop Kauoha e nānā i ka CPU a me ka hoʻohana ʻana i ka hoʻomanaʻo:

top -c

Inā ʻike ʻoe i ka ʻike kaʻina hana e like me kēia, ʻo ia ka mea e holo ana ʻo PHP-FPM ma lalo o ka haʻahaʻa kiʻekiʻe:

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

Ke ʻike nei ʻoe i kēia mau kaʻina hana e hoʻohana ana ma mua o 70% o ka CPU? Inā hana pinepine kēia, a laila aia kekahi mea hewa me kāu PHP-FPM!

No laila, pehea e hiki ai iā mākou ke hoʻonui i ka hoʻonohonoho PHP-FPM i ʻole e hoʻonui hou ʻia ke kikowaena?

ʻO PHP-FPM kaʻina wai hoʻopololei (hoʻololi ʻana i nā ʻāpana kumu)

ʻO ka mua, wehe php-fpm Nā waihona hoʻonohonoho:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *E hoʻololi i kāu mana PHP, e like me PHP8.5, a hoʻololi i kēia:/etc/php/8.3/fpm/pool.d/www.conf

E nīnau i ka mana PHP i hoʻonohonoho ʻia e HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

I ka hopena, e ʻike ʻoe i kahi mea e like me:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.5 

Hōʻike kēia e hoʻohana ana ka pūnaewele i ka PHP 8.5.

E nānā kāua i kāu hoʻonohonoho PHP-FPM:

[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

Hiki iā ʻoe ke ʻike i kāu pm ʻO ka mea i hoʻohana ʻia ondemand,ʻOiai hiki iā ia ke hōʻemi i ka hoʻohana ʻana i nā kumuwaiwai i ka wā hana ʻole, ke piʻi koke ke kaʻa, ʻaʻole hiki i ke kaʻina hana ke pane i ka manawa., ka hopena i ka hewa 500.

www.conf: ʻO ka "waiwai kumuwaiwai honua" i kūkulu ʻia o ka ʻōnaehana

Ma hope o ka hoʻouka ʻana iā PHP-FPM, e hāʻawi koke ka ʻōnaehana iā ʻoe i kahi... www.conf faila
它的Kūlana hoʻonohonohoHe mea maʻalahi loa ia—he waihona hana paʻamau wale nō ia e hana ana ma waho o ka pahu, i hoʻopili pinepine ʻia i... www-ʻike Hoʻoiho mea hoʻohana.

He kūpono loa kēia ʻano loko wai no nā wahi hoʻokahi pūnaewele: he māmā ke ʻano hoʻonohonoho, a he mau mamana maʻamau nā palena a pau, e like me:

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

Inā ʻoe e hoʻokipa wale i hoʻokahi pūnaewele, hiki iā ʻoe ke hoʻohana pololei a hilinaʻi me ka ʻole o ka pilikia hou.

etufo.org.conf: Waihona maʻamau

Ke holo nei ʻoe i nā pūnaewele he nui, ʻaʻole hiki iā ʻoe ke hoʻopaʻa i nā mea āpau i loko o ka waihona like.
I kēia manawa, e hana aunoa ʻo HestiaCP i kahi waihona ʻokoʻa no kēlā me kēia pūnaewele, no ka laʻana... etufo.org.confKūikawā no nā inoa kikowaena etufo.org

ʻO ke ʻano maʻamau o ka pāʻani ʻana:

  • E hoʻololi i nā mea hoʻohana a me nā hui:user = etufo,group = etufo
  • Ka nānā kūʻokoʻa:listen = /run/php/etufo.sock
  • ʻO ka hoʻoponopono ʻana i ka helu o nā kaʻina hana e hōʻoiaʻiʻo ana i ke kūpaʻa paʻa o ka pōhaku ʻoiai ma lalo o ka hui like ʻana kiʻekiʻe.
  • ʻO nā faila log kaʻawale e hoʻomaopopo pono i ka pilikia.

Ua maopopo nā pono: ka hoʻokaʻawale palekana . ʻOiai inā ua hoʻopilikia ʻia kekahi wahi, ʻaʻole pilikia nā mea ʻē aʻe.

dummy.conf: faila dummy

dummy.conf ʻO ka maʻamau, he mau laʻana a he mau mamana paha kēia i hāʻawi ʻia e ka ʻōnaehana.
ʻAʻole ia e holo maoli ke ʻole ʻoe e hoʻololi a hoʻā iā ia me ka lima.
ʻO kona koʻikoʻi ua like ia me kahi "manual hana," e haʻi ana iā ʻoe pehea e kākau ai i kahi hoʻonohonoho wai hou.

No ke aha e māhele ai i ka loko?

  • 安全 性E hoʻohana i nā mea hoʻohana like ʻole no nā pūnaewele like ʻole e pale aku i nā ʻae kūʻē.
  • 性能优化Hiki ke hoʻololi ʻia ka helu o nā kaʻina hana no kēlā me kēia waihona, e ʻae ana i nā hoʻoponopono maʻalahi e pili ana i ke koi o ke kaʻa.
  • Hoʻokaʻawale ʻanaUa hoʻokaʻawale ʻia nā log, nā hewa, a me nā helu wahi hoʻolohe, e maʻalahi ai ka hoʻoponopono pilikia.

Eia kekahi laʻana, ʻoiai inā hāʻule ʻo www.conf , e holo mau ana ʻo etufo.org.conf ma ke ʻano maʻamau a ʻaʻole e hoʻohiolo i ka kikowaena holoʻokoʻa.

实际场景

  • Kikowaena pūnaewele hoʻokahi: ua lawa ka www.conf.
  • Kikowaena pūnaewele lehulehuLoaʻa i kēlā me kēia pūnaewele kāna faila .conf kūʻokoʻa ponoʻī, e like me etufo.org.conf.
  • dummy.confNo ka ʻike wale nō, ʻaʻole i manaʻo ʻia.

Hoʻohālikelike Hoʻonohonoho

www.conf (wai paʻamau)

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

etufo.org.conf (Pūʻulu Wai Maʻamau)

[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

ʻO nā ʻokoʻa nui: ka ʻike mea hoʻohana, ka helu wahi e hoʻolohe ai, a me ka helu o nā kaʻina hana.

1. Hoʻoponopono i nā ʻāpana kolamu kaʻina hana PHP-FPM

Inā hoʻohana ka hoʻonohonoho dynamicHe ala kēia o ka hoʻomaka mua ʻana i kekahi mau kaʻina hana a me ka hoʻoponopono ʻana iā lākou e like me ka nui o ka noi, hiki ke pane wikiwiki i ka wā e piʻi koke ka nui o ka noi.

No nā pūnaewele me kahi nui o ke kaʻa, pono e hoʻohana pm = dynamicNo ka mea hiki iā ia ke mālama i ka nui o nā kaʻina hana ʻole a pale i nā hewa 500 i ka wā concurrency kiʻekiʻe.

Manaʻo ʻia e hoʻohana wale ia inā haʻahaʻa loa ka leo komo a paʻa nā kumuwaiwai hoʻomanaʻo. pm = ondemand E mālama i nā kumuwaiwai.

Manaʻo ʻia e hoʻololi i dynamic, a hoʻonui pm.max_children A me nā ʻāpana ʻē aʻe:

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 后自动退出

No ke aha ʻoe e makemake ai e hoʻololi e like me kēia?

  • pm = dynamic: E hoʻokaʻawale i nā kaʻina hana i ʻoi aku ka maʻalahi no ka pale ʻana i ke noi kali ʻana ma muli o ke koi;
  • pm.max_children = 16: Kāohi i nā hewa 500 i hana ʻia e nā kaʻina liʻiliʻi loa;
  • pm.start_servers = 5: Hōʻalo i ka hoʻomaka ʻana o ka hana lohi;
  • pm.max_requests = 3000:Ke pale ʻana i ka leʻaleʻa hoʻomanaʻo, hana hou i ke kaʻina hana mau.

2. E kaupalena i ka manawa hoʻokō o nā palapala PHP e pale i ka noho lōʻihi

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

Pale kēia i kekahi mau palapala PHP e hoʻopau ana i ka CPU nui mai ka hāʻule ʻana o ke kikowaena.

Ma hope o ka mālama ʻana, e hoʻomaka hou i ke kaʻina hana PHP:

sudo systemctl restart php8.3-fpm

E hoʻonui i ka PHP-FPM ma muli o ka hoʻonohonoho VPS

Laʻana hoʻonohonoho VPS:

  • Ka wehewehe: VPS 3 NVMe
  • Mokuna pā hōkū: 300 GB
  • Nā ʻiʻo CPU: 8
  • Hipa kāne: 24 GB

Ma muli o kāu hoʻonohonoho VPS ( 8 mau ʻāpana CPU, 24 GB RAM ), ua lawa nā kumuwaiwai o kāu kikowaena. No PHP-FPM, hiki iā 24 GB o RAM ke hoʻonohonoho i kahi helu nui o nā kaʻina hana like.

Ma kahi ʻano hana, hāʻawi pinepine mākou i ka hoʻomanaʻo lawa (e like me 8GB-12GB) no ka ʻōnaehana ponoʻī, nā waihona ʻikepili Apache (e like me MySQL / MariaDB), a me nā cache (e like me Redis / Memcached ), e waiho ana i ke koena 12GB-16GB o ka hoʻomanaʻo e hoʻokaʻawale piha ʻia i ka PHP-FPM.

Ma muli o ka hoʻohana ʻana i ka hoʻomanaʻo maʻamau o 40MB-60MB no kēlā me kēia kaʻina hana PHP , hiki i ka 1GB o ka hoʻomanaʻo ke holo i kahi o 16-25 mau kaʻina hana.

Eia ka hoʻonohonoho FPM hana kiʻekiʻe-concurrency, i hana ʻia no ʻoe , hiki ke hoʻomaikaʻi nui i ka hiki o WordPress a pale iā ia mai ka hāʻule ʻana ma muli o ka piʻi koke ʻana o ke kaʻa:

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

💡 No ke aha i kēia hoʻonohonoho ʻana?

  1. pm.max_children = 300He hoʻonohonoho koʻikoʻi kēia. ʻOi aku ka mālama ʻole o kāu hoʻonohonoho mua ʻana o 50 mau kaʻina hana no 24GB o ka hoʻomanaʻo. Ke hālāwai me ka piʻi koke ʻana o ke kaʻa (a i ʻole nā ​​​​bots e hoʻopiha ana i ke kua), e hoʻopau koke ʻia nā kaʻina hana 50, e hoʻopau ana i nā manawa pili. ʻO ka hoʻonui ʻana i 300 hiki ke hoʻomaikaʻi i ka hiki ke hana like o kāu kikowaena i nā manawa he nui.
  2. pm.start_servers / nā kikowaena_ʻokoʻa_minNo ka mea he 8 mau ʻāpana CPU kāu, hiki iā ʻoe ke mālama mua a maʻamau i nā kaʻina hana ʻole, ka mea e hiki ai iā ʻoe ke hoʻohana pono i ka pono multi-core i hiki ke wehe koke ʻia nā noi hou me ka ʻole o ke kali ʻana i ka hoʻokumu ʻana o ke kaʻina hana.
  3. pm.max_requests = 1000E hoʻonui mai 500 a i 1000. He nui kou hoʻomanaʻo, a ʻaʻole pono e hoʻomaka hou ʻia nā kaʻina hana. ʻO ka hoʻonui ʻana i 1000 hiki ke hōʻemi i ka hoʻohana ʻana o ka CPU i hoʻokumu ʻia e ka luku pinepine ʻana a me ka hana ʻana i nā kaʻina hana.

E nānā i ka moʻolelo lohi:

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

Ma hope o ka hana ʻana i nā hoʻololi, e hoʻomanaʻo e hoʻomaka hou i ka lawelawe PHP-FPM no ka hoʻokō ʻana o nā hoʻololi.

systemctl restart php8.5-fpm

E ʻae i ka nānā ʻana i ke kūlana PHP-FPM e mālama i ka holomua i kēlā me kēia manawa

ʻO ka hoʻā ʻana i ka nānā ʻana i ke kaʻina hana PHP-FPM e hiki ai iā ʻoe ke nānā i ka helu o nā kaʻina hana a noi i ke kūlana kali i kēlā me kēia manawa , e pale ana i ka overload kikowaena.

I php-fpm.conf Hoʻohui ʻia i:

pm.status_path = /status

A laila, hoʻonohonoho 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;
}

Ma kēia ala, hiki iā ʻoe http://yourdomain.com/status E nānā i ka PHP-FPM i ka hana!

E hoʻonui i nā lāʻau PHP-FPM e hoʻoponopono wikiwiki i nā pilikia

I php-fpm.conf Hoʻohui i:

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 的脚本记录到日志

Ma kēia ala, i ka wā e loaʻa ai kahi hewa 500, hiki iā ʻoe ke nānā pololei i ka log:

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

E nānā inā hōʻike ʻo PHP i kahi hewa, e like me out of memory,script execution timeout

E hoʻomaka hou i ka PHP-FPM i kēlā me kēia manawa no ka pale ʻana i ka lepa hoʻomanaʻo

hiki ke hala cron E hoʻomaka hou i ka PHP-FPM e pale i nā kaʻina hana lōʻihi mai ka hana ʻanaLeʻa hoʻomanaʻo.

crontab -e

Hoʻohui i kēia hana i hoʻonohonoho ʻia e hoʻomaka hou i ka PHP-FPM ma 3 am i kēlā me kēia lā:

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

Pehea inā hoʻomau ka pilikia? Hoʻonui hou aku!

Inā loaʻa iā ʻoe kekahi hewa 500 ma hope o ka hahai ʻana i nā hoʻonohonoho ʻana i luna , hiki iā ʻoe ke hoʻomau me nā hoʻonohonoho ʻana ma lalo nei:

1. Hiki iā OPcache ke hoʻomaikaʻi i ka pono o ka hoʻokō PHP

Inā ʻaʻole hiki ke hoʻohana ʻia ʻo OPcache, hiki iā ʻoe ke hoʻokomo iā ia e like me kēia (me ka hoʻohana ʻana iā Ubuntu ma ke ʻano he laʻana):

sudo apt install php8.5-opcache -y

A laila hoʻoponopono php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
  • opcache.validate_timestamps=0
  • E hoʻopau i ka ʻike ʻana i ka manawa maoliE hōʻemi i ka I/O ʻōnaehana faila a hoʻomaikaʻi i ka hana.
  • Eia nō naʻe, ʻo ia hoʻi, pono ʻoe e holoi lima i ka cache (e hoʻomaka hou i ka lawelawe PHP) ma hope o ka hoʻololi ʻana i nā faila PHP.

Ma hope o ka hoʻololi ʻana i ka hoʻonohonoho ʻana, pono ʻoe e hoʻomaka hou i ka lawelawe PHP no ka hoʻokō ʻana o nā loli.

sudo systemctl restart php<版本>-fpm

Ka hopena? Ua hoʻomaikaʻi nui ʻia ka wikiwiki o ka hoʻokō ʻana i ka ʻaoʻao PHP!

2. Hoʻoponopono hoʻonohonoho Nginx

E hōʻoia he kūpono nā palena pili Nginx, e like me fastcgi_read_timeout E hoʻoponopono pono i ka pale ʻana i nā palapala PHP e hoʻopau ʻia e Nginx ma muli o ka lōʻihi o ka manawa hoʻokō:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Hōʻuluʻulu manaʻo: E hoʻonui i ka PHP-FPM a ʻaʻole e hāʻule hou ka pūnaewele!

He aha nā hoʻololi a mākou i hana ai ma hope o kēia loiloi?

✅ Hoʻonui i ka waihona kaʻina hana PHP-FPM, hoʻohana ondemandA hoʻonui pm.max_children hoʻohālikelike;
Hoʻopili i ka manawa hoʻokō o nā palapala PHP, e pale i ka noho CPU no ka manawa lōʻihi;
E ho'ā i ka nānā ʻana iā PHP-FPM, nānā i ke kaʻina hana i ka manawa maoli;
Hoʻonui i nā moʻolelo PHP-FPM, hoʻoponopono wikiwiki i nā hewa 500;
Hoʻomaka hou PHP-FPM mau, pale i ka hoʻomanaʻo leaks;
E ho'ā i ka OPcache, hoʻomaikaʻi i ka pono hoʻokō PHP;
Hoʻonui i ka hoʻonohonoho Nginx, e pale i nā pilikia manawa.

Ma hope o kēia loiloi, e hoʻemi nui ʻia ka ukana PHP-FPM a ʻoi aku ka paʻa o ka hana pūnaewele! 🔥

E ho'āʻo i kēia manawa! 💪🚀

Inā makemake nui ʻoe e aʻo hou e pili ana i ka hoʻopilikino ʻana i nā mamana PHP-FPM me HestiaCP, a laila e hāʻawi kēia ʻatikala iā ʻoe i kahi ʻike hohonu:

👉 Hoʻohālike PHP-FPM maʻamau ʻo HestiaCP: Nā Mea Huna Hoʻonui Hana PHP 8.5 ▼

Ma kēia ʻike, e ʻike ʻoe:

  • Nā ʻenehana hoʻonohonoho hoʻonui kiʻekiʻe-concurrency: Pehea e hoʻomaikaʻi ai i ka wikiwiki o ka pane ma o ka hoʻonohonoho ʻana i ke kaʻina hana kūpono.
  • Hoʻonā hoʻokaʻawale palekana: E pale i nā pilikia komo ma waena o nā pūnaewele a hōʻoia i ke kūpaʻa o ka moʻokāki.
  • Nā Log a me ka nānā ʻana: E hoʻohana i nā log lohi e ʻike i nā bottlenecks a hoʻomau i ka hoʻomaikaʻi ʻana i ka hana pūnaewele.

评论

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

Pepa la i ka luna