Cikkkönyvtár
HestiaCP Szerver CPU túlfeszültség? Teljes útmutató a PHP-FPM folyamat optimalizálásához!

A szerver CPU mindig 100%-os? Vadul pörög a ventilátor? Lassul a weboldal megnyitási sebessége?A php-fpm lehet a tettes!
Nemrég fedeztem fel chenweiliang.com Ez a PHP medence php-fpm A folyamat őrült módjára felemésztette a CPU-t, és a szerver összeomlott!
A szerver újraélesztése érdekében számos optimalizálási módszert próbáltam ki, és végül sikerült csökkentenem a CPU-használatot.
Most pedig osszuk meg ezt Hatékony optimalizálási útmutató! 🚀
1. Korlátozza a php-fpm folyamatok számát
php-fpm alapértelmezett beállítások lehetnekkorlátlanA folyamat ellenőrizhetetlenül jön létre, ami a szerver CPU túlterhelését okozza.
Optimalizálása érdekében módosíthatjuk a folyamatirányítási paramétereket.
bekapcsol php-fpm Konfigurációs fájlok:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Válts a PHP verziódra, például a PHP8.3-ra, és írd be erre:
/etc/php/8.3/fpm/pool.d/www.conf
A HestiaCP által beállított PHP verzió lekérdezése
v-list-web-domain user domain.com
Például:
v-list-web-domain abc chenweiliang.com
A kimenetben valami ilyesmit fog látni:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Ez azt jelenti, hogy a weboldal használ PHP 8.3.
Keresse meg és módosítsa a következő paramétereket:
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 后自动退出
Ezután indítsa újra php-fpm A hatásosság érdekében:
sudo systemctl restart php-fpm
✅ 效果: Korlátozza a folyamatok számát, nehogy a php-fpm túlzottan felemésztse a CPU erőforrásokat.
2. Engedélyezze az OPCache-t (a PHP teljesítményének javítása érdekében)
A PHP minden végrehajtáskor újraértelmezi a kódot, ami erőforrások pazarlása.
A megoldás? Engedélyezze az OPCache-t és tárolja el a PHP kódját!
编辑 php.ini dokumentum:
sudo nano /etc/php/*/fpm/php.ini
Adja hozzá vagy módosítsa a következőket:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Mentés után indítsa újra a PHP folyamatot:
sudo systemctl restart php8.3-fpm
✅ 效果: Csökkentse a PHP-kód ismételt elemzését, csökkentse a CPU-terhelést és javítsa a végrehajtás hatékonyságát.
3. Korlátozza a PHP szkriptek maximális végrehajtási idejét
Ha egy PHP szkript túl sokáig fut, a CPU erőforrásai folyamatosan lefoglalva lesznek.
Egy ésszerű időtúllépési időszak beállítása megakadályozhatja, hogy a "makacs" folyamatok hosszú ideig lefoglalják a szervert.
bekapcsol php.ini dokumentum:
sudo nano /etc/php/*/fpm/php.ini
Módosítsa a következő paramétereket:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Ezután indítsa újra a PHP folyamatot:
sudo systemctl restart php-fpm
✅ 效果: A PHP-folyamatok hosszú távú futásának megakadályozása és a CPU-erőforrás-pazarlás csökkentése.
4. Ellenőrizze MySQL Lassú lekérdezés
A PHP-FPM nagy terhelésű,Lehet, hogy a lassú SQL lekérdezés okozza!
Bekapcsol MySQL Lassú lekérdezési napló, találja meg a visszatartó SQL utasításokat.
Szerkessze a MySQL konfigurációs fájlt:
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 秒的查询会被记录
Mentés után indítsa újra a MySQL-t:
sudo systemctl restart mysql
Akkor használd mysqldumpslow Lassú lekérdezések elemzése:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ 效果: Ismerje meg az időigényes SQL lekérdezéseket, optimalizálja az adatbázis teljesítményét, és közvetve csökkenti a PHP terhelést.
5. Korlátozza a memcached erőforrás-használatot
A folyamatlistára nézve találtam A memcached processzoros processzorhasználat 24.8%!
Előfordulhat, hogy a gyorsítótár-kiosztás túl nagy, ami miatt a CPU nagy mennyiségű adatot dolgoz fel.
调整 memcached 配置:
sudo nano /etc/memcached.conf
Felülvizsgálat:
-m 32 # 限制 Memcached 内存使用 32MB
Ezután indítsa újra:
sudo systemctl restart memcached
✅ 效果: Csökkentse a Memcached folyamat CPU-terhelését és javítsa a gyorsítótár hatékonyságát.
6. Engedélyezze az Nginx számára a statikus erőforrások gyorsítótárazását
Sokszor a PHP olyan kéréseket dolgoz fel, amelyek nagyszámú kérést tartalmaznak CSS, JS, képek, de ezeknek a fájloknak egyáltalán nincs szükségük PHP elemzésre!
A megoldás? Használja az Nginxet a statikus erőforrások gyorsítótárazásához!
Szerkessze az Nginx konfigurációját:
sudo nano /etc/nginx/nginx.conf
添加:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Mentés után indítsa újra az Nginx-et:
sudo systemctl restart nginx
✅ 效果: Csökkentse a PHP statikus fájlok feldolgozásának számát, és csökkentse a CPU-használatot.
7. Keresse meg a legtöbb CPU-t használó PHP-szkriptet
Ha a CPU még mindig túl magas az optimalizálás után, előfordulhat, hogy egyes PHP szkriptek vadul futnak.
Használja a következő parancsot, hogy megtudja a PHP-folyamatot a legnagyobb CPU-használattal:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Ha úgy találja, hogy egy PHP-szkript túl sok CPU-t foglal el, közvetlenül leállíthatja:
kill -9 PID
✅ 效果:A "rossz almák" pontos azonosítása, és megakadályozza, hogy a PHP folyamat hosszú ideig lefoglalja a CPU-t.
Összegzés: 7 módszer a PHP-FPM optimalizálására
✅ Korlátozza a PHP-FPM folyamatok számát, a CPU túlterhelés elkerülése érdekében
✅ OPCache engedélyezése, csökkenti a PHP kód ismételt elemzését
✅ PHP időtúllépés beállítása, a hosszú távú működés megelőzése érdekében
✅ MySQL lassú lekérdezések ellenőrzése, optimalizálja az adatbázis lekérdezési teljesítményét
✅ Állítsa be a Memcached memóriát, csökkenti a CPU-terhelést
✅ Az Nginx statikus gyorsítótár engedélyezése, csökkentve a PHP elemzési terhét
✅ Keressen magas CPU-használatot igénylő PHP szkripteket, precíz optimalizálás
Következtetésképpen
A szerveroptimalizálás olyan, mint a fitnesz, precíz beállításokat kell végrehajtania, és ne vacakoljon!
Egy sor optimalizálást követően a szerverem CPU-terhelése csökkent 80%-ról 15%-ra, a weboldal kétszer olyan gyorsan nyílik meg!
Ha a szerverén hasonló problémák vannak, próbálja ki ezeket a módszereket! 💪
???? Cselekedj most! Optimalizálja PHP-FPM-jét és mentse el szerverét! 🚀
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) megosztott "A HestiaCP php-fpm folyamat sok CPU erőforrást igényel, hogyan lehet optimalizálni? ", hasznos lehet az Ön számára.
Üdvözöljük a cikk linkjének megosztásában:https://www.chenweiliang.com/cwl-32490.html
