Anyè Atik
- 1 Rezon prensipal ki fè PHP-FPM twò chaje
- 2 Optimizasyon pisin pwosesis PHP-FPM (ajisteman paramèt debaz)
- 3 Pèmèt siveyans estati PHP-FPM pou kenbe tras pwogrè a nenpòt ki lè
- 4 Optimize PHP-FPM mòso bwa pou rezoud pwoblèm byen vit
- 5 Rekòmanse PHP-FPM regilyèman pou anpeche fwit memwa
- 6 E si pwoblèm nan pèsiste? Pli lwen optimize!
- 7 Rezime: Optimize PHP-FPM ak sit entènèt la p ap aksidan ankò!
Èske w te janm rankontre sitiyasyon sa a?Aksè sou sit wèb te toudenkou ralanti, oswa menm lakòz yon erè 500 Apre rekòmanse PHP-FPM, li te retounen nan nòmal., men pwoblèm nan reparèt apre yon ti tan? Sa a se konsa fwistre!
Poukisa sa rive?An reyalite, sa a se nòmalmanPisin nan pwosesis PHP-FPM pa konfigirasyon byen, oswa resous sèvè yo ensifizan.koze pa. Jodi a, nou pral byen optimize HestiaCP PHP-FPM enstale fè sit entènèt la ki estab tankou yon wòch!
Rezon prensipal ki fè PHP-FPM twò chaje
PHP-FPM se yonManadjè Pwosesis, ki responsab pou okipe demann dinamik. Si konfigirasyon an pa rezonab, li ka mennen nan:
- Resous sèvè yo fin itilize, sa ki lakòz PHP-FPM pa kapab reponn a nouvo demann nan yon fason apwopriye;
- Twòp kèk pwosesis, lè trafik toudenkou ogmante, li pa ka trete nan tan;
- Itilizasyon pwosesis la twò wo, sa ki lakòz chaj CPU a eksploze.

