Blogchevron_rightSunucu Yönetimichevron_rightPHP OPcache Nedir? Performans İçin Neden Önemlidir?

PHP OPcache Nedir? Performans İçin Neden Önemlidir?

S
Serversium
calendar_today7 Mayıs 2026
schedule5 dk okuma
PHP OPcache Nedir? Performans İçin Neden Önemlidir?

PHP OPcache Nedir ve Performans İçin Neden Önemlidir?

PHP OPcache, PHP 5.5 ile birlikte entegre edilen bir bytecode önbellek mekanizmasıdır. Geleneksel PHP çalışma modelinde, her istek geldiğinde sunucu PHP dosyalarını diskten okur, derler ve çalıştırır. Bu süreç, özellikle büyük uygulamalarda ciddi performans kayıplarına neden olur. OPcache, derlenmiş PHP kodunu bellekte saklayarak tekrarlayan derleme işlemini ortadan kaldırır ve uygulama hızını önemli ölçüde artırır.

Wikipedia ve resmi PHP dokumentasyonuna göre, OPcache kullanımı sayesinde PHP uygulamaları 2 ila 10 kat arasında performans artışı gösterebilir. Bu durum, özellikle e-ticaret siteleri ve yüksek trafikli web uygulamaları için kritik öneme sahiptir.

OPcache'in Çalışma Prensibi

PHP kodunun çalışma süreci üç ana aşamadan oluşur: lexing (sözcük analizi), parsing (ayrıştırma) ve compile (derleme). OPcache, derleme aşamasını tamamen atlayarak önceden derlenmiş kodu doğrudan kullanır. Bu sayede:

  • CPU kullanımı %30-50 oranında azalır
  • Sayfa yükleme süreleri milisaniye düzeyinde düşer
  • Sunucu kaynakları daha verimli kullanılır
  • Bulut sunucu maliyetleri düşer

OPcache Yapılandırma Dosyası

PHP OPcache ayarları genellikle php.ini dosyası içinde yapılandırılır. Ubuntu ve CentOS sistemlerde bu dosya /etc/php/VERSION/apache2/php.ini veya /etc/php.ini yolunda bulunur. Nginx kullanıyorsanız, FPM yapılandırmanızı kontrol etmeniz gerekir.

Temel OPcache Ayarları

Aşağıdaki parametreler, OPcache'in temel çalışmasını kontrol eder:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1

Bellek Yapılandırması

opcache.memory_consumption parametresi, önbellek için ayrılacak RAM miktarını belirler. WordPress gibi orta ölçekli uygulamalar için 128MB yeterli olabilirken, büyük Laravel veya Symfony uygulamaları için 256-512MB önerilir. Sanallaştırma ortamlarında bu değeri sistem RAM'inin %20-25'i olarak ayarlamanızı öneririz.

İnterned Strings Buffer

PHP, string değişkenleri için internal string pool kullanır. opcache.interned_strings_buffer parametresi bu pool için ayrılan bellek miktarını belirler. Varsayılan değer 4MB'tır ve genellikle 8-16MB arasına yükseltilmesi önerilir.

Maksimum Hızlandırılmış Dosya Sayısı

opcache.max_accelerated_files, önbellekte tutulacak dosya sayısını belirler. Değer olarak 200 ile 100000 arasında bir rakam girilebilir. WordPress için 4000, Laravel için 10000 değeri idealdir. Bu değeri çok düşük tutarsanız, sık kullanılan dosyalar önbellekten düşebilir.

OPcache Performans Karşılaştırması

Senaryo OPcache Kapalı OPcache Açık İyileştirme
Bir sayfa yükleme süresi 320ms 45ms %86 hız artışı
CPU kullanımı (eşzamanlı 100 istek) %78 %23 %70 azalma
Bir istek başına bellek 18MB 12MB %33 azalma
Saniyedeki istek sayısı (RPS) 45 310 %588 artış

