Mchakato wa HestiaCP php-fpm unachukua rasilimali nyingi za CPU ninawezaje kuiboresha?

HestiaCP Kuongezeka kwa CPU ya seva? Mwongozo kamili wa kuboresha mchakato wa PHP-FPM!

Mchakato wa HestiaCP php-fpm unachukua rasilimali nyingi za CPU ninawezaje kuiboresha?

Je, seva ya CPU huwa iko 100% kila wakati? Shabiki anazunguka kwa fujo? Je, kasi ya kufungua tovuti inapungua?Mtuhumiwa anaweza kuwa php-fpm!

Hivi majuzi niligundua chenweiliang.com Dimbwi hili la PHP php-fpm Mchakato ulikula CPU kama wazimu, na seva ikaanguka!

Ili kufufua seva, nilijaribu safu ya njia za utoshelezaji na mwishowe nikafanikiwa kupunguza utumiaji wa CPU.

Sasa, hebu tushiriki hii Mwongozo wa Uboreshaji Bora! 🚀

1. Weka kikomo idadi ya michakato ya php-fpm

mipangilio chaguo-msingi ya php-fpm inawezaisiyo na kikomoMchakato huu umeundwa bila kudhibitiwa, na kusababisha CPU ya seva kupakia kupita kiasi.

Ili kuiboresha, tunaweza kurekebisha vigezo vya usimamizi wa mchakato.

washa php-fpm Faili za Usanidi:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Badilisha kwa toleo lako la PHP, kama vile PHP8.3, na ubadilishe kuwa hii:/etc/php/8.3/fpm/pool.d/www.conf

Hoji toleo la PHP lililowekwa na HestiaCP

v-list-web-domain user domain.com

Mfano:

v-list-web-domain abc chenweiliang.com

Katika pato, utaona kitu kama:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Hii ina maana kwamba tovuti hutumia PHP 8.3.

Pata na urekebishe vigezo vifuatavyo:

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

Kisha washa upya php-fpm Ili kuifanya iwe na ufanisi:

sudo systemctl restart php-fpm

athari: Weka kikomo idadi ya michakato ili kuzuia php-fpm kutoka kwa kutumia rasilimali za CPU kupita kiasi.

2. Washa OPCache (ili kuboresha utendaji wa PHP)

PHP hubadilisha msimbo kila wakati inapotekelezwa, ambayo ni upotezaji wa rasilimali.
Suluhisho? Washa OPCache na uhifadhi msimbo wako wa PHP!

编辑 php.ini faili:

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

Ongeza au rekebisha yafuatayo:

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

Baada ya kuhifadhi, anza tena mchakato wa PHP:

sudo systemctl restart php8.3-fpm

athari: Punguza uchanganuzi unaorudiwa wa msimbo wa PHP, punguza mzigo wa CPU, na uboresha ufanisi wa utekelezaji.

3. Weka kikomo muda wa juu zaidi wa utekelezaji wa hati za PHP

Ikiwa hati ya PHP itaendeshwa kwa muda mrefu sana, rasilimali za CPU zitaendelea kukaliwa.
Kuweka muda unaofaa wa kuisha kunaweza kuzuia michakato ya "ukaidi" kuchukua seva kwa muda mrefu.

washa php.ini faili:

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

Rekebisha vigezo vifuatavyo:

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

Kisha anza tena mchakato wa PHP:

sudo systemctl restart php-fpm

athari: Zuia michakato ya PHP kufanya kazi kwa muda mrefu na punguza upotezaji wa rasilimali ya CPU.

4. Angalia MySQL Swali la polepole

PHP-FPM ina mzigo mkubwa,Inaweza kusababishwa na swala la polepole la SQL!
开启 MySQL Kumbukumbu ya hoja polepole, tafuta taarifa za SQL ambazo zinazuia.

Hariri faili ya usanidi ya MySQL:

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

Ongeza kwa:

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

Baada ya kuhifadhi, anza tena MySQL:

sudo systemctl restart mysql

Kisha tumia mysqldumpslow Changanua maswali ya polepole:

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

athari: Jua maswali ya SQL yanayotumia muda, boresha utendakazi wa hifadhidata, na upunguze mzigo wa PHP kwa njia isiyo ya moja kwa moja.

5. Punguza matumizi ya rasilimali iliyohifadhiwa

Kuangalia orodha ya mchakato, nilipata Mchakato wa Memcached matumizi ya CPU ni 24.8%!
Huenda mgao wa akiba ni mkubwa sana, na kusababisha CPU kuchakata kiasi kikubwa cha data.

调整 memcached Usanidi:

sudo nano /etc/memcached.conf

Kagua:

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

Kisha washa upya:

sudo systemctl restart memcached

athari: Punguza mzigo wa CPU wa mchakato wa Memcached na uboresha ufanisi wa akiba.

6. Washa Nginx kuweka akiba ya rasilimali tuli

Mara nyingi, PHP huchakata maombi ambayo yana idadi kubwa ya CSS, JS, picha, lakini faili hizi hazihitaji uchanganuzi wa PHP hata kidogo!
Suluhisho? Tumia Nginx kuweka akiba ya rasilimali tuli!

Hariri usanidi wa Nginx:

sudo nano /etc/nginx/nginx.conf

Ongeza kwa:

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

Baada ya kuhifadhi, anza tena Nginx:

sudo systemctl restart nginx

athari: Punguza idadi ya mara PHP huchakata faili tuli na kupunguza matumizi ya CPU.

7. Tafuta hati ya PHP inayotumia CPU nyingi zaidi

Ikiwa CPU bado iko juu sana baada ya uboreshaji, inaweza kuwa kwamba hati zingine za PHP zinaendeshwa kwa fujo.
Tumia amri ifuatayo ili kujua mchakato wa PHP na matumizi ya juu zaidi ya CPU:

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

Ukigundua kuwa hati ya PHP inachukua CPU nyingi sana, unaweza kuiua moja kwa moja:

kill -9 PID

athari:Tambua kwa usahihi "matofaa mabaya" na uzuie mchakato wa PHP kuchukua CPU kwa muda mrefu.

Muhtasari: Njia 7 za kuboresha PHP-FPM

Weka kikomo idadi ya michakato ya PHP-FPM, ili kuzuia upakiaji wa CPU kupita kiasi
Washa OPCache, punguza uchanganuzi unaorudiwa wa msimbo wa PHP
Kuweka muda wa PHP kuisha, kuzuia operesheni ya muda mrefu
Kuangalia maswali ya polepole ya MySQL, boresha utendakazi wa hoja ya hifadhidata
Rekebisha Kumbukumbu Iliyohifadhiwa, kupunguza mzigo wa CPU
Washa akiba tuli ya Nginx, kupunguza mzigo wa uchanganuzi wa PHP
Pata hati za PHP za matumizi ya juu ya CPU, uboreshaji sahihi

hitimisho

Uboreshaji wa seva ni kama usawa, unahitaji kufanya marekebisho sahihi na usisumbue!
Baada ya mfululizo wa uboreshaji, mzigo wangu wa CPU kwenye seva umeshuka kutoka 80% hadi 15%, tovuti inafungua mara mbili haraka!
Ikiwa seva yako ina shida sawa, jaribu njia hizi! 💪

???? Chukua hatua sasa! Boresha PHP-FPM yako na uhifadhi seva yako! 🚀

发表 评论

Barua pepe yako haitachapishwa. 必填 项 已 用 * 标注

Saraka ya Nakala
Kitabu ya Juu