Twemproxy测试用例以及压测结果

redis 2016-01-12

1、前端使用 Twemproxy 做代理,后端的 Redis 数据能基本上根据 key 来进行比较均衡的分布。

后端一台 Redis 挂掉后,Twemproxy 能够自动摘除。恢复后,Twemproxy 能够自动识别、恢复并重新加入到 Redis 组中重新使用。

2、Redis 挂掉后,后端数据是否丢失依据 Redis 本身的策略配置,与 Twemproxy 基本无关。

如果要新增加一台 Redis,Twemproxy 需要重启才能生效;并且数据不会自动重新 Reblance,需要人工单独写脚本来实现。

3、如同时部署多个 Twemproxy,配置文件一致(测试配置为distribution:ketama,modula),则可以从任意一个读取,都可以正确读取 key对应的值。

4、多台 Twemproxy 配置一样,客户端分别连接多台 Twemproxy可以在一定条件下提高性能。根据 Server 数量,提高比例在 110-150%之间。

5、如原来已经有 2 个节点 Redis,后续有增加 2 个 Redis,则数据分布计算与原来的 Redis 分布无关,现有数据如果需要分布均匀的话,需要人工单独处理。

6、如果 Twemproxy 的后端节点数量发生变化,Twemproxy 相同算法的前提下,原来的数据必须重新处理分布,否则会存在找不到key值的情况。

测试方式:

1.后端 Redis 节点数量不变,不同 Twemproxy server 测试及多个同时运行测试结果如下:

twemproxy server运行数量(port)1(A server)1(B Server)246
测试结果(/s)30278.2632867.7135143.2840176.77752345.5152

从上面数据可以看出,单台最多也只能达到单个 Redis 的性能;2个节点运行性能增加大概110%左右。4个 server 运行,性能大概增加了123%,6个 server 接入运行160%。

2.前端使用1个 Twemproxy server,后端 Redis 数量分别为2,3,4,5,6来进行压力测试,看测试结果,测试数据如下:

redis节点数23456
测试结果(/s)34882.134749.9732296.6132438.0432867.71

从数据可以看出,后端节点数量与 Twemproxy 的性能基本无关,最大性能也就是单个 Redis 的性能。

相关推荐