Skip to content

Nisan 24, 2012

8

Alternative PHP Cache (APC) Kurulum ve Kullanımı

php-apc

Merhaba arkadaşlar, bu yazımızda bir PHP hızlandırıcısı olan APC (Alternative PHP Cache)  ‘nin kurulum ve kullanımını inceleyeceğiz.

PHP hızlandırıcılar hakkında temel bilgilere ulaşmak isterseniz PHP Hızlandırıcılar başlıklı yazımıza bakmak isteyebilirsiniz.

APC (Alternative PHP Cache) Nedir ?

APC, PHP ‘nin PECL (PHP Extension Community Library) kütüphanesi içinde yer alan, Windows ve Linux üzerinde çalışabilen ve PHP ‘ye eklenti olarak kurulabilen bir PHP hızlandırıcısıdır. Ayrıca APC ‘nin PHP 6 içinde yerleşik olarak gelme ihtimali olduğunun konuşulduğunu haber vermiş olalım.

APC Kurulumu

PHP APC WindowsWindows Üzerinde APC Kurulumu: APC kurulumu Windows için biraz sıkıntılı olsada imkansız değil. http://downloads.php.net/pierre/ adresinden PHP sürümünüze uygun APC eklentisini indirip PHP eklentilerinizin bulunduğu (örn: c:/php/ext) dizin altına atın. Daha sonra php.ini içerisinde
extension = php_apc.dll
direktifini ekleyip web sunucunuzu restart edin. Windows üzerinde APC kurulumu için Installing APC in Windows adresini ziyaret edebilirsiniz. phpinfo() çıktısının yandaki gibi görünmesi gerekiyor.

PHP APC UbuntuUbuntu (Linux) Üzerinde APC Kurulumu: Ubuntu üzerinde APC kurmak için aşağıdaki komutu girmeniz yeterli.

sudo apt-get install php-apc

Daha sonra web sunucusunuzu (apache, nginx vb) restart edin.

Ubuntu için phpinfo() çıktısında bulunan APC alanı yandaki resim gibi olacaktır.

APC ‘nin Önemli Ayarları

APC ‘yi ayarlamak için Windows üzerinde php.ini dosyasını, Ubuntu üzerinde (diğer Linux sürümlerinde benzer olabilir) /etc/php5/conf.d/apc.ini dosyasını kullanabilirsiniz.

Bellek boyutu; APC ‘nin varsayılan ayarlarında genellikle 32MB bellek alanı direktifi ile gelir. Eğer kodlarınız bu boyutu aşıyorsa değiştirmeniz yada belleğe alınacak dosyaları filtrelemeniz öneriliyor. Örnek ayar aşağıdaki gibidir.

#apc.shm_size=32 #max 32mb bellek kullan (default/varsayilan)
apc.shm_size=256 #256 mb bellek kullan

Dosya değişiklik kontrolü; ayrıca bir başka önemli ayarda APC ‘nin dosyaların değişip değişmediğine bakıp cachelenen dosyaları güncellemesidir. Eğer dosyalarınız sık sık (dakika bazında) değişmiyorsa bu ayarı kapatmanız performansı daha da artıracaktır. Ancak unutulmaması gereken nokta apc.stat direktifini 0 ‘a ayarladığınızda APC ‘i temizlemediğiniz sürece dosyaları değiştirseniz bile bellek kopyasındaki halinin çalışacağıdır. Örnek ayar aşağıdaki gibidir.

#apc.stat=1 #dosya degistiginde bellegi guncelle (default/varsayilan)
apc.stat=0 #dosya degisikliklerini kontrol etme (daha iyi performans)

APC İzleme / Gözlemleme

APC ‘yi ve bellekte bulunan dosyaların istatistiklerini izlemek için apc.php dosyası kurulumla birlikte gelir. Biz yinede bu dosyanın varsayılan halini paylaşıyoruz (apc.php). Bu dosya sayesinde bellek kullanım miktarı, belleğe alınan dosyaların aldığı hitler, kullanıcı tarafından eklenen (apc_add / apc_store) değişkenler gibi bir çok istatistiğe ulaşabilirsiniz.

