Amazon Elasticache Cluster scheint eine wirklich gute Wahl für die automatische Skalierung zu sein, aber es scheint, dass die Lastverteilung unter den Knoten nicht gleich ist.
Sowohl im Arbeitsspeicher als auch in der CPU scheint der Knoten 1 fast doppelt so viel Ressourcen zu beanspruchen wie andere Knoten. Dies führt häufig zu einer Verlängerung der Reaktionszeit zu Spitzenzeiten, selbst wenn die meisten anderen Knoten ideal sitzen.
Ich verwende r3.2x Instanzen (8cpu, 60GB mem)
Hat jemand das gleiche Problem? Was kann die Ursache für dieses Verhalten sein (bei Elasticache oder in meinem Memcache-Modul)? Meinerseits verwende ich verteilungskonsistentes Hashing (Ketama algo). Eine bessere Alternative?
amazon-web-services
memcached
autoscaling
amazon-elasticache
Ashish Gaurav
quelle
quelle
Antworten:
Wenn Sie ein einzelnes Cache-Element (oder sehr wenige Elemente) haben, das viel häufiger als jedes andere Element verwendet wird, wird dieses Verhalten bei ungleichmäßiger Lastverteilung angezeigt.
Sie sollten Ihre Anwendung auf diese Art von Cache-Elementen überprüfen. Möglicherweise können Sie alle Memcache-Anforderungen protokollieren, um diese Elemente zu finden. Nachdem Sie ein solches Objekt identifiziert haben, müssen Sie darüber nachdenken, wie Sie Anrufe auf dieses Objekt aufteilen und auf viele Objekte verteilen können.
Ich glaube, es gibt keine einheitliche Lösung für diese Art von Problem, da dies von der Anwendungslogik, der Anzahl der Lese- und Schreibvorgänge usw. abhängt.
quelle