影响TPS的几点

  • 网络带宽影响redis效率。对于100M的内网,redis单链接每秒处理约2000请求,当带宽被占用30到40M时,处理数降为约500,使用netperf工具将带宽占满,处理数降为250。因此,带宽必须足够大才能确保redis效率恒定。
  • 对所需内网带宽的估算。测试环境中,3x2000TPS占用约30M带宽(5kB/s)。如果需求为10W TPS,则占用约500M带宽,因此总带宽应在5000M以上才能保证redis速率波动在10%以内。
  • log影响收包速率。在log完全打开时收包速率始终无法超过1500TPS,关闭绝大部分log,收包TPS可以突破5000。分析,单看CPU占用率,log完全打开时,CPU占用率并没有特别明显上升,因此不觉得会影响收包,实际情况因该是log占用大量io操作,影响了收包速率。同样问题在消息模拟器也出现了,不同的是,影响的是发包速率。
  • 业务进程数以及比例影响TPS。
  • 使用redid-benchmark测试redis速率要注意,因该在实际网络环境下测试,并且最好是使用redis的系统在运行中,这样的测试结果才有实际参考意义。
  • 优化一般分两步,单进程函数CPU占用率,和并发系统效率。
  • 单redis和redis集群比较。单从速度来说,前者速率稍慢,且单redis CPU 常常成为瓶颈。以3个主机对一个redis或集群为例:对于单redis,TPS达到1500x3时,redisCPU已达到95%左右。对于集群,TPS达到2500x3时,CPU均为80%左右。
posted @ 2016-04-05 11:15  米开兰基罗  阅读(965)  评论(0编辑  收藏  举报