Makale Rehberi
HestiaCP Sunucu CPU'sunda ani artış mı var? PHP-FPM sürecini optimize etmeye yönelik eksiksiz bir rehber!

Sunucu CPU'su her zaman %100 mü? Vantilatör çılgınca mı dönüyor? Web sitenizin açılış hızı yavaşlıyor mu?Suçlu php-fpm olabilir!
Yakın zamanda keşfettim chenweiliang.com Bu PHP havuzu php-fpm İşlem CPU'yu çılgınca tüketti ve sunucu çöktü!
Sunucuyu canlandırmak için bir dizi optimizasyon yöntemi denedim ve sonunda CPU kullanımını azaltmayı başardım.
Şimdi bunu paylaşalım Verimli Optimizasyon Rehberi! 🚀
1. php-fpm işlemlerinin sayısını sınırlayın
php-fpm varsayılan ayarları olabilirsınırsızİşlem kontrolsüz bir şekilde oluşturuluyor ve sunucu CPU'sunun aşırı yüklenmesine neden oluyor.
Bunu optimize etmek için süreç yönetim parametrelerini değiştirebiliriz.
açık php-fpm Yapılandırma Dosyaları:
sudo nano /etc/php/*/fpm/pool.d/www.conf
- *PHP sürümünüzü (örneğin PHP8.3) değiştirin ve şununla değiştirin:
/etc/php/8.3/fpm/pool.d/www.conf
HestiaCP tarafından ayarlanan PHP sürümünü sorgulayın
v-list-web-domain user domain.com
Örneğin:
v-list-web-domain abc chenweiliang.com
Çıktıda aşağıdakine benzer bir şey göreceksiniz:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Bu, web sitesinin kullandığı anlamına gelir PHP 8.3.
Aşağıdaki parametreleri bulun ve değiştirin:
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 后自动退出
Daha sonra yeniden başlatın php-fpm Etkili hale getirmek için:
sudo systemctl restart php-fpm
✅ etki: php-fpm'nin CPU kaynaklarını aşırı tüketmesini önlemek için işlem sayısını sınırlayın.
2. OPCache'i etkinleştirin (PHP performansını artırmak için)
PHP, kodu her çalıştırıldığında yeniden ayrıştırır, bu da kaynak israfıdır.
Çözüm? OPCache'i etkinleştirin ve PHP kodunuzu önbelleğe alın!
编辑 php.ini belge:
sudo nano /etc/php/*/fpm/php.ini
Aşağıdakileri ekleyin veya değiştirin:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0 # 禁用实时检测,提高性能
Kaydettikten sonra PHP işlemini yeniden başlatın:
sudo systemctl restart php8.3-fpm
✅ etki: PHP kodunun tekrar tekrar ayrıştırılmasını azaltın, CPU yükünü azaltın ve yürütme verimliliğini artırın.
3. PHP betiklerinin maksimum yürütme süresini sınırlayın
Eğer bir PHP betiği çok uzun süre çalışırsa, CPU kaynakları sürekli meşgul olacaktır.
Makul bir zaman aşımı süresi belirlemek, "inatçı" işlemlerin sunucuyu uzun süre meşgul etmesini önleyebilir.
açık php.ini belge:
sudo nano /etc/php/*/fpm/php.ini
Aşağıdaki parametreleri değiştirin:
max_execution_time = 30 # PHP 脚本最多执行 30 秒
max_input_time = 30 # 处理输入数据最多 30 秒
memory_limit = 256M # 限制单个 PHP 进程的内存占用
Daha sonra PHP işlemini yeniden başlatın:
sudo systemctl restart php-fpm
✅ etki: PHP işlemlerinin uzun süre çalışmasını önleyin ve CPU kaynak israfını azaltın.
4. Kontrol MySQL Yavaş sorgu
PHP-FPM'nin yüksek bir yükü var,Yavaş SQL sorgusundan kaynaklanıyor olabilir!
açık MySQL Yavaş sorgu günlüğü, geri planda kalan SQL ifadelerini bulun.
MySQL yapılandırma dosyasını düzenleyin:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Cevap:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1 # 超过 1 秒的查询会被记录
Kaydettikten sonra MySQL'i yeniden başlatın:
sudo systemctl restart mysql
Sonra kullan mysqldumpslow Yavaş sorguları analiz edin:
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
✅ etki:Zaman alıcı SQL sorgularını bulun, veritabanı performansını optimize edin ve dolaylı olarak PHP yükünü azaltın.
5. Memcached kaynak kullanımını sınırlayın
İşlem listesine baktığımda şunu buldum: Memcached işleminin CPU kullanımı %24.8!
Önbellek tahsisi çok büyük olabilir ve bu da CPU'nun büyük miktarda veriyi işlemesine neden olabilir.
调整 memcached Yapılandırma:
sudo nano /etc/memcached.conf
Tekrar düzeltme yapmak:
-m 32 # 限制 Memcached 内存使用 32MB
Daha sonra yeniden başlatın:
sudo systemctl restart memcached
✅ etki: Memcached işleminin CPU yükünü azaltın ve önbellek verimliliğini artırın.
6. Nginx'in statik kaynakları önbelleğe almasını etkinleştirin
PHP çoğu zaman çok sayıda istek içeren istekleri işler CSS, JS, görseller, ancak bu dosyaların PHP ayrıştırmasına ihtiyacı yoktur!
Çözüm? Statik kaynakları önbelleğe almak için Nginx kullanın!
Nginx yapılandırmasını düzenleyin:
sudo nano /etc/nginx/nginx.conf
Cevap:
location ~* \.(jpg|jpeg|png|gif|css|js|ico|xml)$ {
expires max;
log_not_found off;
}
Kaydettikten sonra Nginx'i yeniden başlatın:
sudo systemctl restart nginx
✅ etki: PHP'nin statik dosyaları işleme sayısını azaltın ve CPU kullanımını düşürün.
7. En fazla CPU kullanan PHP betiğini bulun
Optimizasyondan sonra CPU hala çok yüksekse, bazı PHP betiklerinin kontrolsüz çalıştığı anlamına gelebilir.
En yüksek CPU kullanımına sahip PHP işlemini bulmak için aşağıdaki komutu kullanın:
ps -eo pid,user,pcpu,pmem,args --sort=-pcpu | grep php
Bir PHP betiğinin çok fazla CPU kullandığını düşünüyorsanız, onu doğrudan sonlandırabilirsiniz:
kill -9 PID
✅ etki:"Çürük elmaları" doğru bir şekilde tespit edin ve PHP işleminin CPU'yu uzun süre meşgul etmesini önleyin.
Özet: PHP-FPM'yi optimize etmenin 7 yolu
✅ PHP-FPM işlemlerinin sayısını sınırlayınCPU aşırı yüklenmesini önlemek için
✅ OPCache'i etkinleştir, PHP kodunun tekrar tekrar ayrıştırılmasını azaltın
✅ PHP zaman aşımını ayarlama, uzun vadeli operasyonu önlemek için
✅ MySQL yavaş sorgularını kontrol etme, veritabanı sorgu performansını optimize edin
✅ Memcached Belleği Ayarla, CPU yükünü azaltır
✅ Nginx statik önbelleğini etkinleştirPHP ayrıştırma yükünü azaltarak
✅ Yüksek CPU kullanımı olan PHP betiklerini bulun, hassas optimizasyon
sonuç olarak
Sunucu optimizasyonu fitness gibidir, hassas ayarlamalar yapmanız ve şakaya gelmemeniz gerekir!
Bir dizi optimizasyondan sonra sunucu CPU yüküm şu şekilde düştü: %80'den %15'e düştü, web sitesi iki kat daha hızlı açılıyor!
Eğer sunucunuzda benzer sorunlar varsa bu yöntemleri deneyin! 💪
👉 Hemen harekete geçin! PHP-FPM'inizi optimize edin ve sunucunuzu kurtarın! ????
Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) "HestiaCP php-fpm işlemi çok fazla CPU kaynağı tüketiyor, nasıl optimize edebilirim?" paylaşımında bulundu. ”, sizin için faydalı olabilir.
Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-32490.html
