Imenik članaka
- 1 1. Ograničite broj php-fpm procesa
- 2 2. Omogućite OPCache (za poboljšanje performansi PHP-a)
- 3 3. Ograničite maksimalno vrijeme izvršavanja PHP skripti
- 4 4. Provjerite MySQL spore upite
- 5 5. Ograničite korištenje Memcached resursa
- 6 6. Omogućite Nginxu predmemoriranje statičkih resursa
- 7 7. Pronađite PHP skriptu koja koristi najviše procesora
- 8 Sažetak: 7 načina za optimizaciju PHP-FPM-a
- 9 u zaključku
HestiaCP CPU na poslužitelju? Kompletan vodič za optimizaciju PHP-FPM procesa!

Je li CPU poslužitelja uvijek na 100%? Ventilator se divljački vrti? Usporava li se brzina otvaranja web stranice?Krivac bi mogao biti php-fpm!
Nedavno sam otkrio chenweiliang.com Ovaj PHP bazen php-fpm Proces je ludo trošio CPU, a server se srušio!
Kako bih oživio server, isprobao sam niz metoda optimizacije i konačno uspio smanjiti korištenje CPU-a.
Sada, podijelimo ovo Učinkoviti vodič za optimizaciju! 🚀
1. Ograničite broj php-fpm procesa
php-fpm zadane postavke moguneograničenProces se stvara nekontrolirano, uzrokujući preopterećenje procesora poslužitelja.
Kako bismo ga optimizirali, možemo modificirati parametre upravljanja procesima.
Otvoreno php-fpm Konfiguracijske datoteke:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Promijenite na svoju PHP verziju, kao što je PHP8.3, i promijenite je u ovo:
/etc/php/8.3/fpm/pool.d/www.conf
Upit za verziju PHP-a koju je postavio HestiaCP
v-list-web-domain user domain.com
npr:
v-list-web-domain abc chenweiliang.com
U izlazu ćete vidjeti nešto poput:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
To znači da web stranica koristi PHP 8.3.
Pronađite i promijenite sljedeće 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 后自动退出
zatim ponovno pokrenite php-fpm Da bi bio učinkovit:
sudo systemctl restart php-fpm
✅ Učinak: Ograničite broj procesa kako biste spriječili da php-fpm previše troši CPU resurse.
2. Omogućite OPCache (za poboljšanje performansi PHP-a)
PHP ponovno analizira kod svaki put kada se izvrši, što je gubitak resursa.
rješenje? Omogućite OPCache i predmemorirajte svoj PHP kod!
编辑 php.ini dokument:
sudo nano /etc/php/*/fpm/php.ini
Dodajte ili izmijenite sljedeće:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Nakon spremanja ponovno pokrenite PHP proces:
sudo systemctl restart php8.3-fpm
✅ Učinak: Smanjite ponovljeno parsiranje PHP koda, smanjite opterećenje CPU-a i poboljšajte učinkovitost izvršenja.
3. Ograničite maksimalno vrijeme izvršavanja PHP skripti
Ako PHP skripta radi predugo, CPU resursi bit će neprestano zauzeti.
Postavljanje razumnog vremenskog razdoblja može spriječiti "tvrdoglave" procese da zauzmu poslužitelj na duže vrijeme.
Otvoreno php.ini dokument:
sudo nano /etc/php/*/fpm/php.ini
Izmijenite sljedeće parametre:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Zatim ponovno pokrenite PHP proces:
sudo systemctl restart php-fpm
✅ Učinak: Spriječite dugotrajno izvođenje PHP procesa i smanjite rasipanje CPU resursa.
4. Provjerite MySQL Spor upit
PHP-FPM ima veliko opterećenje,To može biti uzrokovano sporim SQL upitom!
开启 MySQL Spor zapisnik upita, saznajte SQL naredbe koje koče.
Uredite MySQL konfiguracijsku datoteku:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Dodatak:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Nakon spremanja ponovno pokrenite MySQL:
sudo systemctl restart mysql
Zatim koristite mysqldumpslow Analizirajte spore upite:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ Učinak: Pronađite dugotrajne SQL upite, optimizirajte performanse baze podataka i neizravno smanjite opterećenje PHP-a.
5. Ograničite korištenje Memcached resursa
Gledajući popis procesa, našao sam Upotreba CPU-a Memcached procesa je 24.8%!
Moguće je da je raspodjela predmemorije prevelika, zbog čega CPU obrađuje veliku količinu podataka.
调整 memcached Konfiguracija:
sudo nano /etc/memcached.conf
Revidirati:
-m 32 # 限制 Memcached 内存使用 32MB
Zatim ponovno pokrenite:
sudo systemctl restart memcached
✅ Učinak: Smanjite opterećenje procesora Memcached procesa i poboljšajte učinkovitost predmemorije.
6. Omogućite Nginxu predmemoriranje statičkih resursa
Puno puta PHP obrađuje zahtjeve koji sadrže veliki broj CSS, JS, slike, ali ove datoteke uopće ne trebaju PHP parsiranje!
rješenje? Koristite Nginx za predmemoriju statičkih resursa!
Uredite Nginx konfiguraciju:
sudo nano /etc/nginx/nginx.conf
Dodatak:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Nakon spremanja ponovno pokrenite Nginx:
sudo systemctl restart nginx
✅ Učinak: Smanjite broj obrada PHP statičkih datoteka i smanjite korištenje CPU-a.
7. Pronađite PHP skriptu koja koristi najviše procesora
Ako je CPU i dalje previsok nakon optimizacije, moguće je da neke PHP skripte rade nenormalno.
Upotrijebite sljedeću naredbu da saznate PHP proces s najvećom upotrebom CPU-a:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Ako ustanovite da PHP skripta zauzima previše CPU-a, možete je izravno prekinuti:
kill -9 PID
✅ Učinak:Točno identificirajte "loše jabuke" i spriječite da PHP proces dugo zauzme CPU.
Sažetak: 7 načina za optimizaciju PHP-FPM-a
✅ Ograničite broj PHP-FPM procesa, kako biste spriječili preopterećenje CPU-a
✅ Omogući OPCache, smanjiti opetovano parsiranje PHP koda
✅ Postavljanje PHP vremenskog ograničenja, za sprječavanje dugotrajnog rada
✅ Provjera MySQL sporih upita, optimizirajte performanse upita baze podataka
✅ Podesite Memcached memoriju, smanjujući opterećenje CPU-a
✅ Omogući Nginx statičku predmemoriju, smanjujući opterećenje PHP raščlanjivanjem
✅ Pronađite PHP skripte s visokom upotrebom procesora, precizna optimizacija
u zaključku
Optimizacija poslužitelja je poput fitnessa, trebate izvršiti precizne prilagodbe i ne petljati se!
Nakon niza optimizacija, opterećenje CPU-a mog poslužitelja je palo s 80% do 15%, stranica se otvara dvostruko brže!
Ako vaš poslužitelj ima slične probleme, isprobajte ove metode! 💪
???? Poduzmite akciju odmah! Optimizirajte svoj PHP-FPM i spasite svoj poslužitelj! 🚀
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared "HestiaCP php-fpm proces zauzima mnogo CPU resursa, kako ga optimizirati? “, moglo bi vam biti od pomoći.
Dobrodošli da podijelite vezu ovog članka:https://www.chenweiliang.com/cwl-32490.html
Za otključavanje još skrivenih trikova🔑, dobrodošli da se pridružite našem Telegram kanalu!
Podijelite i lajkajte ako vam se sviđa! Vaša dijeljenja i lajkovi naša su daljnja motivacija!