Drupal bellekleme - hızlandırma (Cache)

İlgili Konular: Drupal Genel Bilgiler     
Medyatik Blog İçerik Resmi

Sitelerimizi kurduktan sonra gelişmesi boyunca sitemiz giderek yavaşlamaktadır. Bu yavaşlamayı gidermek için çeşitli yöntemler mevcuttur. Ben bu yazımda en hızlı ve doğru olarak bu işlemi nasıl gerçekleştiririz ona değineceğim.

Öncelikle ilk yapmamız gereken temamızın kodlarını düzenli hale getirmektir. Bu ne demek oluyor derseniz fazlalık tüm kodları çıkartmaktır. CSS dosyalarında ise kodlarımızı tek satır halinde toplamamız bizim yararımıza olacaktır.

Şimdi gelelim bellekleme işlemine; bu işlem için drupal sisteminin temelindeki modül ne yazıkki işimizi fazla göremiyor veya yetersiz gelmektedir.

Öncelikle bellekleme için bir sürü eklenti bulunduğunu belirtmeliyim. Eklentilerin topluca açıklandığı sayfaya baktığınızda bunu sizde görebilirsiniz.

Ayrıca performansını nasıl hızlandırabileceğinizi görebilmek için bu sayfaya bakabilirsiniz.

Şimdi gelelim bizim yapacağımız bellekleme işemine:

-Öncellikle sitemizin içeriğini sadece ziyaretçilerin mi yoksa kullanıcılarında aktif mi olacağına karar vermeliyiz.

Kullanıcısız siteler için bellekleme:

İlk olarak sadece ziyaretçilerin takip ettiği bir sitemiz varsa Boost eklentisini kurmamız yeterlidir. Bu eklenti sitemizin sayfalarını bir html sayfa imiş gibi bellekleyerek her seferinde veri tabanı,css ve scriptlerimize bağlanmayı engellemektedir. Şu anda Medyatik blog da kullanılan bellekleme türüde budur.

Kullanıcılı siteler için bellekleme:

Kullanıcıların aktif olduğu sitelerde Boost eklentisini kullanmadaki gibi kolaylıklar ne yazıkki yok bizi biraz daha uğraştıran bir yapısı mevcut. Boost ziyaretçiler için en iyi bellekleme eklentisi olduğundan bu eklentiyi kullanıcıların aktif olduğu sitemizede kurabiliriz. En azından ziyaretçiler için boş yere veri tabanına bağlantı kurulmaz.

Şimdi gelelim bizim yapacağımız asıl belleklemeye, bunun için Authenticated User Page Caching (Authcache) ve Cache Router eklentilerini indirelim ve ftp ile sitemizin bulunduğu dizinlere aktaralım. Modülleri aktif etmeden önce yapacağımız bir kaç işlem var.

Şimdi sitemizin setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/authcache/authcache.inc';

satırını ekleyelim. Bu işlemden sonra authcache modülünü sistem çağırabilir olacaktır.

Cache Router modülünün çalışabilmesi için doğru yapılandırılması gerekmektedir. Kullandığımız web alanına göre bu işlem farklılıklar göstermektedir.

-Paylaşımlı web alanı kullananlar için(Normal Hosting):

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/contrib/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
  'default' => array(
    'engine' => 'db',
    'server' => array(),
    'shared' => TRUE,
    'prefix' => '',
    'path' => 'sites/default/files/filecache',
    'static' => FALSE,
    'fast_cache' => TRUE,
  ),
);

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'file',
),
);

Satırlarını ekleyelim.

-Dedicated Server veya VPS Hosting:

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'apc',
),
);

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'xcache',
),
);

Satırlarını ekleyin.

-Multi-Server Dedicated Hosting:

Setting.php dosyasını bilgisayarımıza indirelim ve bir editleme programı yardımı ile açalım. Sayfanın en altına;

$conf['cache_inc'] = './sites/all/modules/cacherouter/cacherouter.inc';
$conf['cacherouter'] = array(
'default' => array(
'engine' => 'memcache',
'server' => array('localhost:11211', 'localhost:11212'),
'shared' => TRUE,
'prefix' => 'prod',
),
'cache_page' => array(
'engine' => 'file',
),
);

satırlarını ekleyelim. Bu satırlarda localhost yazan yere kendi sunucumuzun IP adresini yazmamız gereklidir.

Son işlemler:

Artık eklentilerimizi aktif edebiliriz. Eklentileri aktif ettikten sonra cache router ile ilgili bir ayar bulamayacaksınız bu eklenti arka planda çalışmaktadır.

