HestiaCP PHP-FPM зери бори вазнин аст? Хатои веб саҳифаи динамикӣ 500? Ин оптимизатсия фавран эътибор пайдо мекунад!

Директорияи мақолаҳо

Оё шумо ягон бор бо ин вазъият дучор шудаед?Дастрасии вебсайт ногаҳон суст шуд, ё ҳатто боиси хатогии 500 шуд, пас аз бозоғозии PHP-FPM, он ба ҳолати муқаррарӣ баргашт., аммо мушкилот пас аз муддате дубора пайдо мешавад? Ин хеле рӯҳафтода аст!

Чаро ин рӯй медиҳад?Дар асл, ин одатан астҲавзи раванди PHP-FPM дуруст танзим карда нашудааст ё захираҳои сервер нокифоя мебошанд.боиси. Имрӯз, мо ҳамаҷониба оптимизатсия мекунем HestiaCP PHP-FPM дар зери кулоҳ вебсайтро ҳамчун санг устувор месозад!

Сабаби асосии PHP-FPM аз ҳад зиёд бор кардан

PHP-FPM як астМенеҷери раванд, ки барои коркарди дархостҳои динамикӣ масъул аст. Агар конфигуратсия оқилона набошад, он метавонад боиси:

  • Захираҳои сервер тамом шудаанд, боиси он мегардад, ки PHP-FPM ба дархостҳои нав сари вақт ҷавоб дода наметавонад;
  • Равандҳои хеле кам, вакте ки трафик якбора зиёд мешавад, онро сари вакт коркард кардан мумкин нест;
  • Истифодаи раванд хеле зиёд аст, боиси таркиши сарбории CPU мегардад.

HestiaCP PHP-FPM зери бори вазнин аст? Хатои веб саҳифаи динамикӣ 500? Ин оптимизатсия фавран эътибор пайдо мекунад!

Чӣ тавр фаҳмидан мумкин аст, ки PHP-FPM аз ҳад зиёд бор карда шудааст?

истифода бурда метавонад tophtop Фармон барои дидани CPU ва истифодаи хотира:

top -c

Агар шумо маълумоти коркарди шабеҳи зеринро бинед, ин маънои онро дорад, ки PHP-FPM дар зери бори зиёд кор мекунад:

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

Бубинед, ки чӣ гуна ин равандҳо зиёда аз 70% CPU-ро мегиранд? Агар ин зуд-зуд рӯй диҳад, PHP-FPM-и шумо Мушкилот бояд бошад!

Пас, чӣ гуна мо метавонем конфигуратсияи PHP-FPM-ро оптимизатсия кунем, то сервер дигар аз ҳад зиёд пурбор нашавад?

Оптимизатсияи ҳавзи равандҳои PHP-FPM (тасҳеҳи параметрҳои асосӣ)

Якум, кушоед php-fpm Файлҳои конфигуратсия:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Ба версияи PHP-и худ, ба монанди PHP8.3, тағир диҳед ва онро ба ин тағир диҳед:/etc/php/8.3/fpm/pool.d/www.conf

Нусхаи PHP-и аз ҷониби HestiaCP муқарраршударо пурсед

v-list-web-domain user domain.com

Э.

v-list-web-domain abc chenweiliang.com

Дар баромад шумо чизеро мебинед:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Ин маънои онро дорад, ки вебсайт истифода мебарад PHP 8.3.

Биёед конфигуратсияи PHP-FPM-и шуморо бубинем:

