3 votes

Plusieurs instances AWS EC2 en cours d'exécution avec mise à l'échelle automatique et cache distribué.

Je prévois d'utiliser Memcache distribué à travers une série de serveurs web Linux sur Amazon EC2. Ces EC2 fonctionnent actuellement avec mise à l'échelle automatique, donc augmentent et diminuent en fonction de la charge.

J'ai utilisé ce post pour guider la configuration initiale.

meilleures pratiques avec memcache/php - plusieurs noeuds de memcache

Et un autre lien mentionné dans une réponse.

http://techgurulive.com/2009/07/22/a-brief-to-memcached-hash-types/

Je ne suis pas certain de la façon dont les adresses IP AWS locales des serveurs web seront mises à jour dans la liste des noeuds du code client Memcache au fur et à mesure que les serveurs augmentent et diminuent.

J'utilise actuellement PHP PECL - Memcache sur le client.

Est-ce que quelqu'un sait quelle serait la meilleure implémentation pour gérer cela dans l'environnement AWS ?

Merci d'avance pour toute suggestion.

Dave

3voto

Kieran Benton Points 2783

Il semble que vous conceviez un système assez volumineux pour gérer une charge assez importante. Si c'est le cas, vous voudrez probablement avoir des instances distinctes pour Memcache et les nœuds web, car leurs caractéristiques de performance sont assez différentes. En les séparant, vous pouvez utiliser un type d'instance plus adapté à chacun.

Memcache n'utilise presque pas de CPU dans des circonstances normales, donc l'utilisation d'une instance à mémoire élevée a du sens. De même, les serveurs web sont généralement intensifs en processeur. Utilisez des instances hautes en CPU pour eux.

Gardez à l'esprit que memcached lui-même est très simple. Il attend une commande disant "obtiens-moi cette clé" ou "définit cette clé sur cette valeur" (il y en a quelques autres, mais c'est les bases). Tout hachage/etc est uniquement réalisé dans la bibliothèque du client memcached.

En tenant compte de cela, le redimensionnement automatique de memcached est assez ambitieux, bien que cela puisse certainement être fait. Si vous êtes constamment en train de mettre en service et de mettre hors service des serveurs, vous devrez accepter que certaines données mises en cache seront périodiquement perdues, mettant probablement plus de charge sur vos bases de données, ou vous assurer que toutes les données stockées dans une instance memcached sont d'abord copiées vers une autre instance.

0voto

webgr Points 203

Un peu en retard sur cela mais vous ne voulez pas vraiment avoir des nœuds memcache autoscaling. Le hachage dérivera donc vous perdrez un pourcentage élevé de votre cache à chaque fois qu'il y a un événement de mise à l'échelle vers le haut ou vers le bas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X