我试图确定我在ElastiCache Redis节点(cache.m3.medium)上看到的高延迟的原因。我使用redis-cli延迟测试收集了一些数据,从与ElastiCache节点相同的区域/可用性区域中的EC2实例运行它。
我发现平均延迟非常好(约.5ms),但有一些相当高的异常值。我不相信异常值是由于网络延迟造成的,因为两个EC2实例之间的网络ping测试不会出现这些高峰值。
Redis节点没有任何负载,并且指标似乎看起来不错。
我的问题是:
const digits = n =>
n < 10
? [ n ]
: digits (n / 10 >> 0) .concat ([ n % 10 ])
const mult = (x,y) =>
x * y
const product = xs =>
xs.reduce (mult, 1)
const multiplicativeRoot = x =>
x < 10
? [ x ]
: [ x ] .concat (multiplicativeRoot (product (digits (x))))
const multiplicativePersistence = x =>
multiplicativeRoot (x) .length - 1
console.log (multiplicativeRoot (999)) // [ 999, 729, 126, 12, 2 ]
console.log (multiplicativePersistence (999)) // 4
console.log (multiplicativeRoot (25)) // [ 25, 10, 0 ]
console.log (multiplicativePersistence (25)) // 2
答案 0 :(得分:4)
我使用几种不同的节点类型运行测试,发现更大的节点执行得更好。我正在使用cache.m3.xlarge类型,它提供了更一致的网络延迟。