Direktori Artikel
HestiaCP Lonjakan CPU server? Panduan lengkap untuk mengoptimalkan proses PHP-FPM!

Apakah CPU server selalu pada 100%? Kipasnya berputar liar? Apakah kecepatan pembukaan situs web melambat?Pelakunya kemungkinan adalah php-fpm!
Saya baru saja menemukan chenweiliang.com Kolam PHP ini php-fpm Proses ini menghabiskan CPU dengan sangat cepat dan server pun mogok!
Untuk menghidupkan kembali server, saya mencoba serangkaian metode pengoptimalan dan akhirnya berhasil mengurangi penggunaan CPU.
Sekarang, mari kita bagikan ini Panduan Optimasi Efisien! 🚀
1. Batasi jumlah proses php-fpm
pengaturan default php-fpm mungkintak terbatasProses ini dibuat tidak terkendali, menyebabkan CPU server kelebihan beban.
Untuk mengoptimalkannya, kita dapat memodifikasi parameter manajemen proses.
打开 php-fpm File Konfigurasi:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *Ubah ke versi PHP Anda, seperti PHP8.3, dan ubah ke ini:
/etc/php/8.3/fpm/pool.d/www.conf
Menanyakan versi PHP yang ditetapkan oleh HestiaCP
v-list-web-domain user domain.com
Misalnya:
v-list-web-domain abc chenweiliang.com
Pada output, Anda akan melihat sesuatu seperti:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Ini berarti bahwa situs web tersebut menggunakan PHP 8.3.
Temukan dan ubah 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 reboot php-fpm Untuk membuatnya efektif:
sudo systemctl restart php-fpm
✅ efek: Batasi jumlah proses untuk mencegah php-fpm menghabiskan sumber daya CPU secara berlebihan.
2. Aktifkan OPCache (untuk meningkatkan kinerja PHP)
PHP mengurai ulang kode setiap kali dijalankan yang merupakan pemborosan sumber daya.
Solusinya? Aktifkan OPCache dan cache kode PHP Anda!
编辑 php.ini dokumen:
sudo nano /etc/php/*/fpm/php.ini
Tambahkan atau ubah yang berikut ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Setelah menyimpan, mulai ulang proses PHP:
sudo systemctl restart php8.3-fpm
✅ efek: Mengurangi penguraian kode PHP yang berulang, mengurangi beban CPU, dan meningkatkan efisiensi eksekusi.
3. Batasi waktu eksekusi maksimum skrip PHP
Jika skrip PHP berjalan terlalu lama, sumber daya CPU akan terus-menerus terisi.
Menetapkan periode waktu habis yang wajar dapat mencegah proses "keras kepala" menempati server untuk waktu yang lama.
打开 php.ini dokumen:
sudo nano /etc/php/*/fpm/php.ini
Ubah parameter berikut:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Kemudian mulai ulang proses PHP:
sudo systemctl restart php-fpm
✅ efek: Mencegah proses PHP berjalan dalam waktu lama dan mengurangi pemborosan sumber daya CPU.
4. Periksa MySQL Kueri lambat
PHP-FPM memiliki beban tinggi,Ini mungkin disebabkan oleh kueri SQL yang lambat!
开启 MySQL Log kueri lambat, cari tahu pernyataan SQL yang menahan.
Edit berkas konfigurasi MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Jawaban:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Setelah menyimpan, mulai ulang MySQL:
sudo systemctl restart mysql
Kemudian gunakan mysqldumpslow Menganalisis kueri yang lambat:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ efek: Temukan query SQL yang memakan waktu, optimalkan kinerja basis data, dan secara tidak langsung kurangi beban PHP.
5. Pembatasan Memcached Penggunaan sumber daya
Melihat daftar proses, saya menemukan Penggunaan CPU proses Memcached adalah 24.8%!
Mungkin alokasi cache terlalu besar, menyebabkan CPU memproses data dalam jumlah besar.
调整 memcached Konfigurasi:
sudo nano /etc/memcached.conf
Merevisi:
-m 32 # 限制 Memcached 内存使用 32MB
Lalu reboot:
sudo systemctl restart memcached
✅ efek: Mengurangi beban CPU pada proses Memcached dan meningkatkan efisiensi cache.
6. Aktifkan Nginx untuk menyimpan sumber daya statis
Seringkali, PHP memproses permintaan yang berisi sejumlah besar CSS, JS, gambar, tetapi berkas ini tidak memerlukan penguraian PHP sama sekali!
Solusinya? Gunakan Nginx untuk menyimpan sumber daya statis!
Edit konfigurasi Nginx:
sudo nano /etc/nginx/nginx.conf
Jawaban:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Setelah menyimpan, mulai ulang Nginx:
sudo systemctl restart nginx
✅ efek: Mengurangi jumlah pemrosesan PHP berkas statis dan mengurangi penggunaan CPU.
7. Temukan skrip PHP yang menggunakan CPU terbanyak
Jika CPU masih terlalu tinggi setelah pengoptimalan, mungkin beberapa skrip PHP berjalan tidak terkendali.
Gunakan perintah berikut untuk mengetahui proses PHP dengan penggunaan CPU tertinggi:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Jika Anda menemukan bahwa skrip PHP memakan terlalu banyak CPU, Anda dapat menghentikannya secara langsung:
kill -9 PID
✅ efek:Mengidentifikasi secara akurat "apel yang buruk" dan mencegah proses PHP menggunakan CPU terlalu lama.
Ringkasan: 7 cara mengoptimalkan PHP-FPM
✅ Batasi jumlah proses PHP-FPM, untuk mencegah kelebihan beban CPU
✅ Aktifkan OPCache, mengurangi penguraian kode PHP yang berulang
✅ Mengatur batas waktu PHP, untuk mencegah operasi jangka panjang
✅ Memeriksa kueri MySQL yang lambat, mengoptimalkan kinerja kueri basis data
✅ Sesuaikan Memori Memcached, mengurangi beban CPU
✅ Aktifkan cache statis Nginx, mengurangi beban parsing PHP
✅ Temukan skrip PHP dengan penggunaan CPU tinggi, optimasi yang tepat
Kesimpulannya
Optimalisasi server itu seperti kebugaran, Anda perlu melakukan penyesuaian yang tepat dan jangan main-main!
Setelah serangkaian optimasi, beban CPU server saya telah turun dari 80% turun menjadi 15%, situs web terbuka dua kali lebih cepat!
Jika server Anda memiliki masalah serupa, cobalah metode ini! 💪
👉 Ambil tindakan sekarang! Optimalkan PHP-FPM Anda dan selamatkan server Anda! 🚀
Harapan Chen Weiliang Blog ( https://www.chenweiliang.com/ ) membagikan "Proses php-fpm HestiaCP memakan banyak sumber daya CPU, bagaimana cara mengoptimalkannya? ”, mungkin bermanfaat bagi Anda.
Selamat datang untuk membagikan tautan artikel ini:https://www.chenweiliang.com/cwl-32490.html
