Direktori Artikel
- 1 1. Hadkan bilangan proses php-fpm
- 2 2. Dayakan OPCache (untuk meningkatkan prestasi PHP)
- 3 3. Hadkan masa pelaksanaan maksimum skrip PHP
- 4 4. Semak pertanyaan lambat MySQL
- 5 5. Hadkan penggunaan sumber Memcached
- 6 6. Dayakan Nginx untuk menyimpan sumber statik
- 7 7. Cari skrip PHP yang menggunakan paling banyak CPU
- 8 Ringkasan: 7 cara untuk mengoptimumkan PHP-FPM
- 9 Kesimpulannya
HestiaCP Lonjakan CPU pelayan? Panduan lengkap untuk mengoptimumkan proses PHP-FPM!

Adakah CPU pelayan sentiasa pada 100%? Kipas berputar liar? Adakah kelajuan pembukaan laman web semakin perlahan?Penyebabnya mungkin php-fpm!
Saya baru-baru ini menemui chenweiliang.com Kolam PHP ini php-fpm Proses memakan CPU seperti gila, dan pelayan ranap!
Untuk menghidupkan semula pelayan, saya mencuba beberapa siri kaedah pengoptimuman dan akhirnya berjaya mengurangkan penggunaan CPU.
Sekarang, mari berkongsi ini Panduan Pengoptimuman Cekap! 🚀
1. Hadkan bilangan proses php-fpm
tetapan lalai php-fpm bolehtidak terhadProses ini dibuat secara tidak terkawal, menyebabkan CPU pelayan membebankan.
Untuk mengoptimumkannya, kami boleh mengubah suai parameter pengurusan proses.
打开 php-fpm Fail konfigurasi:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Tukar kepada versi PHP anda, seperti PHP8.3, dan tukar kepada ini:
/etc/php/8.3/fpm/pool.d/www.conf
Tanya versi PHP yang ditetapkan oleh HestiaCP
v-list-web-domain user domain.com
Cth:
v-list-web-domain abc chenweiliang.com
Dalam output, anda akan melihat sesuatu seperti:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Ini bermakna laman web tersebut menggunakan PHP 8.3.
Cari dan ubah suai parameter berikut:
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 后自动退出
Kemudian but semula php-fpm Untuk menjadikannya berkesan:
sudo systemctl restart php-fpm
✅ Kesan: Hadkan bilangan proses untuk mengelakkan php-fpm daripada menggunakan sumber CPU secara berlebihan.
2. Dayakan OPCache (untuk meningkatkan prestasi PHP)
PHP membetulkan semula kod setiap kali ia dilaksanakan, yang merupakan pembaziran sumber.
Penyelesaiannya? Dayakan OPCache dan cache kod PHP anda!
编辑 php.ini fail:
sudo nano /etc/php/*/fpm/php.ini
Tambah atau ubah suai yang berikut:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Selepas menyimpan, mulakan semula proses PHP:
sudo systemctl restart php8.3-fpm
✅ Kesan: Kurangkan penghuraian berulang kod PHP, kurangkan beban CPU, dan tingkatkan kecekapan pelaksanaan.
3. Hadkan masa pelaksanaan maksimum skrip PHP
Jika skrip PHP berjalan terlalu lama, sumber CPU akan diduduki secara berterusan.
Menetapkan tempoh tamat masa yang munasabah boleh menghalang proses "degil" daripada menduduki pelayan untuk masa yang lama.
打开 php.ini fail:
sudo nano /etc/php/*/fpm/php.ini
Ubah suai parameter berikut:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Kemudian mulakan semula proses PHP:
sudo systemctl restart php-fpm
✅ Kesan: Menghalang proses PHP daripada berjalan untuk masa yang lama dan mengurangkan pembaziran sumber CPU.
4. Semak MySQL Pertanyaan perlahan
PHP-FPM mempunyai beban yang tinggi,Ia mungkin disebabkan oleh pertanyaan SQL yang perlahan!
开启 MySQL Log pertanyaan perlahan, ketahui pernyataan SQL yang menahan.
Edit fail konfigurasi MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Tambahkan pada:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Selepas menyimpan, mulakan semula MySQL:
sudo systemctl restart mysql
Kemudian gunakan mysqldumpslow Analisis pertanyaan perlahan:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ Kesan: Ketahui pertanyaan SQL yang memakan masa, mengoptimumkan prestasi pangkalan data, dan secara tidak langsung mengurangkan beban PHP.
5. Hadkan penggunaan sumber Memcached
Melihat senarai proses, saya dapati Penggunaan CPU proses memcached ialah 24.8%!
Mungkin peruntukan cache terlalu besar, menyebabkan CPU memproses sejumlah besar data.
调整 memcached Konfigurasi:
sudo nano /etc/memcached.conf
Semak semula:
-m 32 # 限制 Memcached 内存使用 32MB
Kemudian but semula:
sudo systemctl restart memcached
✅ Kesan: Kurangkan beban CPU proses Memcached dan tingkatkan kecekapan cache.
6. Dayakan Nginx untuk menyimpan sumber statik
Banyak kali, PHP memproses permintaan yang mengandungi sejumlah besar CSS, JS, imej, tetapi fail ini tidak memerlukan penghuraian PHP sama sekali!
Penyelesaiannya? Gunakan Nginx untuk menyimpan sumber statik!
Edit konfigurasi Nginx:
sudo nano /etc/nginx/nginx.conf
Tambahkan pada:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Selepas menyimpan, mulakan semula Nginx:
sudo systemctl restart nginx
✅ Kesan: Kurangkan bilangan kali PHP memproses fail statik dan mengurangkan penggunaan CPU.
7. Cari skrip PHP yang menggunakan paling banyak CPU
Jika CPU masih terlalu tinggi selepas pengoptimuman, mungkin sesetengah skrip PHP sedang berjalan secara liar.
Gunakan arahan berikut untuk mengetahui proses PHP dengan penggunaan CPU tertinggi:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Jika anda mendapati bahawa skrip PHP menggunakan terlalu banyak CPU, anda boleh mematikannya secara langsung:
kill -9 PID
✅ Kesan:Mengenal pasti "epal buruk" dengan tepat dan menghalang proses PHP daripada menduduki CPU untuk masa yang lama.
Ringkasan: 7 cara untuk mengoptimumkan PHP-FPM
✅ Hadkan bilangan proses PHP-FPM, untuk mengelakkan lebihan CPU
✅ Dayakan OPCache, kurangkan penghuraian berulang kod PHP
✅ Menetapkan tamat masa PHP, untuk mengelakkan operasi jangka panjang
✅ Menyemak pertanyaan lambat MySQL, mengoptimumkan prestasi pertanyaan pangkalan data
✅ Laraskan Memori Memcached, mengurangkan beban CPU
✅ Dayakan cache statik Nginx, mengurangkan beban penghuraian PHP
✅ Cari skrip PHP penggunaan CPU yang tinggi, pengoptimuman yang tepat
Kesimpulannya
Pengoptimuman pelayan adalah seperti kecergasan, anda perlu membuat pelarasan yang tepat dan jangan main-main!
Selepas beberapa siri pengoptimuman, beban CPU pelayan saya telah menurun daripada 80% turun kepada 15%, tapak web dibuka dua kali lebih pantas!
Jika pelayan anda mempunyai masalah yang sama, cuba kaedah ini! 💪
???? Ambil tindakan sekarang! Optimumkan PHP-FPM anda dan simpan pelayan anda! 🚀
Blog Harapan Chen Weiliang ( https://www.chenweiliang.com/ ) berkongsi "Proses php-fpm HestiaCP mengambil banyak sumber CPU, bagaimana untuk mengoptimumkannya? ”, ia mungkin membantu anda.
Selamat datang untuk berkongsi pautan artikel ini:https://www.chenweiliang.com/cwl-32490.html
Untuk membuka lebih banyak helah tersembunyi🔑, dialu-alukan untuk menyertai saluran Telegram kami!
Share dan like jika anda suka! Perkongsian dan suka anda adalah motivasi berterusan kami!