[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

Шумо мебинед, ки шумо pm Яке истифода мешавад ondemand,Гарчанде ки он метавонад истифодаи захираҳоро дар вақти бекорӣ кам кунад, вақте ки трафик якбора зиёд мешавад, раванд метавонад сари вақт вокуниш нишон дода наметавонад., дар натиҷа хатогии 500 ба вуҷуд омад.

www.conf: "Ҳавзи захираҳои универсалӣ"-и дарунсохти система

Пас аз насб кардани PHP-FPM, система ба таври худкор ба шумо... www.conf ҳуҷҷат.
ОнҶойгиршавӣИн хеле содда аст - ин танҳо як ҳавзи равандҳои пешфарз аст, ки аз қуттӣ кор мекунад ва одатан ба он пайваст карда мешавад... www-data Боргирии корбар.

Ин намуди ҳавз махсусан барои муҳитҳои яккаса мувофиқ аст: конфигуратсия сабук аст ва параметрҳо ҳама қолибҳои умумӣ мебошанд, ба монанди:

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

Агар шумо танҳо як сайтро ҷойгир кунед, шумо метавонед онро мустақиман ва боэътимод бе ягон мушкилоти иловагӣ истифода баред.

etUFO.org.conf: Ҳавзи фармоишӣ

Пас аз он ки шумо якчанд сайтро идора мекунед, шумо наметавонед ҳамаро дар як ҳавз банд нигоҳ доред.
Дар ин лаҳза, HestiaCP ба таври худкор барои ҳар як сайт ҳавзи алоҳида эҷод мекунад, масалан... etUFO.org.confБарои номҳои домейнҳо махсусгардонида шудааст etufo.org 服务。

Роҳи маъмули бозӣ ин аст:

  • Иваз кардани корбарон ва гурӯҳҳо:user = etufo,group = etufo
  • Мониторинги мустақил:listen = /run/php/etufo.sock
  • Танзими шумораи равандҳо ҳатто дар шароити ҳамзамон будани баланд устувории комилро таъмин мекунад.
  • Файлҳои алоҳидаи сабти ном ҳалли мушкилотро равшантар мекунанд.

Манфиатҳо маълуманд:Изолятсияи бехатарҲатто агар як сайт осеб бинад ҳам, сайтҳои дигар бетаъсир мемонанд.

dummy.conf: файли сохташуда

dummy.conf Инҳо одатан намунаҳо ё шаблонҳое мебошанд, ки система пешниҳод мекунад.
Агар шумо онро дастӣ тағир надиҳед ва фаъол накунед, он дар асл кор намекунад.
Аҳамияти он бештар ба "дастури амалиётӣ" монанд аст, ки ба шумо мегӯяд, ки чӣ гуна конфигуратсияи нави ҳавзро нависед.

Чаро ҳавзро тақсим кардан лозим аст?

  • 安全 性Барои пешгирӣ аз иҷозатномаҳои мухолиф, корбарони гуногунро барои сайтҳои гуногун истифода баред.
  • 性能优化Шумораи равандҳоро барои ҳар як ҳавз алоҳида танзим кардан мумкин аст, ки имкон медиҳад танзимоти чандир дар асоси талаботи трафик анҷом дода шаванд.
  • Ҷудогона буданСабтҳо, хатогиҳо ва суроғаҳои гӯшкунӣ ҳама аз ҳам ҷудо карда шудаанд, ки ҳалли мушкилотро осонтар мекунад.

Масалан: ҳатто агар www.conf Он фурӯ рехт.etufo.org.conf Он ҳоло ҳам ба таври муқаррарӣ кор хоҳад кард ва тамоми серверро аз кор намебарорад.

实际场景

  • Сервери яккаса: www.conf кифоя аст.
  • Сервери бисёрсайтӣҲар як сайт файли мустақили .conf-и худро дорад, ба монанди etufo.org.conf.
  • dummy.confТанҳо барои истинод, тавсия дода намешавад.

Муқоисаи конфигуратсия

www.conf (ҳавзи пешфарз)

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

etufo.org.conf (Ҳавзи фармоишӣ)

[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

Фарқи асосӣ ин аст:Муайянкунии корбар, суроғаи гӯшкунӣ, шумораи равандҳо.

1. Параметрҳои ҳавзи раванди PHP-FPM-ро танзим кунед

Агар конфигуратсия истифода барад dynamicИн усули пешаки оғоз кардани баъзе равандҳои корӣ ва ба таври динамикӣ танзим кардани онҳо мувофиқи ҳаҷми дархост мебошад, ки ҳангоми ногаҳон зиёд шудани ҳаҷми дархост метавонад зудтар ҷавоб диҳад.

Барои вебсайтҳое, ки миқдори муайяни трафик доранд, тавсия дода мешавад, ки истифода баранд pm = dynamicЗеро он метавонад миқдори муайяни равандҳои бекориро нигоҳ дорад ва ҳангоми ҳамоҳангии баланд 500 хатогиро пешгирӣ кунад.

Тавсия дода мешавад, ки онро танҳо вақте истифода баред, ки ҳаҷми дастрасӣ бениҳоят паст ва захираҳои хотира танг аст. pm = ondemand Барои сарфаи ресурсхо.

Тавсия дода мешавад dynamic, ва оптимизатсия pm.max_children Ва параметрҳои дигар:

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

Чаро шумо мехоҳед онро чунин тағир диҳед?

  • pm = dynamic: Ҷудо кардани равандҳо чандиртар барои пешгирӣ кардани интизории дархост, ки аз сабаби талабот ба вуҷуд омадааст;
  • pm.max_children = 16: Пешгирии 500 хатогиҳое, ки дар натиҷаи ками равандҳо ба вуҷуд омадаанд;
  • pm.start_servers = 5: Оғози сусти равандро пешгирӣ кунед;
  • pm.max_requests = 3000:Пешгирии ихроҷи хотира, равандро мунтазам коркард кунед.

2. Маҳдуд кардани вақти иҷрои скриптҳои PHP барои пешгирии ишғоли дарозмуддат

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

Ин метавонад баъзеҳоро пешгирӣ кунадСкриптҳои PHP, ки CPU аз ҳад зиёд истифода мебаранд, метавонанд сервери шуморо барҳам диҳанд.

Пас аз захиракунӣ, раванди PHP-ро аз нав оғоз кунед:

sudo systemctl restart php8.3-fpm

Мониторинги ҳолати PHP-FPM-ро фаъол созед, то пешрафтро дар вақти дилхоҳ пайгирӣ кунед

Мониторинги раванди PHP-FPM-ро фаъол созед ва онро дар вақти дилхоҳ бубинедШумораи ҷории равандҳои фаъол ва ҳолати интизории дархост, барои пешгирӣ кардани аз ҳад зиёди сервер.

php-fpm.conf Иловашуда дар:

pm.status_path = /status

Сипас, конфигуратсияи 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;
}

Бо ин роҳ, шумо метавонед http://yourdomain.com/status PHP-FPM-ро дар амал санҷед!

Барои зуд бартараф кардани мушкилот сабтҳои PHP-FPMро оптимизатсия кунед

php-fpm.conf Илова ба:

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

Бо ин роҳ, вақте ки хатогии 500 рух медиҳад, шумо метавонед мустақиман гузоришро бубинед:

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

Бубинед, ки оё PHP дар бораи хатогӣ хабар медиҳад, масалан out of memory,script execution timeout Интизор шавед.

Барои пешгирии ихроҷи хотира PHP-FPM-ро мунтазам бозоғоз намоед

гузаштан мумкин аст cron PHP-FPM-ро мунтазам бозоғоз намоед, то равандҳои тӯлонӣ аз боиси он пешгирӣ карда шавандИхроҷи хотира.

crontab -e

Барои ба таври худкор бозоғоз кардани PHP-FPM дар соати 3 ҳар рӯз вазифаи ба нақша гирифташудаи зеринро илова кунед:

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

Чӣ мешавад, агар мушкилот боқӣ монад? Оптимизатсияи минбаъда!

Агар шумо ба ҳар ҳол оптимизатсияи дар боло зикршударо риоя кунедБаъзан 500 хатогӣ рӯй медиҳад, шумо метавонед бо оптимизатсияҳои зерин идома диҳед:

1. OPcache-ро барои беҳтар кардани самаранокии иҷрои PHP фаъол созед

Агар OPcache ҳанӯз фаъол нашуда бошад, шумо метавонед онро чунин насб кунед (бо истифода аз Ubuntu ҳамчун мисол):

sudo apt install php8.3-opcache -y

Сипас таҳрир кунед php.ini:

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

Таъсир? Суръати иҷрои саҳифаи PHP хеле беҳтар шудааст!

2. Оптимизатсияи конфигуратсияи Nginx

Боварӣ ҳосил кунед, ки параметрҳои марбут ба Nginx оқилонаанд, масалан fastcgi_read_timeout Онро дуруст танзим кунед, то ки скриптҳои PHP аз ҷониби Nginx бо сабаби вақти тӯлонии иҷро қатъ карда шаванд:

fastcgi_read_timeout 60s;
client_max_body_size 100M;

Хулоса: PHP-FPM-ро оптимизатсия кунед ва вебсайт дигар вайрон намешавад!

Пас аз ин оптимизатсия мо чӣ гуна ислоҳот ворид кардем?

✅ Оптимизатсияи ҳавзи равандҳои PHP-FPM, истифода баред ondemandВа оптимизатсия pm.max_children параметр;
Маҳдуд кардани вақти иҷрои скриптҳои PHP, барои пешгирии ишғоли CPU дарозмуддат;
Мониторинги PHP-FPM-ро фаъол созед, дидани сарбории раванд дар вақти воқеӣ;
Оптимизатсияи гузоришҳои PHP-FPM, зуд бартараф кардани хатогиҳои 500;
PHP-FPM-ро мунтазам бозоғоз намоед, пешгирии ихроҷи хотира;
OPcache-ро фаъол созед, баланд бардоштани самаранокии иҷрои PHP;
Оптимизатсияи конфигуратсияи Nginx, барои роҳ надодан ба мушкилоти вақтхушӣ.

Пас аз ин оптимизатсия, сарбории PHP-FPM хеле кам мешавад ва кори вебсайт устувортар хоҳад шуд! 🔥

Ҳоло биравед, кӯшиш кунед! 💪🚀

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) муштарак "Сарбории HestiaCP PHP-FPM хеле зиёд аст? Хатои веб саҳифаи динамикӣ 500? Ин оптимизатсия фавран эътибор пайдо мекунад! ”, он метавонад ба шумо муфид бошад.

Хуш омадед ба мубодилаи истиноди ин мақола:https://www.chenweiliang.com/cwl-32512.html

Барои кушодани ҳилаҳои пинҳонии бештар🔑, хуш омадед ба канали мо дар Telegram ҳамроҳ шавед!

Поделиться ва лайк, агар ба шумо писанд омад! Саҳмияҳо ва лайкҳои шумо ангезаи доимии мо мебошанд!

 

发表 评论

Суроғаи почтаи электронии шумо нашр намешавад. 必填 项 已 用 * Нишон

Акс аз бойгонӣ