Procesi HestiaCP php-fpm merr shumë burime të CPU-së Si mund ta optimizoj?

HestiaCP Rritja e CPU-së së serverit? Një udhëzues i plotë për optimizimin e procesit PHP-FPM!

Procesi HestiaCP php-fpm merr shumë burime të CPU-së Si mund ta optimizoj?

A është CPU e serverit gjithmonë në 100%? Tifozja po rrotullohet egërsisht? A po ngadalësohet shpejtësia e hapjes së faqes në internet?Fajtori mund të jetë php-fpm!

Kohët e fundit zbulova chenweiliang.com Kjo pishinë PHP php-fpm Procesi e gëlltiti CPU-në si një çmenduri, dhe serveri u bllokua!

Për të ringjallur serverin, provova një sërë metodash optimizimi dhe më në fund ia dola të zvogëloja përdorimin e CPU-së.

Tani, le ta ndajmë këtë Udhëzues për optimizim efikas!🚀

1. Kufizoni numrin e proceseve php-fpm

php-fpm cilësimet e paracaktuara mund tëe pakufizuarProcesi krijohet në mënyrë të pakontrolluar, duke shkaktuar mbingarkimin e CPU-së së serverit.

Për ta optimizuar atë, ne mund të modifikojmë parametrat e menaxhimit të procesit.

hapur php-fpm Skedarët e konfigurimit:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Ndryshoni në versionin tuaj të PHP-së, siç është PHP8.3, dhe ndryshojeni atë në këtë:/etc/php/8.3/fpm/pool.d/www.conf

Kërko versionin PHP të vendosur nga HestiaCP

v-list-web-domain user domain.com

E.g:

v-list-web-domain abc chenweiliang.com

Në dalje, do të shihni diçka të tillë:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Kjo do të thotë që faqja e internetit përdor PHP 8.3.

Gjeni dhe modifikoni parametrat e mëposhtëm:

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

Pastaj rindizni php-fpm Për ta bërë atë efektiv:

sudo systemctl restart php-fpm

efekt: Kufizoni numrin e proceseve për të parandaluar php-fpm nga mbikonsumimi i burimeve të CPU.

2. Aktivizo OPCache (për të përmirësuar performancën e PHP)

PHP riparon kodin sa herë që ekzekutohet, gjë që është humbje burimesh.
Zgjidhja? Aktivizo OPCache dhe ruaj kodin tënd PHP!

编辑 php.ini dokument:

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

Shtoni ose modifikoni sa vijon:

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

Pas ruajtjes, rinisni procesin PHP:

sudo systemctl restart php8.3-fpm

efekt: Zvogëloni analizimin e përsëritur të kodit PHP, zvogëloni ngarkesën e CPU-së dhe përmirësoni efikasitetin e ekzekutimit.

3. Kufizoni kohën maksimale të ekzekutimit të skripteve PHP

Nëse një skript PHP funksionon për një kohë të gjatë, burimet e CPU-së do të zënë vazhdimisht.
Vendosja e një periudhe të arsyeshme kohore mund të parandalojë që proceset "kokëfortë" të pushtojnë serverin për një kohë të gjatë.

hapur php.ini dokument:

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

Ndryshoni parametrat e mëposhtëm:

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

Pastaj rinisni procesin PHP:

sudo systemctl restart php-fpm

efekt: Parandaloni funksionimin e proceseve PHP për një kohë të gjatë dhe zvogëloni humbjen e burimeve të CPU.

4. Kontrollo MySQL Pyetje e ngadaltë

PHP-FPM ka një ngarkesë të lartë,Mund të shkaktohet nga pyetja e ngadaltë SQL!
开启 MySQL Regjistri i ngadaltë i pyetjeve, zbuloni deklaratat SQL që po pengojnë.

Redaktoni skedarin e konfigurimit MySQL:

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

Shto në:

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

Pas ruajtjes, rinisni MySQL:

sudo systemctl restart mysql

Më pas përdorni mysqldumpslow Analizoni pyetjet e ngadalta:

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

efekt: Zbuloni pyetjet SQL që kërkojnë kohë, optimizoni performancën e bazës së të dhënave dhe ulni në mënyrë indirekte ngarkesën PHP.

5. Kufizoni përdorimin e burimeve të Memcached

Duke parë listën e proceseve, gjeta Përdorimi i CPU-së i procesit Memcached është 24.8%!
Mund të ndodhë që shpërndarja e cache-it është shumë e madhe, duke bërë që CPU të përpunojë një sasi të madhe të dhënash.

调整 memcached Konfigurimi:

sudo nano /etc/memcached.conf

Rishikoni:

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

Pastaj rindizni:

sudo systemctl restart memcached

efekt: Ulni ngarkesën e CPU-së të procesit Memcached dhe përmirësoni efikasitetin e cache-it.

6. Aktivizo Nginx të ruajë burimet statike

Shumë herë, PHP përpunon kërkesa që përmbajnë një numër të madh të CSS, JS, imazhe, por këta skedarë nuk kanë nevojë fare për analizë PHP!
Zgjidhja? Përdorni Nginx për të memorizuar burimet statike!

Ndrysho konfigurimin e Nginx:

sudo nano /etc/nginx/nginx.conf

Shto në:

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

Pas ruajtjes, rinisni Nginx:

sudo systemctl restart nginx

efekt: Zvogëloni numrin e herëve që PHP përpunon skedarë statikë dhe reduktoni përdorimin e CPU-së.

7. Gjeni skriptin PHP që përdor më shumë CPU

Nëse CPU është ende shumë i lartë pas optimizimit, mund të ndodhë që disa skripte PHP po funksionojnë pa masë.
Përdorni komandën e mëposhtme për të zbuluar procesin PHP me përdorimin më të lartë të CPU:

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

Nëse zbuloni se një skript PHP po merr shumë CPU, mund ta vrisni drejtpërdrejt:

kill -9 PID

efekt:Identifikoni me saktësi "mollët e këqija" dhe parandaloni që procesi PHP të pushtojë CPU-në për një kohë të gjatë.

Përmbledhje: 7 mënyra për të optimizuar PHP-FPM

Kufizoni numrin e proceseve PHP-FPM, për të parandaluar mbingarkimin e CPU-së
Aktivizo OPCache, zvogëloni analizimin e përsëritur të kodit PHP
Vendosja e afatit të PHP-së, për të parandaluar funksionimin afatgjatë
Kontrollimi i pyetjeve të ngadalta të MySQL, optimizoni performancën e pyetjeve të bazës së të dhënave
Rregulloni kujtesën e memorizuar, duke reduktuar barrën e CPU-së
Aktivizo cache statike Nginx, duke reduktuar barrën e analizimit të PHP
Gjeni skriptet PHP me përdorim të lartë të CPU-së, optimizim i saktë

në përfundim

Optimizimi i serverit është si palestër, ju duhet të bëni rregullime të sakta dhe mos u ngatërroni!
Pas një sërë optimizimesh, ngarkesa e CPU-së së serverit tim ka rënë nga 80% deri në 15%, faqja hapet dy herë më shpejt!
Nëse serveri juaj ka probleme të ngjashme, provoni këto metoda! 💪

???? Merrni masa tani! Optimizoni PHP-FPM tuaj dhe ruani serverin tuaj! 🚀

发表 评论

Adresa juaj e emailit nuk do të publikohet. Përdoren fushat e kërkuara * Etiketa

Scroll to Top