Authcache eklentisinin ayarları için ise drupal sisteminin klasit performans sayfasına yeni eklenen Authcache sekmesine tıklamanız yeterlidir. Burada hangi kullanıcı tolleri için bellekleme yapılacak gibi seçenekler mevcuttur. Eğer sitenizde bu ayarları yaparken kullanıcı girişleri mevcut ise en alttaki seçeneği seçtikten sonra kaydet demenizi tavsiye ederim. Seçenekte giriş yapmış kullanıcılara zorunlu çıkış yaptırılarak bellekleme işlemi gerçekleşmiş sayfaların sunulacağını belirtmektedir.

Yorumlar

cache eklentileri bazen sitelerin düzgün çalışmamasına neden olabiliyor bazende indexlenmeme sorunu olabiliyor

Bilgi için teşekkürler. Ancak doğru bir yapılandırma ve aktif çalışan cron işlemleri ile olumsuz bir duruma rastlamadım .Ancak cronların çalışmaması özellikle sıkıntı oluşturabiliyor.

Merhaba,
1.Boost ve Authcache'i birlikte kurmaya gerek var mı? Authcache'e boost özellikleri de dahil mi?

2.D7 için Authcache Dev sürümü mevcut CR içinse D7 sürümü yok.
Authcache tek olarak kurmamız yeterli olur mu yada CR'nin ne gibi bir katkısı var?

3. Boost yada Authcache'i kurduktan sonra Core Cache'deki .Cache pages for anonymous users
.Blokları önbelleğe al
ve CSS özelliklerini deaktif mi etmeliyiz.

Teşekkürler.

Her ikisininde kentine ait özellikleri vardır. Boost sadece kullanıcı girişi yapılmadığında sayfaları bellekten gösterebilmektedir, diğeri ise her ikisinde de geçerli olmaktadır. Ben sadece birini tercih etmenizi öneririm.

7 için bir denemem olmadığından herhangi bir bilgi vermem doğru olmayacaktır. Denedikten sonra sonucu bizimle paylaşırsanız sevinirim.

Eklentinin açıklamalarını okuduğunuzda hangisinin kapalı hangisinin açık kalması gerektiğini görebilirsiniz. Versiyonlarına göre farklılık gösterebilir.

Cihan hocam evet dediğiniz şekilde boast ekranında belleklenmiş sayfa sayısını gözlemleyebiliyorum...tşk ederim

Yukarıdaki ayarlar tamamen uygulanmışmıdır? Ben dedication sunucu kullanıyorum, fakat yukarıdaki kodları setting.php'ye kopyaladığım halde hatalar alıyorum.. tşk ederim.
(not:yukarıdaki kodların hepsini denedim)

Hatalar tam olarak nedir bunu bilmeden yorum yapmak zor?
Boast ekranında bellekleme görünüyorsa bellekleniyordur sayfalarınız. Sunucular için memcache gibi daha farklı eklentiler var bu diğer eklentiler bellekleme işini daha sağlıklı yapabilir düşüncesindeyim. Bu sayfada bahsedilen yöntemler reseller veya paylaşımlı hosting hizmetleri için daha verimlidir. Ayrıca kullanıcılı bir siteniz varsa boast bu sistemde etki etmemektedir. Sadece kullanıcı girişi yapmayarak siteyi gezen ziyaretçileriniz bellekleme işleminden dolayı hızı farkedeceklerdir.
Cevabın biraz geç olmasından dolayı özür dilerim.

belleklendiğini nasıl anlayabiliriz? Bu modülleri tarif ettiğiniz şekilde kullandığım halde, sayfalardaki sayaçlar, sayfayı yeniledikce artmaya devam ediyor, bu belleklenmediğini göstermezmi?

Hayır sayacın artması belleklenmediğini göstermez. Hangi eklentiyi kullandığınızı bilmiyorum ancak, boast kullandınız diyelim yönetim sayfasında kaç adet sayfa ve dosyanın belleklendiğini gösterecektir.
Eğer ayarlarını doğru bir şekilde gerçekleştirdi iseniz sitenizde büyük oranda farkedilebilir hızlanma gözlemleyeceksinizdir.

Yeni yorum veya soru gönder

Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • You may insert videos with [video:URL]

Biçimlendirme seçenekleri hakkında daha fazla bilgi


1 + 1 =
Basit matematik sorusunuz çözünüz. Örn; 1+3= 4