astropaykartsatis.net
User Tag List

Yeni Konu Aç Cevap Yaz
Toplam 3 Sayfadan 1. Sayfa
24.01.2008, 19:48 1 (permalink)
iyinet
iyinet Paylaşım için teşekkürler
  • Neredenİzmir Şubesi
  • Üyelik Tarihi2.09.2002
  • Ticaret Sayısı0
  • Mesajlar5,572
vbSEO icin memcached yerine Xcache kullanın #permalink (permalink)
PHP için Cache yöntemlerine merak saldığımdan bu yana pek çok makale ve post okudum.

Özellikle yurt dışında bu konu 2005 itibarı ile oldukça yaygın hale gelmiş.

Çok yoğun bir siteye sahip olup cache sistemi kullanmayan neredeyse yok gibi.

Geçtiğimiz günlerde vBulletin + vbSEO ikilisini hızlandırmak için memcached in nasıl kullanılabileceğini ve kurulumunu anlatmıştım.

Memcached i kurup deneyenler (bende dahil) memnun kalıp herkese memcached kurmalarını tavsiye etmiştik.

Loadlar düşmüş ve sayfa açılımları hızlanmıştı.

Ancak bununla kalmayıp başka neler yapabilirim diye araştırmaya devam ettim.

Araştırmalarım halen devam ediyor ancak hali hazırda edindiğim yeni bilgileri sizinle paylaşmak istedim.

Öncelikle memcached in dağınık yapıda birden fazla dedicated serveri olanlar için daha iyi bir seçim olduğunu öğrendim. İngilizce teminoloji ile memcached distributed environment lar için idealmiş.

Memcached TCP protokolü kullanıyor. Bu sayede diyelim ki 5 serveriniz var ve bunlardan 1 tanesi MySQL için atanmış.

Bu durumda MySQL serveriniza memcached kuruyorsunuz ve tüm MySQL sorgularınızı memcached de cacheliyorsunuz. Diğer 4 webserver MySQL e bağlanmadan önce memcached e bakıyorlar, veri cachelenmş ise hoop cacheden veriyi alıyor ve MySQL i fazla yormuyorlar.

Örneğin bir shopping (alışveriş) kartınız var ve her sayfa açıldığında o sayfanın gösterilmesi için 20 tablonun okunması gerekiyor. Siz ne yapıyorsunuz, 20 tablodan gelen sonucu memcached de 1 saatliğine saklıyorsunuz, 1 saat boyunca gelen istekler MySQL yerine memcached den yani doğrudan bellekten alıyor sonuçları.

İşte memcached in esas kullanım amacı bu, network üzerinde 1 den fazla serveriniz varsa MySQL loadunu düşürmek için mükemmel bir çözüm.

Ancak 1 serveriniz varsa ve bu server üzerinde değişken cachelemesi yapmak istiyorsanız, hız ölçümleri gösteriyor ki memcached en yavaş çözümlerden bir tanesi.

Local, yani sadece 1 server üzerinde caching yapacaksanız: APC, Xcache ve eAccelerator bu işi memcached den çok daha hızlı yapıyor.

Bu zamana kadar bu cacheleri sadece PHP kodunu cachelemek için kullanmıştık, oysa değişken cachelemek için de memcached gibi ekstra bir program kurmadan, hali hazırda kullandığımız PHP cache sistemini kullanabileceğimizi öğrendim.

Ben PHP için hali hazırda Xcache kullanıyordum. Bunun için Xcache i vbSEO ve kendi yazdığım PHP kodlarındaki değişkenleri cachelemek için kullanmaya karar verdim.

Xcache hem memecached den daha hızlı hemde hali hazırda kullandığım caching sistemi olduğu için yeni bir kurulum yapmam gerekmedi.

php.ini içinde aşağıdaki değişiklikleri yapmam yeterli oldu.

Kod:
xcache.var_size=1M
xcache.var_count=1
xcache.var_slots=8K
xcache.var_ttl=7200
xcache.var_maxttl=14400
xcache.var_gc_interval=300
Bunun ardından apache yi restart ettim.

Hemen vbSEO kontrol panel ekranına gidip cache sistemleri bölümünde memcached işaretliydi onun yerine Xcache i seçtim.

vBSEO nun Xcache değişken cache ini kullanıp kullanmadığını görmek için Xcache admin paneline girip bakabilirsiniz. vbseo_storage değişkeninin cachelendiğini göreceksiniz.
Konu açmadan önce " FORUM KURALLARI " bölümünü gözden geçirin.

Her türlü soru, öneri, memnuniyet, şikayet ve bilgi taleplerinizi iletmek için " MAİL " adresimizi kullanabilir veya " İLETİŞİM FORMU " üzerinden bizlere ulaşabilirsiniz.

Kurallara Uyduğunuz için Teşekkürler !
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 00:06 2 (permalink)
kralex
  • Üyelik Tarihi23.01.2008
  • Ticaret Sayısı0
  • Mesajlar18
