HestiaCP PHP-FPM wa labẹ ẹru wuwo? Yiyi oju-iwe ayelujara 500 aṣiṣe? Imudara yii yoo gba ipa lẹsẹkẹsẹ!

Njẹ o ti pade ipo yii tẹlẹ?Wiwọle oju opo wẹẹbu fa fifalẹ lojiji, tabi paapaa yorisi aṣiṣe 500 Lẹhin ti tun bẹrẹ PHP-FPM, o pada si deede., ṣugbọn iṣoro naa tun han lẹhin igba diẹ? Eleyi jẹ ki idiwọ!

Kini idi ti eyi fi n ṣẹlẹ?Ni otitọ, eyi jẹ igbagbogboAdagun ilana PHP-FPM ko ni tunto daradara, tabi awọn orisun olupin ko to.ṣẹlẹ nipasẹ. Loni, a yoo mu daradara HestiaCP PHP-FPM labẹ hood jẹ ki oju opo wẹẹbu jẹ iduroṣinṣin bi apata!

Idi pataki ti PHP-FPM jẹ apọju

PHP-FPM jẹ aAlakoso ilana, eyi ti o jẹ iduro fun mimu awọn ibeere ti o ni agbara. Ti iṣeto naa ko ba ni oye, o le ja si:

  • Awọn orisun olupin ti rẹ, nfa PHP-FPM ko lagbara lati dahun si awọn ibeere titun ni ọna ti akoko;
  • Awọn ilana ti o kere ju, nigbati ijabọ lojiji n pọ si, ko le ṣe ilana ni akoko;
  • Lilo ilana ti ga ju, nfa awọn Sipiyu fifuye gbamu.

HestiaCP PHP-FPM wa labẹ ẹru wuwo? Yiyi oju-iwe ayelujara 500 aṣiṣe? Imudara yii yoo gba ipa lẹsẹkẹsẹ!

Bii o ṣe le sọ boya PHP-FPM ti pọ ju?

le lo top Tabi htop Paṣẹ lati wo Sipiyu ati lilo iranti:

top -c

Ti o ba rii alaye ilana ti o jọra si atẹle naa, o tumọ si pe PHP-FPM nṣiṣẹ labẹ ẹru giga:

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

Wo bii awọn ilana wọnyi ṣe n gba to ju 70% ti Sipiyu? Ti eyi ba ṣẹlẹ nigbagbogbo, PHP-FPM rẹ Iṣoro gbọdọ wa!

Nitorinaa, bawo ni a ṣe le mu iṣeto PHP-FPM jẹ ki olupin naa ko ni apọju mọ?

Iṣatunṣe adagun ilana PHP-FPM (atunṣe paramita mojuto)

Ni akọkọ, ṣii php-fpm Awọn faili Iṣeto:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Yipada si ẹya PHP rẹ, gẹgẹbi PHP8.3, ki o si yi pada si eyi:/etc/php/8.3/fpm/pool.d/www.conf

Beere ẹya PHP ti a ṣeto nipasẹ HestiaCP

v-list-web-domain user domain.com

Fun apẹẹrẹ:

v-list-web-domain abc chenweiliang.com

Ninu iṣẹjade, iwọ yoo rii nkan bii:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Eyi tumọ si pe oju opo wẹẹbu nlo PHP 8.3,

Jẹ ki a wo iṣeto PHP-FPM rẹ:

[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

O le rii pe rẹ pm ti a lo ni ondemand,Botilẹjẹpe o le dinku lilo awọn orisun lakoko akoko aiṣiṣẹ, nigbati ijabọ lojiji ba pọ si, ilana naa le ma ni anfani lati dahun ni akoko., Abajade ni a 500 aṣiṣe.

1. Satunṣe PHP-FPM ilana pool sile

Ti iṣeto ba nlo dynamicEyi jẹ ọna ti iṣaaju-bẹrẹ diẹ ninu awọn ilana iṣẹ ati ṣiṣatunṣe ni agbara ni ibamu si iwọn ibeere, eyiti o le dahun ni iyara nigbati iwọn ibeere ba pọ si lojiji.

Fun awọn oju opo wẹẹbu pẹlu iye ijabọ kan, o gba ọ niyanju lati lo pm = dynamicNitoripe o le ṣetọju iye kan ti awọn ilana aiṣiṣẹ ati yago fun awọn aṣiṣe 500 lakoko ibaramu giga.

A ṣe iṣeduro lati lo nikan nigbati iwọn iwọle ba kere pupọ ati pe awọn orisun iranti jẹ ṣinṣin. pm = ondemand Lati fipamọ awọn orisun.

Ti daba lati yipada si ondemand, ati ki o mu dara pm.max_children Ati awọn paramita miiran:

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

Kini idi ti o fẹ yi pada bi eleyi?

  • pm = dynamic: Pin awọn ilana diẹ sii ni irọrun lati yago fun idaduro ibeere ti o le fa nipasẹ ondemand;
  • pm.max_children = 16: Dena awọn aṣiṣe 500 ti o ṣẹlẹ nipasẹ awọn ilana diẹ diẹ;
  • pm.start_servers = 5: Yẹra fun ibẹrẹ ilana ti o lọra;
  • pm.max_requests = 3000:Idilọwọ awọn n jo iranti, atunlo ilana nigbagbogbo.

2. Ṣe idinwo akoko ipaniyan ti awọn iwe afọwọkọ PHP lati ṣe idiwọ igbaduro igba pipẹ

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

Eleyi le se diẹ ninu awọnAwọn iwe afọwọkọ PHP ti o lo Sipiyu pupọ le mu mọlẹ olupin rẹ,

Lẹhin fifipamọ, tun bẹrẹ ilana PHP:

sudo systemctl restart php8.3-fpm

Mu ibojuwo ipo PHP-FPM ṣiṣẹ lati tọju abala ilọsiwaju naa nigbakugba

Mu ibojuwo ilana PHP-FPM ṣiṣẹ ki o wo nigbakugbaNọmba lọwọlọwọ ti awọn ilana ṣiṣe ati ipo iduro ibeere, lati yago fun apọju olupin.

Ninu php-fpm.conf Ṣe afikun si:

pm.status_path = /status

Lẹhinna, iṣeto 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;
}

