APC Etkin ancak Apache Hala Dosyaları Açmak?

1 Cevap php

Ben çoğu istekleri etrafında 100 dosyalarını içerir dinamik PHP kodu veren bir yüksek trafik web sunucusu çiftlikte çalışıyorum. APC opcode önbellek include_once_override etkindir, etkin, ve ben önbellek 64MB ram tahsis etmişlerdir, ama ben bir Apache sürecini strace zaman hala açık () ing ve stat () ing tüm bu olmalı her istek için içerir görmek önbellek çekti. Ben önbellek doldurulur ve% 100 Hitrate ile kullanılan önbellek istatistikleri görebilirsiniz. Herkes herhangi bir fikir sunabilir?

1 Cevap

, Her tam pathnames kullandığınızdan emin olacak uygulama içerir. APC belgelerine başına:

apc.stat tamsayı

Bu ayarı değiştirirken dikkatli olun. Bu varsayılan üzerine, bu değiştirilmiş olup olmadığını belirlemek için her istek üzerine (kontrol) komut stat APC zorluyor. Modifiye edilmiş ise derlemeye ve yeni önbelleğe alacaktır. Bu ayar kapalı ise, APC genellikle dosyaları tekrar kontrol için APC zorlamak anlamına gelir, kontrol etmez, web sunucusu yeniden başlatılması veya önbelleği manuel olarak temizlenmesi gerekir gerekir. FastCGI web sunucu yapılandırmaları yeniden başlatma önbelleğini temizleyin unutmayın. Komut dosyaları nadiren değişiklik bir üretim sunucusuna, önemli bir performans artışı özürlü istatistiklerini elde edilebilir.

Dahil / gerekli dosyalar için de bu seçenek geçerlidir, ancak göreli yolu APC benzersiz dosyayı belirlemek amacıyla kontrol etmek için vardır (Unix / ile başlamayan herhangi bir yol) içerdiğini unutmayın. Mutlak yolu içeren kullanıyorsanız APC atlayacak ve dosya için benzersiz tanımlayıcı olarak mutlak yolu kullanabilirsiniz.

PHP için başparmak iyi bir kural böylece gibi projenize tam yolunu içeren bir sabit tanımlamak için:

// Assumes __FILE__ is in the root of your project
define('PATH_PROJECT', realpath(dirname(__FILE__)));

Sonra şöyle içerir kullanın:

include_once PATH_PROJECT . '/some/dir/file.php';

Böylece halen göreli yollar kolaylık var, ama gerçekten tam yolları kullanıyor.