OPcache PHP önyükleme optimizasyonu

WordPress , Joomla veya Laravel tabanlı ve kullanıcıya özel içeriğe sahip olmayan web siteleri için, tüm sayfaların statik bir HTML önbelleğinde tutulması ve arka uçta değişiklikler yapıldığında önbelleğin yalnızca manuel olarak (veya otomatik olarak) yeniden oluşturulması önerilir. Bununla birlikte, sayfa oturumlara ve çerezlere veya ayrıca dil ve konuma bağlı dinamik içerik içeriyorsa, OPcache uygundur .


Bahsedilen üç sistemin tümü için önyükleme süresi, yeni kurulmuş bir CentOS7 sunucusuyla (SSD ve PHP 7.1 ile) 100 ms'nin üzerindedir. Bir PHP betiği her çalıştırıldığında, çalışma zamanında bayt kodu olarak derlenmelidir. OPcache artık bu bayt kodu için bir önbellek uygulamaktadır - eğer aynı PHP betiği sonraki istekle çalıştırılırsa, yeniden derlenmesi gerekmez. OPcache'yi etkinleştirdikten sonra aşağıdaki ayarları yapıyoruz:

9006cec6c5d3d2498ee26c5bfd91590a

Yürütme süresi (ortalama 10 yürütmenin üzerinde) artık önemli ölçüde azaltıldı:

WordPress 4.7.4 Joomla 3.7 Laravel 5.4
OPcache olmadan 295 ms 201 ms 110 ms
OPcache ile 54 ms 59 ms 13 ms
Faktör 5,5 3,5 8,5

Validate_timestamps değerini 0 olarak ayarladığımız ve aynı zamanda revalidate_freq'i bir günlük bir süreye ayarladığımız için, önbellek neredeyse hiçbir zaman otomatik olarak yeniden oluşturulmaz (bunu bilinçli olarak manuel olarak yaparız). Küçük bir git kancası ile her "çekme" ile bir PHP betiği çalıştırılır. Kanca nasıl etkinleştirilir:

a1678610c8b4c7db5997375944183830

a1678610c8b4c7db5997375944183830

Aşağıdaki yardımcı işlev, tek tek kod parçalarını (veya tüm yürütme süresini) ölçmek için de yararlıdır.:

085f4291bbcc4e8a64bbea951ff49ab9

Durum, kullanılan bellek veya önbelleğe alınmış dosya sayısı gibi yararlı bilgiler almak istiyorsanız, bu PHP işlevini kullanabilirsiniz.:

3f6309d04bc7e48dd909859321b96209

Yerel bir geliştirme ortamında (ki bu genellikle tavsiye edilmez) OPcache'den faydalanmak için bir numara kullanırız.

OPcache, OPcache modülünün kurulu olduğu ve opcache.enable ayarının açıkça ayarlanmadığı tüm sunucularda etkindir. Bu şekilde bırakıyoruz. Php.ini içinde sadece opcache.validate_timestamps = 1 olarak ayarladık.Bu, opcache.revalidate_freq = 2 olduğu anlamına gelir. Bu, OPcache'nin her proje için neredeyse sürekli olarak yeniden doğrulandığı anlamına gelir. OPcache'yi kalıcı olarak etkinleştirmek istediğimiz projeler için, proje ile ilgili kullanıyoruz .htaccess içinde aşağıdaki ayarı:

1dd64a3f2fe4425b29b1409410fe3fc0

Ardından web sunucusunu yeniden başlatıp aşağıdaki betiği oluşturuyoruz:

91fb5289160e410607c9ea89112a575b

Bu komut dosyası, önbelleği temizler ve aynı zamanda yeniden oluşturur. Şimdi favori editörümüz VSCode'da çalışma alanıyla ilgili bir RunOnSave komutu ayarlıyoruz.:

91fb5289160e410607c9ea89112a575b

Geri