dister性能测试(v1.2)

测试环境:

系统:Ubuntu Desktop 14.04.5 x64 LTS
芯片:Intel(R) Core(TM) i7-7700K
硬盘:Intel SSD 256G
内存:8G
软件:dister v1.2
集群:3个节点,node1为物理主机,node2和node3为虚拟机,分配内存为1G,系统为Ubuntu Server 16.04_x64,配置较差

一、数据读取性能测试

在测试之前已写入100W条数据,写入值从{“key_0″:”value_0”}到{“key_999999″:”value_999999”}
并发测试时间60秒,以下是原始请求结果:

二、负载均衡性能测试

使用dister使用示例中的sites数据,以下是原始请求结果:

三、数据写入性能测试

测试KV数据写入,并发测试时间60秒。
使用POST请求,固定请求数据为:{“key_99999″:”value_99999”},以下是原始请求结果:

四、总结

1、可以看到dister的查询性能相当强悍,本机节点轻轻松松支持数百万级别的请求量(当然正常情况下1分钟内也不可能会有这么高的请求)。查看源代码我们可以知道,所有的查询操作都是基于内存的,并且有gcache的缓存支持,因此查询才会非常迅速。但是我们也注意到,并发数一旦超过30K的时候,效率急剧下降,分析可能是已经达到了系统的IO瓶颈:因为所有的模拟客户端并发请求进程以及服务进程都是在本地,两者都需要耗费本地系统资源,并发数越大,两者同时耗费的系统资源也越多;并且在Linux下所有的资源都是以文件的形式来管理,因此,一旦系统接收到的并发量超过一定的阈值,整个系统的IO性能都将会受到影响,并直接地影响到后续的请求处理。

 

2、dister为保证整个集群的数据强一致性,在性能上做了一定的牺牲。dister的数据管理是多节点分布式的,因此必须要求很高的一致性来保证整个集群的稳定可靠。但是我们可以看到,即使是满足了数据的强一致性,dister的写入性能也相当优异(本次测试的另外两个节点为虚拟机,对数据同步也会有一定影响),最高峰的dister集群每分钟支持120K的请求量。

 

 

 

 

 

上一节:dister的使用示例

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Leave a Reply

Your email address will not be published.