Artikkelihakemisto
- 1 1. Rajoita php-fpm-prosessien määrää
- 2 2. Ota OPCache käyttöön (parantaaksesi PHP:n suorituskykyä)
- 3 3. Rajoita PHP-skriptien enimmäissuoritusaikaa
- 4 4. Tarkista MySQL:n hitaat kyselyt
- 5 5. Rajoita välimuistissa olevien resurssien käyttöä
- 6 6. Salli Nginx tallentaa staattiset resurssit välimuistiin
- 7 7. Etsi PHP-skripti, joka käyttää eniten suoritinta
- 8 Yhteenveto: 7 tapaa optimoida PHP-FPM
- 9 tiivistettynä
HestiaCP Palvelimen suorittimen ylikuormitus? Täydellinen opas PHP-FPM-prosessin optimointiin!

Onko palvelimen CPU aina 100 %? Pyöriikö tuuletin villisti? Hidastuuko sivuston avautumisnopeus?Syyllinen voi olla php-fpm!
huomasin hiljattain chenweiliang.com Tämä PHP-allas php-fpm Prosessi söi prosessoria hullun lailla, ja palvelin kaatui!
Palvelimen elvyttämiseksi kokeilin useita optimointimenetelmiä ja onnistuin lopulta vähentämään suorittimen käyttöä.
Nyt jaetaan tämä Tehokas optimointiopas! 🚀
1. Rajoita php-fpm-prosessien määrää
php-fpm oletusasetukset voivatrajoittamatonProsessi luodaan hallitsemattomasti, mikä aiheuttaa palvelimen suorittimen ylikuormituksen.
Optimoidaksemme sitä voimme muokata prosessinhallinnan parametreja.
kiihottua php-fpm Asetustiedostot:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Vaihda PHP-versioosi, kuten PHP8.3, ja muuta se tähän:
/etc/php/8.3/fpm/pool.d/www.conf
HestiaCP:n asettaman PHP-version kysely
v-list-web-domain user domain.com
Esimerkiksi:
v-list-web-domain abc chenweiliang.com
Tulosteessa näet jotain seuraavanlaista:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Tämä tarkoittaa, että sivusto käyttää PHP 8.3.
Etsi ja muokkaa seuraavat parametrit:
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 后自动退出
Käynnistä sitten uudelleen php-fpm Tehostaaksesi sen:
sudo systemctl restart php-fpm
✅ 效果: Rajoita prosessien määrää, jotta php-fpm ei kuluta liikaa suorittimen resursseja.
2. Ota OPCache käyttöön (parantaaksesi PHP:n suorituskykyä)
PHP jäsentää koodin uudelleen aina, kun se suoritetaan, mikä on resurssien tuhlausta.
Ratkaisu? Ota OPCache käyttöön ja tallenna PHP-koodisi välimuistiin!
编辑 php.ini asiakirja:
sudo nano /etc/php/*/fpm/php.ini
Lisää tai muokkaa seuraavia:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Käynnistä PHP-prosessi uudelleen tallennuksen jälkeen:
sudo systemctl restart php8.3-fpm
✅ 效果: Vähennä PHP-koodin toistuvaa jäsentämistä, vähennä suorittimen kuormitusta ja paranna suoritustehoa.
3. Rajoita PHP-skriptien enimmäissuoritusaikaa
Jos PHP-skripti on käynnissä liian kauan, suorittimen resurssit ovat jatkuvasti käytössä.
Kohtuullisen aikakatkaisuajan asettaminen voi estää "itsepäisiä" prosesseja joutumasta palvelimelle pitkäksi aikaa.
kiihottua php.ini asiakirja:
sudo nano /etc/php/*/fpm/php.ini
Muokkaa seuraavia parametreja:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Käynnistä sitten PHP-prosessi uudelleen:
sudo systemctl restart php-fpm
✅ 效果: Estä PHP-prosesseja toimimasta pitkään ja vähennä suorittimen resurssien hukkaa.
4. Tarkista MySQL Hidas kysely
PHP-FPM:llä on suuri kuormitus,Se voi johtua hitaasta SQL-kyselystä!
avoin MySQL Hidas kyselyloki, selvitä SQL-lauseet, jotka hidastavat.
Muokkaa MySQL-määritystiedostoa:
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 秒的查询会被记录
Käynnistä MySQL uudelleen tallennuksen jälkeen:
sudo systemctl restart mysql
Käytä sitten mysqldumpslow Analysoi hitaat kyselyt:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ 效果: Ota selvää aikaa vievistä SQL-kyselyistä, optimoi tietokannan suorituskyky ja vähennä epäsuorasti PHP-kuormitusta.
5. Rajoita välimuistissa olevien resurssien käyttöä
Katsoessani prosessiluetteloa löysin Välimuistissa olevan prosessin suorittimen käyttö on 24.8 %!
Saattaa olla, että välimuistin varaus on liian suuri, jolloin suoritin käsittelee suuren määrän dataa.
调整 memcached Kokoonpano:
sudo nano /etc/memcached.conf
修改:
-m 32 # 限制 Memcached 内存使用 32MB
Käynnistä sitten uudelleen:
sudo systemctl restart memcached
✅ 效果: Vähennä Memcached-prosessin prosessoritaakkaa ja paranna välimuistin tehokkuutta.
6. Salli Nginx tallentaa staattiset resurssit välimuistiin
Usein PHP käsittelee pyynnöt, jotka sisältävät suuren määrän CSS, JS, kuvat, mutta nämä tiedostot eivät tarvitse PHP-jäsennystä ollenkaan!
Ratkaisu? Käytä Nginxiä staattisten resurssien välimuistiin!
Muokkaa Nginx-kokoonpanoa:
sudo nano /etc/nginx/nginx.conf
添加:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Käynnistä Nginx uudelleen tallennuksen jälkeen:
sudo systemctl restart nginx
✅ 效果: Vähennä sitä, kuinka monta kertaa PHP käsittelee staattisia tiedostoja ja vähennä suorittimen käyttöä.
7. Etsi PHP-skripti, joka käyttää eniten suoritinta
Jos suoritin on edelleen liian korkea optimoinnin jälkeen, voi olla, että jotkut PHP-skriptit toimivat villisti.
Käytä seuraavaa komentoa saadaksesi selville PHP-prosessin, jolla on suurin suorittimen käyttö:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Jos huomaat, että PHP-skripti vie liikaa suoritinta, voit lopettaa sen suoraan:
kill -9 PID
✅ 效果:Tunnista "huonot omenat" tarkasti ja estä PHP-prosessia miehittämästä CPU:ta pitkään.
Yhteenveto: 7 tapaa optimoida PHP-FPM
✅ Rajoita PHP-FPM-prosessien määrää, estääksesi suorittimen ylikuormituksen
✅ Ota OPCache käyttöön, vähentää PHP-koodin toistuvaa jäsentämistä
✅ PHP aikakatkaisun asettaminen, estääksesi pitkäaikaisen käytön
✅ Tarkistetaan MySQL:n hitaita kyselyitä, optimoida tietokantakyselyn suorituskykyä
✅ Säädä välimuistissa olevaa muistia, vähentää suorittimen kuormitusta
✅ Ota Nginx-staattinen välimuisti käyttöön, mikä vähentää PHP-jäsennystaakkaa
✅ Etsi paljon suorittimen käyttöä käyttäviä PHP-skriptejä, tarkka optimointi
tiivistettynä
Palvelimen optimointi on kuin kuntoilu, sinun on tehtävä tarkkoja säätöjä äläkä sekoita!
Useiden optimointien jälkeen palvelimeni CPU-kuormitus on laskenut 80 % alas 15 %, sivusto avautuu kaksi kertaa nopeammin!
Jos palvelimellasi on samanlaisia ongelmia, kokeile näitä menetelmiä! 💪
???? Toimi nyt! Optimoi PHP-FPM ja tallenna palvelimesi! 🚀
Hope Chen Weiliang -blogi ( https://www.chenweiliang.com/ ) jaettu "HestiaCP php-fpm -prosessi vie paljon suoritinresursseja, kuinka se optimoidaan? ”, siitä voi olla sinulle apua.
Tervetuloa jakamaan tämän artikkelin linkki:https://www.chenweiliang.com/cwl-32490.html
Avataksesi lisää piilotettuja temppuja🔑, tervetuloa liittymään Telegram-kanavallemme!
Jaa ja tykkää jos pidät! Jakamasi ja tykkäyksesi ovat jatkuva motivaatiomme!