peki memcache i serverdan kaldırmak gerek mi yoksa ikisini birden kullanabilirmiyiz.
vbulletin config.php ye ayar yapmıştık ya diğer anlattığın dökümanda onlarda değişiklik yapmamız gerekli mi?
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 00:17 3 (permalink)
iyinet
iyinet Paylaşım için teşekkürler
  • Neredenİzmir Şubesi
  • Üyelik Tarihi2.09.2002
  • Ticaret Sayısı0
  • Mesajlar5,572

peki memcache i serverdan kaldırmak gerek mi yoksa ikisini birden kullanabilirmiyiz.
vbulletin config.php ye ayar yapmıştık ya diğer anlattığın dökümanda onlarda değişiklik yapmamız gerekli mi?

memcached kurduysanız ve Xcache de kurulu ise Xcache e geçmek için yapılması gerekenler sırası ile şu şekilde:

1. vbSEO panelindeki cache sistemleri bölümünden memcached i değil none (hiçbirini) seçin ve kaydedin. Config dosyasının kayıt edildiğinden emin olun. Kayda açmak için chmod 666 confıg_vbseo.php yapmanız gerekebilir.

2. vbulletin config dosyası (includes/config.php) içine memcached için eklenen kısımları kapatın. Satır önüne // koyarak kapatma işlemini yapmış olursunuz
Kod:
// $config['Datastore']['class'] = 'vB_Datastore_Memcached';
// $config['Misc']['memcacheserver'] = '127.0.0.3';
// $config['Misc']['memcacheport'] = '11211';
3. php.ini dosyasındaki memcache satırlarını kapatın. Satır önüne ; koyarak kapatma işlemini yapmış olursunuz
Kod:
;
; memcache bolumu
;
;extension = "memcache.so"
;memcache.allow_failover = 0
4. Apache yi restart edin (service httpd restart)

5. vbSEO panelindeki cache sistemleri bölümünde Xcache i seçin.

6. memcached prosesini /etc/rc.local içinden kaldırın.

7. Hali hazırda çalışan memcached prosesini kapatın
Kod:
kill `ps -ef|grep memcached|grep -v grep|awk '{print $2}'`
Konu açmadan önce " FORUM KURALLARI " bölümünü gözden geçirin.

Her türlü soru, öneri, memnuniyet, şikayet ve bilgi taleplerinizi iletmek için " MAİL " adresimizi kullanabilir veya " İLETİŞİM FORMU " üzerinden bizlere ulaşabilirsiniz.

Kurallara Uyduğunuz için Teşekkürler !
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 02:10 4 (permalink)
kralex
  • Üyelik Tarihi23.01.2008
  • Ticaret Sayısı0
  • Mesajlar18
valla abi kuramadım xcache i vps kullanıyorum ondan mı acaba diyicem olmadı

İnternet sunucusu =Apache v2.0.61
PHP =5.2.5
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 05:15 5 (permalink)
iyinet
iyinet Paylaşım için teşekkürler
  • Neredenİzmir Şubesi
  • Üyelik Tarihi2.09.2002
  • Ticaret Sayısı0
  • Mesajlar5,572

valla abi kuramadım xcache i vps kullanıyorum ondan mı acaba diyicem olmadı

İnternet sunucusu =Apache v2.0.61
PHP =5.2.5

Xcache başlığı altına sorununu yaz istersen.
Bir de Xcache Zend le uyumlu değildi sanırım.
Konu açmadan önce " FORUM KURALLARI " bölümünü gözden geçirin.

Her türlü soru, öneri, memnuniyet, şikayet ve bilgi taleplerinizi iletmek için " MAİL " adresimizi kullanabilir veya " İLETİŞİM FORMU " üzerinden bizlere ulaşabilirsiniz.

Kurallara Uyduğunuz için Teşekkürler !
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 05:32 6 (permalink)
atay
  • Üyelik Tarihi29.10.2005
  • Ticaret Sayısı0
  • Mesajlar2,178
kendi yazdığımız bir scriptte xcache'i kullanmak için nasıl bir işlem yapmalıyız? örnek bir makale veya örnek kod parçacıkları var mı elinizde?
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 05:44 7 (permalink)
iyinet
iyinet Paylaşım için teşekkürler
  • Neredenİzmir Şubesi
  • Üyelik Tarihi2.09.2002
  • Ticaret Sayısı0
  • Mesajlar5,572

kendi yazdığımız bir scriptte xcache'i kullanmak için nasıl bir işlem yapmalıyız? örnek bir makale veya örnek kod parçacıkları var mı elinizde?

atay, şu anda o kod üzerinde çalışıyorum, testler olumlu. Biraz daha deneyip fonksiyonu buraya koyacağım.
Konu açmadan önce " FORUM KURALLARI " bölümünü gözden geçirin.

Her türlü soru, öneri, memnuniyet, şikayet ve bilgi taleplerinizi iletmek için " MAİL " adresimizi kullanabilir veya " İLETİŞİM FORMU " üzerinden bizlere ulaşabilirsiniz.

