Skip to content

Mayıs 8, 2012

XCache Kurulum ve Kullanımı

xcache

Merhaba arkadaşlar, bu yazımızda bir PHP hızlandırıcısı olan XCache ‘in 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.

Yanda bulunan resmin XCache logosu değil sadece temsil niteliğinde olduğunu belirtmeden geçmeyelim.

XCache Nedir ?

Bir Lighttpd developerları tarafından geliştirilen XCache, Windows ve Linux üzerinde çalışabilen PHP hızlandırıcısıdır. Geliştiricinin ifadesine göre APC ve eAccelerator ‘ın eksikleri üzerine geliştirilmiştir.

XCache Kurulumu ?

xcache-windows

Windows Üzerinde APC Kurulumu: Windows üzerinde XCache kurmak için bu adresten PHP versiyonunuza uygun zip dosyasını indirip php_xcache.dll dosyasını PHP eklenti klasörüne kopyalayın (Örneğin: C:\PHP5\ext).

Daha sonra php.ini içerisine yine indirdiğimiz pakette bulunan xcache.ini ayarlarını kopyalayalım. Ayrıca ; extension = php_xcache.dll satırının yorumunu kaldıralım ve sunucumuzu yeniden başlatalım.

İşletim sistemi : Windows XP SP2
Web Server : Apache 2.2.22
PHP : 5.2.17
XCache : 1.3.2

xcache ubuntu php info

Ubuntu (Linux) Üzerinde APC Kurulumu:  Ubuntu üzerinde XCache kurmak için aşağıdaki komutu girmeniz yeterli.
sudo apt-get install php5-xcache
Daha sonra web sunucusunuzu (apache, nginx vb) restart edin.
Ubuntu için phpinfo() çıktısında bulunan XCache alanı yandaki resim gibi olacaktır.

Kurulum esnasında mevcut PHP hızlandırıcılar muhtemelen devre dışı kalacaktır. Siz yinede kurulumdan önce yedek alırken mevcut PHP hızlandırıcı ayarlarınıda dahil etmeyi unutmayın.

Ayrıca kurulumdan önce mevcut PHP hızlandırıcınızı devre dışı bırakmanız uygun olabilir.

XCache ’in Önemli Ayarları

XCache ‘i ayarlamak için Windows üzerinde php.ini dosyasını, Ubuntu üzerinde (diğer Linux sürümlerinde benzer olabilir) /etc/php5/conf.d/xcache.ini dosyasını kullanabilirsiniz. XCache ‘in ayarları Alternative PHP Cache (APC) Kurulum ve Kullanımı başlıklı yazımızı okuyan veya daha önce APC kurulumu yapmış olan ziyaretçilerimize çok tanıdık gelebilir. Bunun nedeni XCache ‘in APC ve Eaccelerator dan yola çıkılarak yazılmış olması veya kullanıcıların kolay geçiş yapabileceği bir söz dizimi tasarlanması olabilir.

Opcode için bellek boyutu; XCache ‘in varsayılan ayarlarında genellikle 32MB bellek alanı direktifi ile gelir. Eğer kodlarınız bu boyutu aşıyorsa değiştirmeniz öneriliyor. Örnek ayar aşağıdaki gibidir.

#xcache.size = 32M #max 32mb bellek kullan (default/varsayilan)
xcache.size = 256M #256 mb bellek kullan

Dosya değişiklik kontrolü; Ayrıca bir başka önemli ayarda XCache ‘in 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 xcache.stat direktifini off ‘a ayarladığınızda XCache ‘i temizlemediğiniz sürece dosyaları değiştirseniz bile bellek kopyasındaki halinin çalışacağıdır. Örnek ayar aşağıdaki gibidir.

#xcache.stat = On #dosya degistiginde bellegi guncelle (default/varsayilan)
xcache.stat = Off #dosya degisikliklerini kontrol etme (daha iyi performans)

Bellekte değişken depolamayı aktif etme; Başlangıç için XCache ‘in bir diğer işimize yarayabilecek önemli ayarı ise bellekte değişken depolama özelliğini aktif eden direktif olabilir. Bizim kurulumumuzda bu özellik kapalı olarak geldi. Eğer bellekte değişken depolama özelliğini aktif etmek isterseniz aşağıda nasıl etkinleştirileceğini gösteren örnek ayar mevcut.

#xcache.var_size = 0M #bellekte degisken depolama kapali (default/varsayilan kapalı)
xcache.var_size = 32M # bellekte degisken depolama için 32M alan kullan (açık)

XCache İzleme / Gözlemleme

XCache ‘i ve bellekte bulunan dosyaların istatistiklerini izlemek için XCache admin arayüzü kurulumla birlikte gelir. Biz yinede bu dosyanın varsayılan halini paylaşıyoruz (xcache-admin). Bu arayüz sayesinde bellek kullanım miktarı, belleğe alınan dosyaların aldığı hitler, kullanıcı tarafından eklenen (xcache_set) değişkenler gibi bir çok istatistiğe ulaşabilirsiniz.

Ancak bu arayüze erişebilmeniz için XCache ayar dosyasında (bir önceki adımda bahsettiğimiz php.ini / xcache.ini)  xcache.admin.pass satırını güncellemeniz gerekir. Bu satıra md5 ile şifrelenmiş bir değer girmeniz gerekir. Bunu yapmak için birçok yol olduğu gibi xcache admin dosyalarının içinde gelen mkpassword.php dosyasınıda kullanabilirsiniz.

XCache ‘in Memory Storage Özelliği