Detaylı istatistiklere ulaşmak için apc.php dosyası içerisinde bulunan defaults('ADMIN_PASSWORD','password'); satırını güncellemeniz gerekir. Aksi halde APC monitor kodu (şifre varsayılan olduğu için) size bu bilgileri vermez.

APC ‘nin Memory Storage Özelliği

APC ‘nin bir başka özelliğide değişken önbellekleme yapan memory storage ‘dir. Bu özellik sayesinde belleğe attığınız bir değişkeni daha sonra (örneğin başka bir dosyadan) çağırabilirsiniz. Kullanılması son derece basit bir özelliktir. Ancak bu değişkenlere sadece aynı sunucudan erişilebilir (Memcache ve Redis gibi uygulamalarda olduğu gibi başka sunuculardan erişilemez yada dağıtık yapı kurulamaz). Detaylı kullanım bilgisi için Alternative PHP Cache (APC) Key-Value Storage Özelliği başlıklı yazıyı inceleyebilirsiniz.

APC Önbellek Boşaltma

APC ‘nin belleğe aldığı tüm dosyaları ve apc_add / apc_store kullanılarak eklenmiş değişkenlerin tamamını silmek için apc monitörü veya apc_clear_cache fonksiyonunu kullanmanız gerekiyor. Fonksiyon ile silmek için örnek dosya aşağıdaki gibidir.

<?php
header('Content-Type: text/html; charset=utf-8');

// APC eklentisi yüklü mü
if( false == function_exists('apc_cache_info') ) {
  echo "APC eklentisi yüklü değil!<br/>\n";
  exit;
}

// APC opcode temizle.
if( apc_clear_cache() ){
  echo "APC opcode belleği temizlendi!<br/>\n";
}

// APC degisken bellegini temizle
if( apc_clear_cache('user') ){
  echo "APC degisken bellegi temizlendi!<br/>\n";
}
?>

APC monitör üzerinden silmek için; APC monitöre login olduktan sonra sağ üstte bulunan Clear opcode Cache linkine tıklayarak opcode cache belleğini,  ”User Cache Entries” sayfasında iken “Clear user Cache” linkine tıklayarakta değişken belleğini temizleyebilirsiniz.

Sonuç ?

Yazımızı burada sonlandırırken konu hakkında detaylı bilgi yada kendi tecrübeleriniz için yazıya yorum bırakabileceğinizi hatırlatıyoruz.

Toplam 8 Yorum Yorum Yaz
  1. Cenk
    Eki 9 2012

    Windows Php 5.2.6 ‘ya uyumlu bir DLL arıyorum ancak bulamadım. Yardımcı olabilir misiniz?

    Cevapla
  2. alper
    Ara 12 2012

    Teşekkürler

    Cevapla
  3. Nizamettin AKSU
    Haz 1 2013

    Yazınız için teşekkür ederim… Peki bunu servera nasıl kurabiliriz??

    Cevapla
  4. barışl
    Ara 2 2015

    merhaba. Apc ile önbelleğe aldığım değişkenler belli bir süre sonra önbellekten siliniyor. Önbelleğe aldığım değişkenleri nasıl kalıcı hale getirebilirim?. Örneğin: 1, 2 yıl önbellekte kalsın..

    Cevapla

Trackbacks & Pingbacks

  1. Alternative PHP Cache (APC) Key-Value Storage Özelliği | Mustafa KIRIMLI
  2. Alternative PHP Cache (APC) Kurulum ve KullanımıFerdi KÜÇÜK - Kişisel Web Sayfası | Ferdi KÜÇÜK - Kişisel Web Sayfası
  3. Mustafa Aldemir » Yüksek Ziyaretçi Sayısı için Sunucu ve Wordpress Optimizasyonu
  4. PHP Hızlandırıcılar (PHP Accelerators) | ALİ ÇAKAR BLOG

Sizin fikriniz nedir? Lütfen aşağıdaki formu kullanarak yorum yapın.

(gerekli)
(gerekli)