Nasıl yavaş yavaş tanıtmak ve mevcut bir sitede testi memcached için?

4 Cevap php

Bunu yüklemeden aslında demek istemiyorum. Şu anda geliştirme için LAMBASI kullanan ve yüksek trafik site için memcached kullanmaya başlamak istiyorum. Db aramaların hangi tür önbelleğe alınması gerekir? (Tüm?) Ve bir geliştirme sunucu üzerinde yük testi yapmak için iyi bir yolu nedir? Orada ilk benim üretim sitede bakıyor gerektiğini kriterler? Site öncelikle çok az güncellemeleri / ekler ile seçer edilir. Kadar trafik vs ram kullanımı gibi izledi ya da sadece deneme ve yanılma ile çoğunlukla gereken herhangi bir genel kurallar var mı?

Teşekkürler.

4 Cevap

ben ilk ikincil bir özellik özelliğini destekleyen bir sorgu ile başlamak istiyorum. onunla biraz tamircilik, o ilk önbelleğe nasıl tepki gözlemlemek. Eğer sitenizin buna nasıl tepki vereceğini için fikir almak gibi ve sonra, sonra diğer sorguları önbelleğe çalışıyorum başlar. i memcached kullanılan hiç ama CodeIgniter'daki sorgu önbelleği ile oynuyorum.

i belli açılan kutuları doldurmak ve sitemde öğelerini oluşturmak için kullanabilirsiniz önbelleğe sorgu ile başlıyorum. çok nadiren değiştirmek ve onlar benim tablolara kayıt ekler veritabanına yeni bir dosya yükleme gibi dışarı idari eylem ile değişmez. Böyle bir sorunuz varsa ben ilk o denemenizi öneririz.

Her zaman önce ölçmek ve daha sonra optimize. Senin büyük darboğazları yazmak ve onlara bazı iyi performans testleri yapmak.

Şu anda orada kendi yükünü taklit orada birçok kriterler programlar değildir ve her site benzersiz beri Sana bir tavsiye olabilir sanmıyorum.

Ama yüksek trafik taklit deneyin orada bir kaç araç var.

Öncelikle, size veri ihtiyacı ne sıklıkta, oynamak için ne kadar ram bağlıdır ve veri güncellenir ne sıklıkta.

Db aramaların hangi tür önbelleğe alınması gerekir? (Tüm?)

Bunu seçerek yaklaşık aynı oranda veri güncelleştirme yapıyorsanız, o zaman muhtemelen önbelleğe değer değildir.

Eric dediği gibi, çıkışlar damla, ve siteniz için kullandığınız diğer statik içerik memcache iyi faydalanmak istiyorum.

Eğer bunu güncellemek kez silmeyi unutmayın / önbelleğe öğeyi yenileyin.

ve geliştirme sunucu üzerinde yük testi yapmak için iyi bir yolu nedir?

Bunun için aklınızdaki yük testi ne tür emin değil.

Orada ilk benim üretim sitede bakıyor gerektiğini kriterler? Site öncelikle çok az güncellemeleri / ekler ile seçer.

Muhtemelen bunları oturum, yapıyoruz sorgu türünü ve denir kez miktarını kontrol edin. En sık olasılıkla önbelleğe alınabilir.

Ayrıca emin ilk yapabilirdiniz diğer SQL optimizasyonlar yoktur olun.

Kadar trafik vs ram kullanımı gibi izledi ya da sadece deneme ve yanılma ile çoğunlukla gereken herhangi bir genel kurallar var mı?

Ben trafik ilişkisi vs ram çok olduğunu sanmıyorum. Ben kutu yoğun trafik kere altında işleyecek ve buna göre memcache için ram limitlerini ayarlamak gerekiyor ram ne tür anlamaya olacaktır.

Eğer veritabanına SELECT s çok ve birkaç yazar varsa MySQL sorgu önbellek sizin için verileri önbelleğe oldukça iyi bir iş yapmak gerekir.

Sorgu önbelleği nasıl çalıştığını etkili görmek için aşağıdakileri deneyin:

> SHOW GLOBAL STATUS LIKE 'Qcache_hits';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| Qcache_hits   | 735740 |
+---------------+--------+
1 row in set (0.00 sec)


> SHOW GLOBAL STATUS LIKE 'Com_select';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Com_select    | 5644038 |
+---------------+---------+
1 row in set (0.00 sec)

Isabet oranı hesaplamak bulmak için Qcache_hits / (Qcache_hits + Com_select)

Bu durumda, bu kadar 735740 / (735740 + 5644038) = 0.1153

Yani% 11 isabet oranı var ve oldukça zayıf.

Eğer makine üzerinde çok daha yüksek% görürseniz o memcached kullanarak bir davanın daha az olabilir.

MySQL sorgu önbellek birçok durumda iyi çalışır (ben bu seninkini içerir sanıyorum). Önbellek girdileri bir tablo güncellendi (önbelleğe alınan sorgu değişmiş değil bir satır ilgili olsa bile) ve bu da büyük bir eksiklik olduğunu her zaman geçersiz kılınır. Sizin ve uygulama MySQL sorgu önbellek daha önbellek bitiminden yaklaşık akıllı olabilir zaman bir satır seviyeye yaklaştıkça önbellek öğeleri memcached kullanabileceğiniz durumlar vardır.

Bana sorgu önbellek isabet oranı sonucunu bildirin. Hatta sorgu önbellek şu anda devre dışı var ettik bulabilirsiniz (!)

Bunu aşağıdaki sorguyu çalıştırarak etkin olsun doğrulayabilirsiniz:

> SHOW GLOBAL VARIABLES LIKE '%cache';

Orada have_query_cache = YES ve query_cache_size > 0 için kontrol edin.