HestiaCP php-fpm-processen optager mange CPU-ressourcer. Hvordan kan jeg optimere den?

HestiaCP server CPU-stigninger? En komplet guide til PHP-FPM procesoptimering!

HestiaCP php-fpm-processen optager mange CPU-ressourcer. Hvordan kan jeg optimere den?

Er din servers CPU konstant på 100%? Drejer blæserne som en gal? Indlæses din hjemmeside langsomt? Synderen kan være php-fpm!

opdagede jeg for nylig chenweiliang.com Denne PHP pool php-fpm Processen åd CPU'en fuldstændig op, og serveren crashte!

For at genoplive serveren prøvede jeg en række optimeringsmetoder og lykkedes endelig med at reducere CPU-forbruget.

Lad os nu dele denne effektive optimeringsguide ! 🚀

1. Begræns antallet af php-fpm-processer

Standardindstillingerne for php-fpm kan oprette et ubegrænset antal processer, hvilket forårsager overbelastning af serverens CPU.

For at optimere det kan vi ændre processtyringsparametrene.

打开 php-fpm Konfigurationsfiler:

sudo nano /etc/php/*/fpm/pool.d/www.conf
  • *Skift til din PHP-version, f.eks. PHP8.3, og ændr den til denne:/etc/php/8.3/fpm/pool.d/www.conf

Forespørg PHP-versionen angivet af HestiaCP

v-list-web-domain user domain.com

For eksempel:

v-list-web-domain abc chenweiliang.com

I outputtet vil du se noget som:

PHP SUPPORT      yes
PHP MODE        php-fpm
PHP VERSION     8.3

Dette indikerer, at hjemmesiden bruger PHP 8.3.

Find og rediger følgende parametre:

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

Genstart derefter php-fpm For at gøre det effektivt:

sudo systemctl restart php-fpm

✅Effekt : Begrænser antallet af processer for at forhindre php-fpm i at bruge for meget CPU-ressourcer.

2. Aktiver OPCache (for at forbedre PHP-ydeevne)

PHP genskaber koden hver gang den udføres, hvilket er spild af ressourcer.
Løsningen? Aktiver OPCache og cache din PHP-kode!

编辑 php.ini dokument:

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

Tilføj eller rediger følgende:

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

Efter at have gemt, genstart PHP-processen:

sudo systemctl restart php8.3-fpm

✅Effekt : Reducerer gentagen parsing af PHP-kode, reducerer CPU-belastningen og forbedrer udførelseseffektiviteten.

3. Begræns den maksimale udførelsestid for PHP-scripts

Hvis et PHP-script kører for længe, ​​vil CPU-ressourcer være konstant optaget.
Indstilling af en rimelig timeoutperiode kan forhindre "stædige" processer i at optage serveren i lang tid.

打开 php.ini dokument:

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

Rediger følgende parametre:

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

Genstart derefter PHP-processen:

sudo systemctl restart php-fpm

✅Effekt : Forhindrer PHP-processer i at køre i længere perioder, hvilket reducerer spild af CPU-ressourcer.

4. Tjek MySQL Langsom forespørgsel

PHP-FPM har en høj belastning,Det kan være forårsaget af den langsomme SQL-forespørgsel!
开启 MySQL Langsom forespørgselslog, find ud af de SQL-sætninger, der holder tilbage.

Rediger MySQL-konfigurationsfilen:

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

添加:

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

Efter at have gemt, genstart MySQL:

sudo systemctl restart mysql

Brug derefter mysqldumpslow Analyser langsomme forespørgsler:

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

✅Resultat : Identificer tidskrævende SQL-forespørgsler, optimer databaseydelsen og reducer indirekte PHP-belastningen.

5. Begrænsninger memcached Ressourceforbrug

Da jeg kiggede på proceslisten, fandt jeg Memcached proces CPU-brug er 24.8%!
Det kan være, at cache-allokeringen er for stor, hvilket får CPU'en til at behandle en stor mængde data.

调整 memcached 配置 :

sudo nano /etc/memcached.conf

Revidere:

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

Genstart derefter:

sudo systemctl restart memcached

✅Effekt : Reducerer CPU-belastningen på Memcached-processen og forbedrer caching-effektiviteten.

6. Aktiver Nginx til at cache statiske ressourcer

Mange gange behandler PHP anmodninger, der indeholder et stort antal CSS, JS, billeder, men disse filer behøver slet ikke PHP-parsing!
Løsningen? Brug Nginx til at cache statiske ressourcer!

Rediger Nginx-konfiguration:

sudo nano /etc/nginx/nginx.conf

添加:

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

Efter at have gemt, genstart Nginx:

sudo systemctl restart nginx

✅Effekt : Reducerer antallet af gange PHP behandler statiske filer, hvilket sænker CPU-forbruget.

7. Find det PHP-script, der bruger mest CPU

Hvis CPU'en stadig er for høj efter optimering, kan det være, at nogle PHP-scripts kører vildt.
Brug følgende kommando til at finde ud af PHP-processen med det højeste CPU-forbrug:

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

Hvis du opdager, at et PHP-script optager for meget CPU, kan du dræbe det direkte:

kill -9 PID

✅Resultat : Identificerer præcist "rånne æbler" og forhindrer PHP-processer i at optage CPU'en i længere perioder.

Resumé: 7 måder at optimere PHP-FPM på

Begræns antallet af PHP-FPM-processer, for at forhindre CPU-overbelastning
Aktiver OPCache, reducere gentagen parsing af PHP-kode
Indstilling af PHP timeout, for at forhindre langvarig drift
Kontrollerer langsomme MySQL-forespørgsler, optimere databaseforespørgselsydeevne
Juster Memcached Memory, hvilket reducerer CPU-byrden
Aktiver Nginx statisk cache, hvilket reducerer PHP-parsingbyrden
Find PHP-scripts med højt CPU-forbrug, præcis optimering

Afslutningsvis

Serveroptimering er ligesom fitness, du skal foretage præcise justeringer og ikke rode rundt!
Efter en række optimeringer er min server-CPU-belastning faldet fra 80 % ned til 15 %, hjemmesiden åbner dobbelt så hurtigt!
Hvis din server har lignende problemer, så prøv disse metoder! 💪

👉Gør noget nu! Optimer din PHP-FPM og red din server! 🚀

发表 评论

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

Rul til top