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

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 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_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! 🚀
Forhåbentlig vil artiklen "HestiaCP php-fpm-processen bruger mange CPU-ressourcer, hvordan optimerer man den?", som er delt på Chen Weiliangs blog ( https://www.chenweiliang.com/ ), være nyttig for dig.
Del gerne dette artikellink: https://www.chenweiliang.com/cwl-32490.html
