• redis 性能测试


      准备环境:

      因为找不到可用的1000M网络机器,使用一根直通线将两台笔记本连起来组成1000M Ethernet网。没错,是直通线现在网卡都能自适应交叉线、直通线,速度不受影响,用了一段时间机器也没出问题。

      服务端:T420 i5-2520M(2.5G)/8G ubuntu 11.10

      客户端:Acer i5-2430M(2.4G)/4G mint 11

      redis版本:2.6.9

      测试脚本:./redis-benchmark -h xx -p xx -t set -q -r 1000 -l -d 20

      

    长度 速度/sec 带宽(MByte/s) 发送+接收 CPU CPU Detail
    20Byte 17w 24M+12M 98.00% Cpu0 : 21.0%us, 40.7%sy, 0.0%ni, 4.3%id, 0.0%wa, 0.0%hi, 34.0%si, 0.0%st
    100Byte 17w 37M+12M 97.00% Cpu0 : 20.3%us, 37.9%sy, 0.0%ni, 7.0%id, 0.0%wa, 0.0%hi, 34.9%si, 0.0%st
    512Byte 12w 76M+9M 87.00% Cpu0 : 20.9%us, 33.2%sy, 0.0%ni, 25.6%id, 0.0%wa, 0.0%hi, 20.3%si, 0.0%st
    1K 9w 94M+8M 81.00% Cpu0 : 19.9%us, 30.2%sy, 0.0%ni, 34.2%id, 0.0%wa, 0.0%hi, 15.6%si, 0.0%st
    2K 5w 105M+6M 77.00% Cpu0 : 18.0%us, 32.0%sy, 0.0%ni, 34.7%id, 0.0%wa, 0.0%hi, 15.3%si, 0.0%st
    5K 2.2w 119M+3.2M 77.00% Cpu0 : 22.5%us, 32.8%sy, 0.0%ni, 32.8%id, 0.0%wa, 0.0%hi, 11.9%si, 0.0%st
    10K 1.1w 119M+1.7M 70.00% Cpu0 : 18.2%us, 29.8%sy, 0.0%ni, 42.7%id, 0.0%wa, 0.0%hi, 9.3%si, 0.0%st
    20K 0.57w 120M+1M 58.00% Cpu0 : 17.8%us, 26.4%sy, 0.0%ni, 46.2%id, 0.0%wa, 0.0%hi, 9.6%si, 0.0%st

      value 在1K以上时,1000M网卡轻松的被跑慢,而且redis-server cpu连一个核心都没占用到,可见redis高效,redis的服务也不需要太高配置,瓶颈在网卡速度。

      整理看redis的us都在20%左右,用户层代码资源占用比例都很小。

      

      value 如果很小时可能看起来有些浪费,那多开几个redis-server 看看,value :20byte:

      2个redis实例时:

    长度 速度/sec 带宽(MByte/s) 发送+接收 CPU CPU Detail
    20Byte 10w+10w 26M+14M 98%+98% Cpu0 : 18.9%us, 20.5%sy, 0.0%ni, 0.3%id, 0.0%wa, 0.0%hi, 60.3%si, 0.0%st
    Cpu1 : 41.2%us, 56.5%sy, 0.0%ni, 2.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

      3个redis实例时:

    长度 速度/sec 带宽(MByte/s) 发送+接收 CPU CPU Detail
    20Byte 7w*3 26M+14M 67%*3 Cpu0 : 20.6%us, 19.9%sy, 0.0%ni, 0.7%id, 0.0%wa, 0.0%hi, 58.8%si, 0.0%st
    Cpu1 : 37.9%us, 54.2%sy, 0.0%ni, 8.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Cpu2 : 5.7%us, 4.7%sy, 0.0%ni, 88.0%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
    Cpu3 : 5.6%us, 2.6%sy, 0.0%ni, 91.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

    小包的时候网卡中断处理是瓶颈,大包时网卡速度又是瓶颈,故redis单线程处理除了无线程安全考虑外,就是一个线程处理毫无压力,多了没用不着。

    小的value可以使用pipleline方式,tcp开启nagle算法,通过tcp合包的方式估计能够提高处理能力。

    看起来三个实例都在同一个核心是跑,CPU0 CPU1 是同一个物理核心超线程。软中断占用60%,软中断在固定CPU成为瓶颈,下次分散下软中断到其他cpu再测试看效果。

    ---------------

    补充,上面是用笔记本测试结果,和生产机器还是有不小差距的,仅供参考; 我另外一篇文章有记录生产环境服务器测试结果。

  • 相关阅读:
    CTFHub_2020数字中国创新大赛虎符网络安全赛道Webeasy_login(源码泄露、JWTNone攻击)
    CTFHub_2021津门杯Webhate_php(通配符绕过正则匹配)
    二叉树的序列化与反序列化
    软考高级及杭州E类人才申请经验分享
    推理框架概览
    Juniper初始化配置
    公务员、事业编、国企职工都有什么区别?不要再糊里糊涂的求职了
    upload labs120通关手册
    在docker中启动arthas
    超标量处理器设计 pdf
  • 原文地址:https://www.cnblogs.com/lulu/p/2878138.html
Copyright © 2020-2023  润新知