影响Redis性能的因素

来源:互联网 发布:一分钱拼团靠谱的软件 编辑:程序博客网 时间:2024/04/30 01:12

网络带宽和延迟。在执行基准测试前使用ping快速检测客户端和服务器端的延迟是一个良好的做法。对于带宽,比较好的做法是估计Gbits/s 的吞吐量和网络的理论带宽值比较。在很多实际的情况,Redis的吞吐量在网络之前会受限于CPU。

CPU也会是一个重要因素。由于单线程的,Redis受益于快速的含有巨大缓存的CPU。

* 内存的速度和容量对于小的对象影响不大。但对于大于10KB的对象,可能对需要注意。通常购买昂贵的快速内存模块并不是真正的很有效。

* Redis在虚拟机上运行慢。虚拟化对很多普通操作来说代价太高了,Redis并没有增加多少开销在所需的系统调用和网络中断上。

客户端和服务器在一台机器运行,对于基准测试TCP/IP回送和UNIX域套接字都可以使用。取决于平台,但UNIX域套接字比TCP/IP回送增加50%的吞吐量。

* 当大量使用 pipelining时,UNIX域套接字获得的性能好处会减少。

* 当以太网访问Redis时,在数据大小小于以太网数据包的大小(大约1500字节)时,聚集命令使用 pipelining会非常有效。

在多CPU套接字服务器,Redis的表现变得依赖于NUMA配置和处理位置。

在高端配置,客户端连接的数量也是一个重要的因素。基于epool/kqueue模型,Redis的事件循环是相当可伸缩的。

在高端的配置,通过调优NIC(s)配置和相关中断可能取得高吞吐量。

根据平台,Redis编译可以使用不同的内存分配器,这可能有不同的行为在原始速度,内部和外部的碎片方面

0 0