Utilizzo efficace di Memcache con Drupal 7 Multisite


12

Sto impostando un hit ratio del 55% sulla nostra istanza memcache (v1.4.4) e mi chiedo cosa si possa fare per migliorare il hit ratio. Siamo in una configurazione multisito (oltre 30 siti), con due server Web con bilanciamento del carico; esiste un'istanza di memcached su ciascun server web.

Nel settings.php, ho:

$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'];

Sto cercando di utilizzare i bin per migliorare il rapporto di hit, ma ho trovato alcuni suggerimenti secondo cui l'ultimo modulo memcache lo fa già, ma non sono sicuro poiché le istruzioni con il modulo contengono indicazioni sull'impostazione dei bin.

Se i bin sono la strada da percorrere, come si determina quale (tabella?) Deve avere il proprio cestino? Queste sono le tabelle della cache che ho nei miei siti:

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)

Oltre ai raccoglitori, cos'altro posso fare per migliorare l'utilizzo di memcached?

Grazie molto!


30 + siti? Potresti condividere i dettagli sull'ambiente, mem PHP e MySql max_allowed_packet, sto anche pianificando di lanciare molti siti secondari, ho già 4 piani per averne 10, ma non ero sicuro che drupal potesse gestirlo.
GoodSp33d

@Kantu - Voglio mantenere questo thread su memcached con Drupal. Se pubblichi una nuova domanda, sarò felice di valutare ... o dare un'occhiata a discussioni simili qui o su drupal.org.
KM.

Volevo solo conoscere le configurazioni del tuo server, poiché l'esecuzione di 30 siti secondari è molto rara
GoodSp33d

Risposte:


13

Dopo molte ricerche, ecco cosa ha aiutato la nostra percentuale di successo e l'utilizzo memcached:

  • Aggiornato memcached alla 1.4.10 (l'ultima versione con miglioramenti delle prestazioni)
  • Formato binario e compressione abilitati
  • Usa il valore predefinito per i bin

Il nostro conf memcached in settings.php ora assomiglia a questo:

$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'];

Guadagni più grandi

Il vantaggio più grande per noi è stato l'abilitazione della compressione, anche se la documentazione afferma che aumenta i cicli della CPU. Abbiamo 4 CPU allocate alla nostra VM e non abbiamo notato differenze. Il tempo per le chiamate memcached è passato da ~ 1250ms a ~ 150ms (ottenuto da NewRelic) per la creazione di un contenuto (articolo personalizzato nel nostro caso).

Percentuale di successi

Il nostro hit ratio è ora ~ 70% - molto meglio del 55% prima, ma non zittisce il 90% + che alcuni hanno segnalato ... la ricerca continua (-:

Spero che questo aiuti qualcun altro. Se riscontri altri miglioramenti o hai correzioni / suggerimenti, pubblica commenti o risposte.

Aggiornamento: versione del modulo memcahe

Siamo passati dalla versione 1.0-beta4 alla 1.0 e il nostro hit ratio ora è dell'87%. Ho dovuto riavviare memcached perché il tasso di successo non stava andando oltre il 70%. Al momento abbiamo 64 MB assegnati a memcached, quindi questo non è stato un grosso problema per noi.


1
Vorrei impostare il prefisso chiave su qualcosa di hardcoded e non dipendere dal nome del server specificato. Ad esempio se qualcuno accede al tuo sito con o senza www. (che potresti reindirizzare o qualcosa del genere, solo un esempio), otterrai un prefisso chiave diverso per la cache. Dovrai cambiare settings.php per ogni sito, comunque.
Berdir,

1
Inoltre, la percentuale di hit dipende in larga misura dai tuoi siti .. se hai molte cancellazioni esplicite della cache o se memcache è pieno e devi buttare roba regolarmente, la tua frequenza di hit diminuirà ovviamente.
Berdir,

Grazie per aver pesato su @Berdir. Ho controllato le lastre e finora il nome del server come chiave non è stato un problema, ma posso vedere dove potrebbe essere. Gli sfratti sono bassi ~ 170 e hanno il 25% (~ 17 MB) di spazio in memoria. C'è un modo per rintracciare la causa dei mancati cache del 30%? Svuota la cache o qualcos'altro ...?
KM.

Non facilmente. Quando la cache non riesce, non è possibile riprodurre ciò che è accaduto con essa. Quello che potresti provare è cancellare le chiamate della cache del registro, incluso un backtrace, per vedere da dove provengono, ma non sono sicuro che ciò possa aiutare molto.
Berdir,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.