2008-09-25 6 views

Répondre

5

La haute disponibilité est agréable, et memcached distribuera automatiquement votre cache sur les 4 serveurs. Si l'un de ces serveurs meurt pour une raison quelconque, vous pouvez gérer cette erreur en continuant simplement comme si le cache était vide, en le redirigeant vers un serveur différent ou en gérant les erreurs personnalisées de votre choix. Si votre serveur 1x 2gb meurt, vos options sont assez limitées.

La chose importante à retenir est que vous n'avez pas 4 copies de votre cache, c'est 1 cache, réparti entre les 4 serveurs. Le seul inconvénient est qu'il est plus facile de manquer de 4x .5 que de manquer de mémoire 1x2gb.

+1

La distribution des entrées sur les serveurs est la tâche du client. Il y a un certain nombre de techniques pour aider à cela, qui sont énoncées dans les différentes FAQ et les clients memcached. –

6

Si une instance échoue, vous bénéficiez toujours des avantages de l'utilisation du cache. Cela est particulièrement vrai si vous utilisez le Consistenthashing qui va apporter les mêmes données à la même instance, plutôt que de propager de nouvelles lectures/écritures parmi les machines qui sont encore en place.

Vous pouvez également choisir d'exécuter des serveurs sur des systèmes d'exploitation 32 bits, qui ne peuvent pas traiter plus de 3 Go de mémoire.

Vérifiez la FAQ: http://www.socialtext.net/memcached/ et http://www.danga.com/memcached/

2

Je voudrais aussi ajouter que, théoriquement, en cas de plusieurs machines, il pourrait vous faire économiser un peu de performance, comme si vous avez beaucoup de frontend faire beaucoup de lourds lectures, il est préférable de les diviser en différentes machines: vous savez, les capacités réseau et la puissance de traitement d'une machine peuvent devenir une limite supérieure pour vous.

Cependant, cet avantage dépend fortement de l'utilisation de memcache (parfois, il peut être plus rapide de tout extraire d'une machine).

Questions connexes