Ki jan yo di si PHP-FPM twò chaje?
ka itilize top Oswa htop Kòmandman pou wè CPU ak itilizasyon memwa:
top -c
Si ou wè enfòmasyon sou pwosesis ki sanble ak sa ki annapre yo, sa vle di PHP-FPM ap kouri anba gwo chaj:
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
Gade ki jan pwosesis sa yo ap pran plis pase 70% CPU a? Si sa rive souvan, PHP-FPM ou Dwe gen yon pwoblèm!
Se konsa, ki jan nou ka optimize konfigirasyon PHP-FPM pou sèvè a pa twò chaje ankò?
Optimizasyon pisin pwosesis PHP-FPM (ajisteman paramèt debaz)
Premyèman, louvri php-fpm Fichye konfigirasyon:
sudo nano /etc/php/*/fpm/pool.d/www.conf- *Chanje vèsyon PHP ou a, tankou PHP8.3, epi chanje l pou l vin jan sa a:
/etc/php/8.3/fpm/pool.d/www.conf
Fè rechèch sou vèsyon PHP ki tabli pa HestiaCP a
v-list-web-domain user domain.com
E.g:
v-list-web-domain abc chenweiliang.com
Nan pwodiksyon an, ou pral wè yon bagay tankou:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Sa vle di ke sit entènèt la itilize PHP 8.3.
Ann pran yon ti gade sou konfigirasyon PHP-FPM ou a:
[chenweiliang.com]
listen = /run/php/php8.3-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
Ou ka wè ke ou pm Youn nan itilize se ondemand,Malgre ke li ka diminye itilizasyon resous pandan tan san fè anyen konsa, lè trafik ogmante toudenkou, pwosesis la ka pa kapab reponn a tan., sa ki lakòz yon erè 500.
1. Ajiste paramèt pisin pwosesis PHP-FPM
Si konfigirasyon an itilize dynamicSa a se yon metòd pou kòmanse kèk pwosesis travay davans epi ajiste yo dinamikman selon volim demann lan, sa ki ka reponn pi vit lè volim demann lan ogmante sibitman.
Pou sit entènèt ki gen yon sèten kantite trafik, li rekòmande pou itilize pm = dynamicPaske li ka kenbe yon sèten kantite pwosesis inaktif epi evite 500 erè pandan gwo konkourans.
Li rekòmande pou itilize li sèlman lè volim aksè a trè ba epi resous memwa yo limite. pm = ondemand Pou konsève resous.
Sijere pou ondemand, ak optimize pm.max_children Ak lòt paramèt:
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 后自动退出
Poukisa ou vle chanje li konsa?
pm = dynamic: Atribye pwosesis yo plis fleksib pou evite demann ap tann ki ka koze pa ondemand;pm.max_children = 16: Anpeche 500 erè ki te koze pa twò kèk pwosesis;pm.start_servers = 5: Evite pwosesis ralanti demaraj;pm.max_requests = 3000:Anpeche fuite memwa, resikle pwosesis la regilyèman.
2. Limite tan ekzekisyon PHP scripts pou anpeche lokatè alontèm
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Sa ka anpeche kèkScripts PHP ki itilize twòp CPU ka fè desann sèvè ou a.
Apre ekonomize, rekòmanse pwosesis PHP:
sudo systemctl restart php8.3-fpmPèmèt siveyans estati PHP-FPM pou kenbe tras pwogrè a nenpòt ki lè
Pèmèt PHP-FPM siveyans pwosesis epi gade li nenpòt ki lèKantite aktyèl la nan pwosesis aktif ak demann estati datant, pou fè pou evite surcharge sèvè.
在 php-fpm.conf Te ajoute nan:
pm.status_path = /status
Lè sa a, konfigirasyon 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;
}
Nan fason sa a, ou kapab http://yourdomain.com/status Tcheke PHP-FPM an aksyon!
Optimize PHP-FPM mòso bwa pou rezoud pwoblèm byen vit
在 php-fpm.conf Ajoute nan:
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 的脚本记录到日志
Nan fason sa a, chak fwa yon erè 500 rive, ou ka dirèkteman wè boutèy la:
tail -f /var/log/php-fpm/error.log
Gade si PHP rapòte yon erè, tankou out of memory,script execution timeout 等.
Rekòmanse PHP-FPM regilyèman pou anpeche fwit memwa
kapab pase cron Rekòmanse PHP-FPM regilyèman pou anpeche pwosesis ki dire lontan lakòzMemwa Leaks.
crontab -e
Ajoute travay pwograme sa a pou rekòmanse otomatikman PHP-FPM a 3 am chak jou:
0 3 * * * /usr/sbin/service php8.3-fpm restart
E si pwoblèm nan pèsiste? Pli lwen optimize!
Si ou toujou swiv optimize ki anwo aOkazyonèlman 500 erè rive, ou ka kontinye ak optimize sa yo:
1. Pèmèt OPcache pou amelyore efikasite ekzekisyon PHP
Si OPcache poko aktive, ou ka enstale li konsa (sèvi ak Ubuntu kòm egzanp):
sudo apt install php8.3-opcache -y
Lè sa a edite php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
Efè? Vitès ekzekisyon paj PHP yo te amelyore anpil!
2. Nginx optimize konfigirasyon
Asire w ke paramèt ki gen rapò ak Nginx yo rezonab, tankou fastcgi_read_timeout Ajiste li kòmsadwa pou evite script PHP yo te sispann pa Nginx akòz tan ekzekisyon long:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Rezime: Optimize PHP-FPM ak sit entènèt la p ap aksidan ankò!
Ki ajisteman nou te fè apre optimize sa a?
✅ Optimize pisin pwosesis PHP-FPM, itilize ondemandAk optimize pm.max_children paramèt;
✅ Limite tan ekzekisyon PHP scripts, pou anpeche okipasyon CPU alontèm;
✅ Pèmèt PHP-FPM siveyans, wè chaj pwosesis la an tan reyèl;
✅ Optimize PHP-FPM mòso bwa, byen vit rezoud 500 erè;
✅ Rekòmanse PHP-FPM regilyèman, anpeche fwit memwa;
✅ Pèmèt OPcache, amelyore efikasite ekzekisyon PHP;
✅ Optimize konfigirasyon Nginx, pou evite pwoblèm timeout.
Apre optimize sa a, chaj PHP-FPM la pral redwi anpil epi operasyon sit entènèt la pral pi estab! 🔥
Ale eseye li kounye a! 💪🚀
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) pataje "Chaj HestiaCP PHP-FPM twò wo? Erè dinamik paj wèb 500? Optimizasyon sa a pral pran efè imedyatman! ”, li ka itil ou.
Byenvini pataje lyen atik sa a:https://www.chenweiliang.com/cwl-32512.html
Pou debloke plis ke trik kache🔑, byenveni sou chanèl Telegram nou an!
Pataje epi like si ou renmen li! Pataj ou yo ak renmen ou yo se motivasyon kontinye nou!