PHP 8.x ile birlikte gelen OPcache, sunucu performansı denince akla gelen ilk araçlardan biri. Aslında OPcache, PHP'nin yorumlanmış betiklerini bellekte saklayarak her istekte yeniden derleme işlemini ortadan kaldırır. Bu da özellikle yoğun trafik alan sitelerde CPU yükünü ciddi oranda azaltır ve sayfa yükleme sürelerini iyileştirir. Peki bu ayarları doğru yapılandırmak için nelere dikkat etmeliyiz?
OPcache Nedir ve Neden Önemlidir?
Normal şartlarda PHP, her HTTP isteğinde betik dosyalarını okur, derler ve çalıştırır. OPcache bu derlenmiş dosyaları paylaşılan bellekte tutar. Böylece aynı betik tekrar istendiğinde, derleme aşaması tamamen atlanır. Özellikle WordPress, Laravel veya Magento gibi büyük framework'lerde bu farkı net şekilde hissedersiniz. Doğru ayarlanmış bir OPcache, sunucu yanıt süresini %30-50 oranında kısaltabilir.
Temel OPcache Ayarları
OPcache ayarlarına php.ini dosyasından veya hosting panelinizden erişebilirsiniz. İşte en kritik parametreler ve önerilen değerler:
- opcache.enable=1: OPcache'i etkinleştirir. Zaten 1 olmalı, aksi halde hiçbir faydası olmaz.
- opcache.memory_consumption: OPcache'in kullanacağı bellek miktarı (megabayt cinsinden). Küçük siteler için 64-128 MB yeterliyken, büyük uygulamalar için 256-512 MB gerekebilir. Ne kadar çok dosyanız varsa o kadar bellek ayırın.
- opcache.interned_strings_buffer: İnterned string'ler için ayrılan bellek (megabayt). Genelde 8-16 MB iyi bir başlangıçtır. Büyük projelerde 32 MB'a çıkabilirsiniz.
- opcache.max_accelerated_files: Önbelleğe alınacak maksimum PHP dosyası sayısı. Bu değer, projenizdeki toplam PHP dosya sayısından biraz fazla olmalı. Örneğin 10.000 dosyalı bir projede 20000 gibi bir değer kullanabilirsiniz. Varsayılan 10000, çoğu site için yeterli.
- opcache.revalidate_freq: Dosyaların ne sıklıkla kontrol edileceği (saniye). 60-120 saniye arası iyi bir denge sağlar. Geliştirme ortamında 0 yapabilirsiniz ama canlıda 60 önerilir.
- opcache.validate_timestamps=1: Dosya değişikliklerini kontrol etmek için açık bırakın. Kapatırsanız, her değişiklikten sonra manuel temizlik gerekir.
Örnek Bir Yapılandırma
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.revalidate_freq=60
opcache.validate_timestamps=1
Bu ayarlar orta ölçekli bir WordPress sitesi için idealdir. Eğer sunucunuzda birden fazla site barındırıyorsanız, her site için ayrı OPcache ayarı yapmak yerine genel değerleri yükseltebilirsiniz.
OPcache'i Test Etme
Ayarları yaptıktan sonra phpinfo() sayfasından OPcache bölümünü kontrol edin. Ayrıca opcache_get_status() fonksiyonuyla anlık kullanımı görebilirsiniz. Eğer cache_full değeri sık sık 1 oluyorsa, bellek miktarını artırmanız gerekebilir.
Dikkat Edilmesi Gerekenler
OPcache'i canlıda kullanırken, betik güncellemelerinden sonra önbelleği temizlemeyi unutmayın. Bunun için opcache_reset() fonksiyonunu kullanabilir veya opcache.revalidate_freq süresini bekleyebilirsiniz. Ayrıca CDN veya ters proxy kullanıyorsanız, OPcache ile çakışma olmadığından emin olun.
Sonuçta, OPcache ayarlarını sunucunuza ve projenize göre optimize etmek, performans artışında en ucuz ve etkili yöntemlerden biridir. Birkaç dakikalık ayar değişikliğiyle kullanıcı deneyimini ciddi şekilde iyileştirebilirsiniz. Unutmayın, her sunucu farklıdır; bu nedenle değerleri deneyerek en uygun kombinasyonu bulmanızda fayda var.