İlk olarak kısaca APC’nin ne olduğundan bahsedeyim. APC’nin açılımı Alternative PHP Cache şeklindedir. APC PHP için opcode cache olarak çalışmaktadır. Yani derlenen bir PHP sayfasının direkt olarak RAM üzerinden çağrılmasını ve sayfanın tekrar yorumlanma sürecine girmemesini sağlayarak sunucunuzda hem performans artışı hem de yoğun yük altındaki sunucularda ciddi anlamda yük düşmesini sağlamaktadır.
Hatta bazı hazır uygulamalar, APC kullanarak PHP sayfaları haricinde sayfa çıktılarını veya çeşitli değişkenleri de RAM üzerinde tutmakta böylelikle inanılmaz performans artışları sağlanmaktadır.
Aşağıda verilen kurulum adımları Centos 6 64 bit versiyon üzerinde Plesk 11 kurulu sunucularda test edilmiştir.
ilk olarak aşağıdaki komutları vererek gerekli paketleri kuralım (Standart bir sunucu ve Plesk kurulumu yapıldıysa büyük ihtimalle aşağıdaki paketler olmayacaktır.);
yum install -y php-pear php-devel httpd-devel pcre-devel
Daha sonra aşağıdaki komutlar ile sunucumuzda bazı derleme paketlerinin olup olmadığını kontrol ediyoruz ve eğer yoksa onları da kuruyoruz.
which gcc
which make
Eğer yukarıdaki kontrollerde bir çıktı alınmıyorsa bu durumda aşağıdaki komutlar ile o paketleri de kurmamız gerekiyor.
yum install -y gcc
yum install -y make
Daha sonra aşağıdaki komut ile APC kurulumunu başlatalım. Büyük ihtimalle sorunsuz olarak kurulacaktır.
pecl install apc
Kurulum sırasında sorulan soruların hepsini enter ile geçerek default seçenekleri seçerek kurabilirsiniz. Daha sonra aşağıdaki komut ile apc.ini dosyasını oluşturup açalım.
nano /etc/php.d/apc.ini
Daha sonra da içine aşağıdaki satırı ekleyelim;
extension=apc.so
Daha sonra aşağıdaki komut ile Apache serverı restart ettiğimizde APC çalışmaya başlayacaktır.
service httpd restart
APC’nin çalıştığından emin olmak için aşağıdaki komut çıktısında APC’nin konfigürasyon bilgilerini görmeniz gerekir.
php -i |grep apc
APC’nin yeni sürümü çıktığında aşağıdaki komut ile kolayca güncelleyebilirsiniz.
pecl upgrade apc
APC ile ilgili çeşitli istatistikler almak ve çalışma durumunu kontrol etmek isterseniz, aşağıda yolu verilen php dosyasını herhangi bir vhost a atarak istatistiklere bakabilirsiniz.
/usr/share/pear/apc.php
Bolca RAM’iniz varsa, (özellikle biz NARWEB’de bol RAM’li sunuculara alışık olduğumuz için 🙂 ) size basit bir örnek APC conf verebilirim;
nano /etc/php.d/apc.ini
ile konfigürasyonu açarak içine bunları ekleyebilirsiniz.
apc.shm_size=2G
apc.num_files_hint=20000
apc.user_entries_hint=20000
apc.max_file_size=5M
Buradaki;
apc.shm APC için atadığınız RAM’i belirtiyor.
apc.num_files_hint APC’nin opcode cache tarafında toplamda kaç dosyaya tutacağını belirtiyor. Şunu belirteyim RAM müsait ise APC bunu aşıyor fakat RAM’in doğru optimizasyonu için buradaki rakamın kullanımınıza göre mantıklı verilmesi önemli.
apc.user_entries_hint APC’nin opcode cache dışında tutacağı toplam kayıt sayısını belirtiyor. Yine apc.num_files_hint te belirttiğim gibi APC RAM müsait ise bunu aşıyor fakat RAM’in adam akıllı parçalanma olmadan kullanılması ve APC’nin buna göre RAM’i optimize etmesi için bu rakamların kullanım durumunuza göre optimize edilmesi gerekiyor.
apc.max_file_size APC’nin caching yaparken tutacağı maksimum dosya boyutunu belirliyor.
APC’yi araştırdığınızda daha fazla ayar olduğunu görebilirsiniz. Burada sadece basit birkaç değişkeni değiştirerek sunucu kaynaklarını kullanmak ve performans elde etmek düşünülerek bu örnek verilmiştir. Siz ihtiyaçlarınıza göre daha farklı konfigürasyonlar da oluşturabilirsiniz.
Konuya ilgi olursa daha farklı yazılar ile caching konularına devam edebiliriz. 🙂
Merhabalar,
APC’yi kurdum ancak her apache işlemi ve kullanıcıya ait php-cgi işlemi için ayrı bir apc oturumu oluşturuyor.
Lütfen yardımcı olur musunuz?
Merhabalar,
kullandığınız yapı tam olarak nasıl yani işletim sistemi nedir? Panel kurulu mu? PHP sürümü? Plesk kullanıyorsanız PHP’yi hangi modda kullanıyorsunuz?
Bu ayrıntıları verirseniz beraber kontrol edebiliriz.