Memcache'i Drupal 7 Multisite ile Etkili Kullanma


12

Memcache örneğimizde (v1.4.4)% 55'lik bir isabet oranı ayarlıyorum ve isabet oranını iyileştirmek için neler yapılabileceğini merak ediyorum. İki yük dengeli web sunucusuyla çok siteli bir kurulumdayız (30+ site); her web sunucusunda memcached örneği vardır.

İçinde settings.php:

$conf['memcache_servers'] = array(
         '11.22.33.44:11211' => 'default',
         '11.22.33.45:11211' => 'default',
      );
$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

İsabet oranını artırmak için kutular kullanmaya bakıyorum, ancak en son memcache modülünün bunu zaten yaptığı bazı önerilere rastladım, ancak modülle ilgili talimatlar bölmeleri ayarlamak için talimatlar içerdiğinden emin değilim.

Çöp kutuları gidilebilecekse, kendi çöp kutusuna sahip olması gereken tabloyu nasıl belirlersiniz? Bunlar sitelerimde bulunan önbellek tabloları:

cache
cache_admin_menu (empty)
cache_block (empty)
cache_bootstrap
cache_field
cache_filter (empty)
cache_form (empty)
cache_image (empty)
cache_media_xml (empty)
cache_menu
cache_page (empty)
cache_path (empty)
cache_token (empty)
cache_update (empty)
cache_views
cache_views_data (empty)
ctools_css_cache (empty)
ctools_object_cache (empty)

Depolara ek olarak, memcached kullanımını geliştirmek için başka ne yapabilirim?

Çok teşekkürler!


30+ site? Lütfen Ortam ayrıntılarını, PHP mem ve MySql max_allowed_packet'i paylaşır mısınız, ayrıca birçok alt site başlatmayı planlıyorum, zaten 10 için 4 planınız var, ancak drupal'ın başa çıkabileceğinden emin değildi.
GoodSp33d

@Kantu - Bu konuyu Drupal ile memcached hakkında tutmak istiyorum. Yeni bir soru gönderirseniz, tartmaktan veya burada veya drupal.org'da benzer tartışmalara bakmaktan memnuniyet duyarım.
KM.

Sadece 30 alt siteyi çalıştırmak çok nadir olduğu için sunucu yapılandırmalarınızı bilmek istedim
GoodSp33d

Yanıtlar:


13

Çok fazla araştırmadan sonra, isabet oranımıza ve memcached kullanımımıza yardımcı olan şey:

  • Memcache 1.4.10'a yükseltildi (performans iyileştirmeleri olan en son sürüm)
  • Etkin ikili biçim ve sıkıştırma
  • Kutular için varsayılanı kullan

Bizim memcached conf in settings.php şimdi şuna benzer:

$conf['memcache_bins'] = array('cache' => 'default');
$conf['memcache_options'] = array(
  Memcached::OPT_COMPRESSION => TRUE,
  Memcached::OPT_BINARY_PROTOCOL => TRUE,
  );
$conf['memcache_persistent'] = TRUE;
$conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME'];

En Büyük Kazançlar

Bizim için en büyük kazanç, belgelerin CPU döngülerini artırdığını belirtmesine rağmen sıkıştırmayı sağlamaktı. Sanal Makinemize tahsis edilmiş 4 CPU'muz var ve bir fark görmedik. Memcached çağrıların süresi, bir içerik parçası oluşturmak için ~ 1250ms'den ~ 150ms'e (NewRelic'ten elde edildi) geçti (bizim durumumuzda özel Makale).

İsabet Oranı

İsabet oranımız şu anda ~% 70 -% 55'ten çok daha iyi, ancak bazılarının bildirdiği% 90 + sessiz değil ... görev devam ediyor (-:

Umarım bu başka birine yardımcı olur. Başka iyileştirmelerle karşılaşırsanız veya düzeltmeleriniz / önerileriniz varsa, lütfen yorum veya yanıt gönderin.

Güncelleme - Memcahe modülünün sürümü

1.0-beta4 sürümünden 1.0'a gittik ve isabet oranımız şu an% 87. İsabet oranı% 70'i geçmediği için memcached'ı yeniden başlatmak zorunda kaldım. Şu anda memcached için 64MB ayırdık, bu yüzden bu bizim için büyük bir anlaşma değildi.


1
Anahtar kodunu sabit kodlanmış bir şeye ayarladım ve verilen sunucu adına bağlı değilim. Örneğin, birisi sitenize www ile veya www olmadan erişirse. (yönlendirebileceğiniz gibi bir şey, sadece bir örnek), önbellek için farklı bir anahtar öneki elde edersiniz. Ancak, her site için settings.php dosyasını değiştirmeniz gerekir.
Berdir

1
Ayrıca, isabet oranı büyük ölçüde sitelerinize bağlıdır .. Eğer çok açık önbellek temizlenirse veya memcache tam çalışıyorsa ve düzenli olarak bir şeyler atmak zorunda kalırsanız, isabet oranınız açıkça düşecektir.
Berdir

Tartıştığınız için teşekkürler @Berdir. Döşemeleri kontrol ediyorum ve şimdiye kadar bir anahtar olarak sunucu adı bir sorun değildi, ama nerede olabileceğini görebilirsiniz. Tahliye düşük ~ 170 ve memcached% 25 (~ 17MB) oda kaldı. % 30 önbellek hatalarının nedenini izlemenin bir yolu var mı? Önbellek temizlenir veya başka bir şey ...?
KM.

Kolayca değil. Önbellek başarısız olduğunda, onunla olanları çoğaltamazsınız. Ne deneyebilirsiniz nereden geldiğini görmek için bir backtrace dahil günlük önbellek net aramaları olduğunu, ancak bu çok yardımcı olur emin değilim.
Berdir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.