PoolByte

PHP OPcache: Performans ile güncel kodu birlikte yönetmek

· PoolByte Technology

PHP OPcache: Performans ile güncel kodu birlikte yönetmek

PHP OPcache, PHP dosyalarının derlenmiş hâlini bellekte tutarak aynı derleme işinin tekrarını azaltır. Ziyaretçiye hazır HTML sunmaz ve veritabanı sonuçlarını kendiliğinden saklamaz. Bu nedenle sayfa önbelleği veya Redis ile aynı ayar sanılması, performans sorununda yanlış katmana müdahale edilmesine yol açabilir.

OPcache hangi işi azaltır?

Bir PHP isteği çalışırken kodun okunması ve çalıştırılabilir biçime hazırlanması gerekir. OPcache bu hazırlığın sonucunu yeniden kullanabilir. PHP yapılandırma dokümanı, bellek ve dosya denetimi seçeneklerini ayrıntılandırır. Uygulamanın dış servis beklemesi veya ağır SQL sorgusu çalıştırması ise başka bir maliyettir.

Örneğin aynı sayfada yüzlerce PHP dosyası yükleyen bir uygulama düşünün. Derleme yükü azalabilir; fakat ödeme sağlayıcısına yapılan yavaş bir çağrı aynı süreyi almaya devam eder. Bu yüzden ayarı etkinleştirdikten sonra yalnız toplam süreyi değil, isteğin zamanını nerede harcadığını da inceleyin. İyileşmenin kaynağını bilmeden ikinci bir ayar turuna geçmeyin.

Bellek ve dosya bütçesini birlikte okuyun

Yeterli bellek bulunması tek başına bütün dosyaların önbellekte tutulacağı anlamına gelmez. Yapılandırmadaki dosya sayısı sınırları ve uygulamanın dosya çeşitliliği de önemlidir. Birden fazla site aynı PHP havuzunu kullanıyorsa ölçümün hangi kapsamı temsil ettiğini hosting sağlayıcısından öğrenin.

Durum ekranı gerekiyorsa yalnız yetkili erişime açın. Tam PHP bilgi çıktısını herkese açık bir adreste bırakmak; dosya yollarını, modülleri ve çalışma ortamını gereksiz yere ifşa edebilir. opcache_get_status dokümanı, alınabilen durum verilerini gösterir; bu veriler bir kamuya açık tanıtım sayfası değildir.

Yeni kodun görünmesi nasıl sağlanır?

Dosya değişikliklerini denetleme davranışı yayın sürecinin parçasıdır. Zaman damgası kontrolü devre dışı bırakılmışsa yeni dosyalar yüklendiğinde ilgili web çalışma ortamında önbelleğin geçersizleşmesi veya sürecin uygun şekilde yenilenmesi gerekebilir. Komut satırından yapılan bir işlemin web istekleriyle aynı havuzu etkilediğini varsaymayın.

Yayın sırasında eski ve yeni dosyaların karışmasını da engelleyin. Atomik sürüm geçişi, kod yükleme sırası ve sağlık kontrolü birbiriyle uyumlu olmalıdır. Yeni sürümden sonra sayfanın bir kısmı eski davranışı sürdürüyorsa, tarayıcı önbelleğinin yanında OPcache ve çalışan süreçleri de değerlendirin. Bütün önbellekleri rastgele temizlemek teşhisi zorlaştırır.

Sağlam bir kontrol planı

  • Web isteğinin kullandığı PHP sürümü ve havuzu belirleyin.
  • Yük altında bellek tüketimi ve yeniden başlatma nedenlerini gözlemleyin.
  • Sürüm işaretini hem ilk istekte hem sonraki isteklerde kontrol edin.
  • Geri dönüşte önceki sürümün gerçekten çalıştığını doğrulayın.
  • Yalnız denetim için açılan dosya veya ekranları erişimden kaldırın.

OPcache ayarlarını uygulamanın yayın yöntemiyle birlikte ele almak, hız kazanırken eski kod çalıştırma riskini azaltır. PHP sürüm değişiklikleriyle ilgili ayrı kontrolleri yükseltme rehberinde bulabilirsiniz; sürüm uyumluluğu ile çalışma zamanı önbelleği farklı testler gerektirir.