Bu veriler, tipik bir WordPress sitesinde yapılan benchmark testlerinden elde edilmiştir. Sonuçlar, donanım yapılandırmasına ve uygulama türüne göre değişiklik gösterebilir.

OPcache İzleme ve Yönetimi

OPcache Durumunu Kontrol Etme

OPcache'in çalışıp çalışmadığını ve performans istatistiklerini görüntülemek için aşağıdaki PHP kodunu kullanabilirsiniz:

<?php
echo "<pre>";
print_r(opcache_get_status(true));
echo "</pre>";

Önbellek Temizleme

Geliştirme sürecinde veya kod güncellemelerinde OPcache'i temizlemeniz gerekebilir. Bunun için:

  • PHP-FPM kullanıyorsanız: sudo systemctl restart php-fpm
  • Apache kullanıyorsanız: sudo systemctl restart apache2
  • Programatik olarak: opcache_reset();

Üretim ortamında otomatik temizlik için opcache.revalidate_freq ve opcache.validate_timestamps ayarlarını yapılandırmanızı öneririz.

Gelişmiş OPcache Yapılandırma İpuçları

Preloading (Önyükleme)

PHP 7.4 ile birlikte gelen preloading özelliği, uygulama başlamadan önce sık kullanılan dosyaları belleğe yükler. Bu özellik, özellikle Laravel ve Symfony gibi framework'lerde çok etkilidir:

opcache.preload=/var/www/html/preload.php
opcache.preload_refresh=1
<?php
// preload.php
$files = [
    '/var/www/html/vendor/autoload.php',
    '/var/www/html/bootstrap/app.php',
];

foreach ($files as $file) {
    if (file_exists($file)) {
        opcache_compile_file($file);
    }
}

Optimizasyon Seviyeleri

opcache.optimization_level parametresi, derleme sırasında uygulanacak optimizasyon passes'larını belirler. Varsayılan değer (0x7FFFBFFF) tüm optimizasyonları etkinleştirir. Çoğu durumda bu değeri değiştirmeniz gerekmez.

Hata Ayıklama Modu

Geliştirme ortamında OPcache'in neden olduğu sorunları tespit etmek için opcache.enable_cli ve opcache.log_verbosity_level parametrelerini kullanabilirsiniz:

opcache.enable_cli=1
opcache.log_verbosity_level=2

Yaygın OPcache Hataları ve Çözümleri

Beyaz Ekran Hatası

Bu hata genellikle önbelleğe alınmış hatalı koddan kaynaklanır. Çözüm için opcache.revalidate_freq=0 ve opcache.validate_timestamps=1 ayarlarını yaparak her istekte dosya değişikliğini kontrol edin.

Önbellek Doluluğu Uyarısı

opcache_get_status() çıktısında "opcache_full" uyarısı görüyorsanız, memory_consumption değerini artırmanız veya max_accelerated_files parametresini azaltmanız gerekir.

Uyumsuz Uzantı Sorunları

Bazı eski PHP uzantıları OPcache ile uyumsuz olabilir. Bu durumda uzantıları güncellemeniz veya opcache.enable=0 ile devre dışı bırakmanız gerekebilir.

OPcache ve Diğer Performans Optimizasyonları

OPcache tek başına yeterli değildir. Kapsamlı bir performans stratejisi için diğer optimizasyon tekniklerini de uygulamanızı öneririz:

Sonuç ve Öneriler

PHP OPcache, doğru yapılandırıldığında uygulama performansını dramatik şekilde artıran güçlü bir araçtır. Production ortamı için önerilen temel yapılandırma:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.validate_timestamps=1
opcache.fast_shutdown=1
opcache.enable_cli=0

Uygulamanızın performansını test etmek için sunucu hizmetlerimizi inceleyebilir veya ekibimizle iletişime geçebilirsiniz. OPcache yapılandırmanızı optimize ederek, kullanıcı deneyimini iyileştirebilir ve arama motoru sıralamalarında SEO avantajı elde edebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward