Yakında yayınlamak istediğimiz Laravel 5.1 tabanlı bir projemiz var. Sunucu kurulumunu optimize etmeye çalışıyoruz.Zend Opcache tüm dosyaları önbelleğe almıyor (CentOS 6.7 + Nginx 1.8.1 + PHP 7 + Laravel 5.1)
Başlıkta listelendiği gibi, bunu bir CentOS 6.7 sunucusunda, Nginx 1.8.1 ve PHP-FPM ile PHP 7 kullanarak dağıtıyoruz. CentOS 6.7'nin depoları PHP 7'yi sunmadığından, IUS'un yedek paketlerini kullanıyoruz.
Zend Opcache'nin etkin performansa ve çalışmaya devam etmesine rağmen (iyi bir isabet oranına sahibiz), performansımızın kötü olmasına neden olabilecek şeylerden biri, projemizdeki tüm dosyaları önbelleğe almıyor gibi görünüyor. . Önbelleğin içeriğini görselleştirmek için opcache-gui kullanıyoruz ve proje dosyalarının birçoğu (üçüncü parti kütüphanelerden dosyalar dahil) varken, ana kontrolcü ve destekleyici sınıfların birçoğu dahil olmak üzere çoğu kayıp var. Aslında, Opcache'yi kapattığımızda, yanıt süreleri hemen hemen aynı kalır. Opcache kara listesi şu anda boş, bu yüzden dahil edilmedikleri nedeni bu değil.
Opcache_compile_file() yöntemini kullanarak eksik dosyaları zorla önbelleğe almaya çalıştık ve dosyalar derlendiğinde ve önbelleğe alınıp, hiçbir zaman isabet almaz.
Opcache'nin yürütülmekte olan tüm dosyaları önbelleğe alacağı benim anlayışımdı, fakat bu burada olup bitenler gibi görünmüyor. Opcache ayarlarına baktım ama kara listeden başka, bu tür davranışları açık bir şekilde etkileyecek bir şey bulamadım.
Eksik olduğum başka bir şey var mı? PHP'nin önbelleklenip neyin önleneceğine karar verirken kullanacağı diğer kriterler nelerdir?
Konuyla ilgili herhangi bir yardım memnuniyetle karşılanacaktır!
Bahsettiğim bir başka şey ise, opcache.excache.ini dosya ayarında 'opcache.max_accelerated_files' ayarlanabilen, opcache'nin işlem yapabileceği hızlandırılmış dosya sayısının bir sınırı olduğunun farkındayım. Şu anda tüm dosyalarımızı kapsamak için fazlasıyla yeterli olan 8000'e ayarlanmış bulunuyoruz, ancak sadece 163'ü sonlandırılıyor. – santista
Bellek tüketimi de bir sorun gibi görünmüyor, çünkü 128MB'yi "opcache.memory_consumption" ile ayırdık, opcache-gui sadece 23.1MB gösteriliyor. – santista
Buna bir çözüm mü? Aynı problemi yaşıyorum. – anon