Discussion

PHP-FPM Sanallaştırma Altyapısında DirectAdmin Optimizasyonu ve OOM (Out of Memory) Hatası Çözümü

Créée par IronPacket · 07 Sept. 2026 14:41 · 2 Vues · 0 Réponses
Auteur de la discussion #0
Sunucu performansı ve stabilitesi, özellikle sanallaştırma ortamlarında PHP-FPM kullanımıyla yakından ilişkilidir. Bu bağlamda, DirectAdmin üzerinde çalışan PHP-FPM yapılandırmasını optimize etmek ve Out of Memory (OOM) hatalarının önüne geçmek, hem kullanıcı deneyimini artırır hem de sistem kararlılığını sağlar.

İlk olarak, PHP-FPM'nin bellek yönetim ayarlarının doğru yapılandırılması büyük önem taşır. PHP-FPM, worker süreçleri üzerinden PHP işlemlerini yürütür ve bu süreçlerin bellek tüketimi, sistemin toplam hafıza kullanımını doğrudan etkiler.

1. PHP-FPM Konfigürasyonu ve Bellek Limitleri
php-fpm.conf veya pool yapılandırma dosyalarında, aşağıdaki parametrelerin dikkatli ayarlanması gerekir:

  • pm = dynamic veya ondemand tercih edilerek, süreçlerin yönetimi optimize edilir.
  • pm.max_children = kullanılacak maksimum worker sayısı, toplam bellek kapasitesine göre belirlenmelidir. Örneğin, sunucunun toplam RAM'inin %70'ini PHP-FPM süreçlerine ayırmak mantıklıdır. Her worker’ın ortalama bellek tüketimi tahmin edilerek, bu değere göre max_children ayarlanmalı.
  • php_value[memory_limit] = her PHP işlemine tahsis edilen bellek sınırı, aşılmamalıdır. Bu limit, genellikle 128MB veya 256MB gibi değerlerde ayarlanır.

    Örneğin:

    CODE
    12345  
    ; /etc/php-fpm.d/www.conf veya ilgili pool dosyası  
    pm = dynamic  
    pm.max_children = 50  
    php_value[memory_limit] = 128M  
    


    Bu yapılandırma, toplamda 50 worker’ın aynı anda çalışmasıyla yaklaşık 6,4GB bellek kullanımı öngörür. Sunucunun toplam RAM kapasitesi ve diğer servislerin ihtiyaçlarına göre bu değerler ayarlanmalıdır.


    2. Sistem ve Kernel Optimizasyonları

    Sanallaştırma altyapısında, sistem seviyesinde de bellek yönetimi ve kernel ayarları önemlidir.
  • vm.overcommit_memory = 2 ayarını kullanmak, bellek overcommit riskini azaltır.
  • vm.overcommit_ratio = %50-60 arasında ayarlanabilir, böylece kernel, toplam RAM kapasitesinin belirli bir oranını aşmamaya çalışır.
  • swappiness değeri, bellek kullanımı ve disk kullanımı arasındaki dengeyi sağlar; genellikle 10-20 arasına ayarlanmalıdır.

    Örneğin:

    CODE
    1234  
    sysctl -w vm.overcommit_memory=2  
    sysctl -w vm.overcommit_ratio=60  
    sysctl -w vm.swappiness=10  
    



    3. OOM Killer ve Sistem İzleme

    OOM hatası, sistemin toplam hafıza sınırlarını aştığında kernel tarafından tetiklenir ve OOM killer devreye girer. Bu durumda, PHP-FPM süreçleri veya diğer kritik servisler sonlandırılır.
  • OOM killer loglarını /var/log/messages veya dmesg üzerinden takip ederek, hangi süreçlerin sonlandırıldığını belirleyin.
  • OOM killer’ın önüne geçmek için, PHP-FPM ve diğer servislerin bellek limitlerini dikkatlice ayarlayın, ayrıca swap alanını yeterli seviyeye çıkarmak da faydalı olur.
  • Sistem monitörleri ve uyarı araçlarıyla bellek kullanımını sürekli izlemek, ani artışların önüne geçmek açısından kritiktir.

    Özetle, PHP-FPM ve sistem optimizasyonları, sanallaştırma altyapısında yüksek trafik ve yoğun işlem yüküyle başa çıkmak için hayati önemdedir. Doğru yapılandırma ve düzenli izleme, OOM hatalarının önüne geçerek sistem stabilitesini sağlar.

    Bu konudaki deneyimleriniz veya farklı optimizasyon yaklaşımlarınız hakkında görüşlerinizi paylaşmanız, detaylı tartışmayı zenginleştirebilir.
  • Vous devez être connecté pour répondre.

    0 citations sélectionnées