U prucessu HestiaCP php-fpm occupa assai risorse di CPU Cumu possu ottimisimu?

Picchi di CPU di u servitore HestiaCP ? Una guida cumpleta per l'ottimisazione di u prucessu PHP-FPM!

U prucessu HestiaCP php-fpm occupa assai risorse di CPU Cumu possu ottimisimu?

A CPU di u vostru servitore hè custantemente à 100%? I ventilatori giranu cum'è pazzi? U vostru situ web si carica pianu pianu? U culpevule puderia esse php-fpm!

Aghju scupertu pocu tempu chenweiliang.com Questa piscina PHP php-fpm U prucessu hà cunsumatu assai a CPU, è u servitore s'hè schiantatu!

Per rilancià u servitore, aghju pruvatu una seria di metudi d'ottimisazione è infine sò riesciutu à riduce l'usu di a CPU.

Avà, spartemu sta guida d'ottimisazione efficiente ! 🚀

1. Limità u numeru di prucessi php-fpm

I paràmetri predefiniti per php-fpm ponu creà un numeru illimitatu di prucessi, causendu un sovraccaricu di a CPU di u servitore.

Per ottimisà lu, pudemu mudificà i parametri di gestione di u prucessu.

accende php-fpm File di cunfigurazione:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Cambiate à a vostra versione di PHP, cum'è PHP8.3, è cambiatela à questu:/etc/php/8.3/fpm/pool.d/www.conf

Interroga a versione PHP stabilita da HestiaCP

v-list-web-domain user domain.com

P.e.:

v-list-web-domain abc chenweiliang.com

In u output, vi vede qualcosa cum'è:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Questu indica chì u situ web usa PHP 8.3.

Locate è mudificà i seguenti parametri:

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

Allora reboot php-fpm Per rende efficace:

sudo systemctl restart php-fpm

✅Effettu : Limita u numeru di prucessi per impedisce à php-fpm di cunsumà eccessivamente risorse di CPU.

2. Habilita OPCache (per migliurà u rendiment PHP)

PHP ripara u codice ogni volta chì hè eseguitu, chì hè un perdu di risorse.
A suluzione ? Habilita OPCache è cache u vostru codice PHP!

编辑 php.ini schedariu:

sudo nano /etc/php/*/fpm/php.ini

Aghjunghjite o mudificà i seguenti:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0  # 禁用实时检测,提高性能

Dopu avè salvatu, ripigliate u prucessu PHP:

sudo systemctl restart php8.3-fpm

✅Risultati : Riduce l'analisi ripetitiva di u codice PHP, riduce u caricu di a CPU è migliora l'efficienza di l'esecuzione.

3. Limità u tempu massimu di esecuzione di script PHP

Se un script PHP corre per troppu longu, i risorse di CPU seranu continuamente occupati.
Stabilisce un periodu di timeout raghjone pò impedisce à i prucessi "stubborn" di occupà u servitore per un bellu pezzu.

accende php.ini schedariu:

sudo nano /etc/php/*/fpm/php.ini

Mudificà i seguenti paràmetri:

max_execution_time = 30  # PHP 脚本最多执行 30max_input_time = 30  # 处理输入数据最多 30memory_limit = 256M  # 限制单个 PHP 进程的内存占用

Allora ripigliate u prucessu PHP:

sudo systemctl restart php-fpm

✅Effettu : Impedisce à i prucessi PHP di esse eseguiti per periodi estesi, riducendu u sprecu di risorse di a CPU.

4. Verificate MySQL Quistione lenta

PHP-FPM hà una carica alta,Pò esse causatu da a dumanda SQL lenta!
Accende MySQL Log di quistione lenta, scopre e dichjarazioni SQL chì si fermanu.

Edite u schedariu di cunfigurazione MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Aghjunghjite à:

slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1  # 超过 1 秒的查询会被记录

Dopu avè salvatu, riavvia MySQL:

sudo systemctl restart mysql

Allora aduprate mysqldumpslow Analizà e dumande lente:

mysqldumpslow -s c -t 10 /var/log/mysql-slow.log

✅Risultatu : Identificate e dumande SQL chì cunsumanu tempu, ottimisate e prestazioni di a basa di dati è riduce indirettamente u caricu PHP.

5. Restrizioni memcached L'usu di risorse

Fighjendu a lista di u prucessu, aghju trovu L'usu di CPU di u prucessu Memcached hè 24.8%!
Pò esse chì l'allocazione di cache hè troppu grande, facendu chì a CPU processa una grande quantità di dati.

Ajustamentu memcached Cunfigurazione:

sudo nano /etc/memcached.conf

Revisione:

-m 32  # 限制 Memcached 内存使用 32MB

Allora reboot:

sudo systemctl restart memcached

✅Effettu : Riduce u caricu di a CPU nant'à u prucessu Memcached è migliurà l'efficienza di a cache.

6. Habilita Nginx per cache risorse statiche

Parechje volte, PHP processa richieste chì cuntenenu un gran numaru di CSS, JS, imagine, ma questi schedari ùn anu micca bisognu di analisi PHP !
A suluzione ? Aduprate Nginx per cache risorse statiche!

Edite a cunfigurazione Nginx:

sudo nano /etc/nginx/nginx.conf

Aghjunghjite à:

location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
    expires max;
    log_not_found off;
}

Dopu avè salvatu, riavvia Nginx:

sudo systemctl restart nginx

✅Risultatu : Riduce u numeru di volte chì PHP processa i fugliali statichi, riducendu cusì l'usu di a CPU.

7. Truvate u script PHP chì usa più CPU

Se u CPU hè sempre troppu altu dopu l'ottimisazione, pò esse chì certi script PHP sò in esecuzione salvatica.
Aduprate u cumandimu seguitu per sapè u prucessu PHP cù u più altu usu di CPU:

ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php

Se truvate chì un script PHP occupa troppu CPU, pudete tumbà direttamente:

kill -9 PID

✅Risultatu : Identifica accuratamente e "mele marce" è impedisce à i prucessi PHP d'occupà a CPU per periodi estesi.

Riassuntu: 7 modi per ottimisà PHP-FPM

Limite u numeru di prucessi PHP-FPM, per prevene u CPU overload
Habilita OPCache, riduce l'analisi ripetuta di codice PHP
Impostazione di u timeout PHP, per impedisce u funziunamentu à longu andà
Verificate e dumande lente di MySQL, ottimisate u rendiment di e dumande di basa di dati
Aghjustate a Memoria Memcached, riducendu a carica di CPU
Abilita a cache statica Nginx, riducendu a carica di analisi PHP
Truvate script PHP d'usu elevatu di CPU, ottimisazione precisa

in cunclusione

L'ottimisazione di u servitore hè cum'è fitness, avete bisognu di fà aghjustamenti precisi è ùn fate micca scherzi!
Dopu una seria di ottimisazioni, a mo carica di CPU di u servitore hè cascata 80% à 15%, u situ web apre duie volte più veloce !
Se u vostru servitore hà prublemi simili, pruvate questi metudi! 💪

👉Agite avà! Ottimisate u vostru PHP-FPM è salvate u vostru servitore! 🚀

发表 评论

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

Libru di Top