Ni ọna yii, o le http://yourdomain.com/status Ṣayẹwo PHP-FPM ni iṣe!

Mu awọn igbasilẹ PHP-FPM pọ si lati yara yanju awọn iṣoro

Ninu php-fpm.conf Fi kun un:

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

Ni ọna yii, nigbakugba ti aṣiṣe 500 ba waye, o le wo akọọlẹ naa taara:

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

Wo boya PHP ṣe ijabọ aṣiṣe kan, bii out of memory,script execution timeout 等。?

Tun PHP-FPM bẹrẹ nigbagbogbo lati ṣe idiwọ jijo iranti

anfani lati kọja cron Tun PHP-FPM bẹrẹ nigbagbogbo lati ṣe idiwọ awọn ilana ṣiṣe pipẹ lati faMemory jo,

crontab -e

Ṣafikun iṣẹ ṣiṣe eto atẹle lati tun bẹrẹ PHP-FPM laifọwọyi ni 3 owurọ ni gbogbo ọjọ:

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

Kini ti iṣoro naa ba tẹsiwaju? Siwaju iṣapeye!

Ti o ba tun tẹle iṣapeye ti o wa lokeNigbakugba awọn aṣiṣe 500 waye, o le tẹsiwaju pẹlu awọn iṣapeye wọnyi:

1. Mu OPcache ṣiṣẹ lati mu iṣẹ ṣiṣe ṣiṣe PHP dara si

Ti OPcache ko ba ṣiṣẹ sibẹsibẹ, o le fi sii bii eyi (lilo Ubuntu gẹgẹbi apẹẹrẹ):

sudo apt install php8.3-opcache -y

Lẹhinna ṣatunkọ php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1

Ipa? Iyara ipaniyan oju-iwe PHP ti ni ilọsiwaju pupọ!

2. Nginx iṣeto ni iṣapeye

Rii daju pe awọn paramita ti o ni ibatan Nginx jẹ oye, gẹgẹbi fastcgi_read_timeout Ṣatunṣe ni deede lati yago fun awọn iwe afọwọkọ PHP ti pari nipasẹ Nginx nitori akoko ipaniyan pipẹ:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Lakotan: Mu PHP-FPM pọ si ati pe oju opo wẹẹbu kii yoo jamba mọ!

Awọn atunṣe wo ni a ti ṣe lẹhin iṣapeye yii?

✅ Ti o dara ju adagun ilana PHP-FPM, lilo ondemandAti ki o je ki pm.max_children paramita;
Idiwọn akoko ipaniyan ti awọn iwe afọwọkọ PHP, lati se gun-igba Sipiyu ojúṣe;
Mu ibojuwo PHP-FPM ṣiṣẹ, wo fifuye ilana ni akoko gidi;
Nmu awọn akọọlẹ PHP-FPM silẹ, ni kiakia laasigbotitusita 500 aṣiṣe;
Tun PHP-FPM bẹrẹ nigbagbogbo, idilọwọ awọn n jo iranti;
Mu OPcache ṣiṣẹ, mu PHP ipaniyan ṣiṣe;
Ṣiṣeto Iṣeto Nginx dara julọ, lati yago fun akoko awọn oran.

Lẹhin iṣapeye yii, fifuye PHP-FPM yoo dinku pupọ ati pe iṣẹ oju opo wẹẹbu yoo jẹ iduroṣinṣin diẹ sii! 🔥

Lọ gbiyanju o bayi! 💪🚀

发表 评论

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti o nilo ni a lo * 标注

Yi lọ si Top