XCache’in bir başka özelliğide (APC ‘de de olduğu gibi) 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 XCache Key-Value Storage Özelliği başlıklı yazıyı inceleyebilirsiniz.

XCache Önbellek Boşaltma

XCache ‘in belleğe aldığı tüm dosyaları ve xcache_set kullanılarak eklenmiş değişkenlerin tamamını silmek için XCache admin arayüzünü veya xcache_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');

// XCache eklentisi yüklü mü
if( false == extension_loaded('XCache') ) {
  echo "XCache eklentisi yüklü değil!";
  exit;
}

// Tum XCacheler icin donguye gir
for($i = 0; $i < xcache_count(XC_TYPE_PHP); $i++){
  // XCache PHP cache temizle.
  xcache_clear_cache(XC_TYPE_PHP, $i);
  echo "$i. XCache opcode belleği temizlendi!<br/>\n";
}

for($i = 0; $i < xcache_count(XC_TYPE_VAR); $i++){
  // XCache degisken cache temizle.
  xcache_clear_cache(XC_TYPE_VAR, $i);
  echo "$i. XCache değişken belleği temizlendi!<br/>\n";
}

?>

XCache admin arayüzünden silmek için, XCache admin arayüzüne  login olduktan sonra anasayfada Caches bölümü altında bulunan opcode (php#0, php#1, php#2 ..) ve değişken bellekleme (var#0, var#1, var#2 ..) bilgilerinin bulunduğu satırdaki clear butonuna tıklamanız yeterli olacaktır.

Sonuç ?

XCache, rakiplerinden aşağı kalır yanı olmayan kullanım alışkanlığınıza veya kendine has özellikleri için kullanmak isteyebileceğiniz güzel bir PHP hızlandırıcısıdır.

Sonraki yazılarımızda görüşenedek bol optimizasyonlu günler diliyoruz.

Toplam 11 Yorum Yorum Yaz
  1. Coşkun Soysal
    May 8 2012

    Xcache konusununda çok bilgilendirici bir yazı olmuş. Yazının görseller ile desteklenmesi akıcılığı arttırmış.

    +Rep :)

    Cevapla
  2. Nuknettin
    Ağu 13 2012

    Xcache de APC gibi opcode önbellekleme yapıyor mu?

    Cevapla
  3. Erhan
    Oca 23 2013

    Merhaba,
    Xcache .php dosyalarını önbelleğe alarak hız kazandırıyor.
    Benim öğrenmek istediğim şu;
    .php dosyasının içeriğini alıp önbelleklememi yapıyor, yoksa .html ye dökümünümü alıp önbellekleme yapıyor.

    Örneğin bir içerik sayfasında içeriğin ne kadar kişi tarafından okunduğuna dair bir sayaç var. “34 Kişi okudu” gibi. Sayfa okundukça sayaç artacağı için bu ibare “35 Kişi okudu” gibi ard arda artış gösterecek. Yani dosya devamlı değişmiş olacak.

    Mantıken eğer .html çıktısını önbellekleme yapıyorsa bu gibi sayfalarda xcache tam performans vermeyecektir? doğrumudur acaba yanlış anlaşılmamı oluyor?

    Teşekkürler.

    Cevapla
    • Oca 25 2013

      Öncelikle ilginize teşekkür ederim,

      Çok yerinde bir soru. Bu sorunun cevabı aslında PHP Hızlandırıcılar (PHP Accelerators) yazısında mevcut. PHP çıktılarını değil php kodlarını önbellekleme yapıyor. Yani sizin örneğiniz üzerinden gidecek olursak her çalıştığında güncel datayı alacaktır 35,36,37,38 şeklinde.

      Cevapla
      • Erhan
        Oca 25 2013

        Cevabınız için teşekkür ederim.
        Yazınızı okuyacağım. Yalnız özet olarak, şu haliyle sadece .php kodlarını önbellekleme yaptığında ne gibi avantaj olmuş oluyor. Her sayfa gösteriminde .html çıktı için çalışıyor sonuç olarak.

        Cevapla
      • Erhan
        Oca 25 2013

        “PHP Hızlandırıcılar (PHP Accelerators)” yazınızdan cevabımı aldım ilginiz için teşekkür ederim.

        Sonuç olarak anladığım kadarıyla .php dosyalarını önbellekleyip çeşitli işlemlerin tekrar tekrar yapılmasını engelilyor.

        O halde şu satırı;

        xcache.size=256M

        Kullanılan .php dosyalarının toplam boyutu olarak düzenleyebilirmiyiz?
        Örneğin benim kullandığım .php dosyaları toplamda 1.55MB yapıyor. Bu ayarı;

        xcache.size=2M

        yapsam yeterli olmuş oluyor mu?

        Cevapla
      • Oca 25 2013

        Eğer XCache Key-Value Storage Özelliği ‘ni kullanmıyorsanız toplam PHP dosya boyutuna yakın bir direktifle çalıştırabilirsiniz. Ayrıca yeterli olup olmadığını XCache admin ‘den gözlemleyebilirsiniz.

        Cevapla
  4. Süha Mete
    Ağu 16 2013

    Ben bir wordpress kullanıcısı olarak xcache i nasıl kullanabilirim? Yardımcı olabilir misiniz?

    Cevapla
  5. Harun
    Eki 28 2013

    Çok güzel bir şekilde anlatmışsınız. Elinize sağlık teşekkür ediyorum.

    Cevapla

Trackbacks & Pingbacks

  1. XCache Key-Value Storage Özelliği | Mustafa KIRIMLI
  2. 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)