Kurallara Uyduğunuz için Teşekkürler !
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 05:49 8 (permalink)
atay
  • Üyelik Tarihi29.10.2005
  • Ticaret Sayısı0
  • Mesajlar2,178
çok güzel olur. şahsen incelemek isterim, kendi sitemde bazı yerlere basit cacheler yaptıktan sonra inanılmaz farklar oldu. acaba bu tarz sistemleri adapte edince nasıl birşey olur denemek isterim
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
25.01.2008, 07:44 9 (permalink)
iyinet
iyinet Paylaşım için teşekkürler
  • Neredenİzmir Şubesi
  • Üyelik Tarihi2.09.2002
  • Ticaret Sayısı0
  • Mesajlar5,572
Diyelimki şöyle bir php kodunuz var:
PHP- Kodu:
/**************************************************************************************/
/* http://forum.iyinet.com/php/81349-vbseo-icin-memcached-yerine-xcache-kullanin.html */
/**************************************************************************************/

// Bu kod sorgu ile dönen tüm a ve b değerlerini lıst_a ve list_b arraylerine atıyor.

$list_a $list_b = array();
$query "select a,b from table where c=d";
$result mysql_query($query);
$rows mysql_num_rows($result);
for(
$i=0;($i<$rows);$i++) {
    
$data mysql_fetch_assoc($result);
    
$list_a[] = $data['a'];
    
$list_b[] = $data['b'];

Buda Xcache versiyonu
PHP- Kodu:
/**************************************************************************************/
/* http://forum.iyinet.com/php/81349-vbseo-icin-memcached-yerine-xcache-kullanin.html */
/**************************************************************************************/

// Bu kodda aynı işlemi Xcache kullanarak yapar

$list_a $list_b = array();
$query "select a,b from table where c=d";
$result_set_array xcached_query($query,86400); // 1 gün cache de tut
$rows count($result_set_array);
for(
$i=0;($i<$rows);$i++) {
    
$list_a[] = $result_set_array[$i]['a'];
    
$list_b[] = $result_set_array[$i]['b'];
}

function 
xcached_query($query,$expire) {
    
$data = array();
    
$key md5($query);
    if(
xcache_isset($key)) { // cache de ise al
        
$data unserialize(xcache_get($key));
    } else { 
// cache de değilse mySQL den al
        
$result mysql_query($query);
        
$rows mysql_num_rows($result);
        for(
$i=0;$i<$rows;$i++) {
            
$data[$i] = mysql_fetch_assoc($result);
        }
        
xcache_set($keyserialize($data), $expire);
    }
    return 
$data;

Konu açmadan önce " FORUM KURALLARI " bölümünü gözden geçirin.

Her türlü soru, öneri, memnuniyet, şikayet ve bilgi taleplerinizi iletmek için " MAİL " adresimizi kullanabilir veya " İLETİŞİM FORMU " üzerinden bizlere ulaşabilirsiniz.

Kurallara Uyduğunuz için Teşekkürler !
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
26.01.2008, 04:36 10 (permalink)
kralex
  • Üyelik Tarihi23.01.2008
  • Ticaret Sayısı0
  • Mesajlar18
evet adminim zend i php.ini den kaldırdıktan sonra xcache aktif oldu.çok teşekkürler bu diğerinden daha az load ve ram harcıyor galiba öyle gözlemledim
Hızlı PM Gönder
Gönder
Alıntı ile Cevapla
Yeni Konu Aç Cevap Yaz
Toplam 3 Sayfadan 1. Sayfa
Şu an bu konuyu okuyan kişi sayısı: 1 (0 üye ve 1 misafir)
 
Seçenekler
Yetkileriniz
Konu Acma Yetkiniz Yok Cevap Yazma Yetkiniz Yok Eklenti Yükleme Yetkiniz Yok Mesajınızı Değiştirme Yetkiniz Yok
BB code is Açık Smileler Açık [IMG] Kodları Açık HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Forum Kuralları
Benzer Konular
Konu Konuyu Başlatan Forum Cevap Son Mesaj
memcached kurulumu - PHP, VBulletin VBSEO ve MySQL için iyinet PHP Yararlı Bilgiler 187 5.02.2013 14:42
Memcached kuranlar için apache mysql ve memcached restart iyinet PHP 8 23.06.2010 00:21
VPS'e cache sistemi kuracağım.. Memcached, XCache ? SLiM_BoY PHP 2 19.02.2010 22:32
İyi uyku için 18x50x70 ölçüsünde yastık kullanın sepulchral Güncel Konular - Haberler 2 16.10.2009 18:04
memcached kullanın iyinet vBulletin 9 6.02.2008 01:15

Forum Saati: 06:05. Zaman dilimi GMT +3 olarak ayarlanmıştır.
Powered by vBulletin™ Version 3.8.7
Copyright © 2017 vBulletin Solutions, Inc. All rights reserved.