• Redis5 压力测试结果反馈报告


    Redis 相信很多人都用过了,关于性能啥的,网上一堆报告,闲得蛋痛,又随便测测写写一些狗屁文章,来刷存在感了。

    安装最新Redis5.0.10

    Redis 官方地址

    下载页默认是redis6.0,5.0版本在下面“other versions”,因为redis6.0 架构上做了很大的调整,线上服务器是centos7.8并且是内网状态,在不联网的情况下根本无法部署6.0(简直就是恶梦),业务还是5.0版本,那么这里就测试5.0版本。

    按着官方的操着方式成功安装redis5.0

    测试前配置准备

    先看看服务器配置,CPU型号是:Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz

    先试官方提供的压测工具,在redis目录下面,redis-benchmark

     相关的指令如下图

     为了使得数据更真实,分别准备了两台服务器,Redis 服务器:192.168.3.40 ,压测服务器是:192.168.3.138 ,本次测试是基于单机测试,非集群

    开始SET,Get,Lpush 常规测试

    Set 测试

    ./redis-benchmark -h 192.168.3.40 -p 6379 -t set -n 1000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 100 -n 1000000

    上面两句代码分别是进行 1000000 次 Set 请求,使用默认大小(3 个字节),第一行默认使用50并发,第二行指定100并发数。

     可以看到,这台Redis服务器的性能上限就是9W/s 的处理速度,当然REDIS的速度更多的是受限于内存的速率和网络IO,而并非CPU的影响。 

     从上面的数据来看,并发客户端从50升到100个,并没有很显著的提高性能,但是并不是意味着多个客户端并不能有效的提高处理速度。

    把客户端并发数调整为10的时候,可以明显看到处理的速度变慢了。

    接下来将测试不同的客户端并发数下,CPU和网络的变化情况

    ./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 5  -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 50  -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t set -c 100  -n 100000000

     

     三者的处理速度分别是:3.8W/S , 10W/S , 8.6W/S

    CPU变化总截图

    网络变化总截图,注意顺序依次为三者的网络变化

     

    Get 测试 

    ./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 5  -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 50 -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t get -c 100 -n 100000000
    

     三者的处理速度分别是:4.1W/S ,9.9W/S , 8.5W/S

    CPU变化截图

     

    网络变化总截图,注意顺序依次为三者的网络变化

        

    Lpust 测试

    ./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 5 -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 50 -n 100000000
    ./redis-benchmark -h 192.168.3.40 -p 6379 -t lpush -c 100 -n 100000000
    

     

     三者的处理速度分别是:3.8W/S ,9.9W/S , 8.7W/S

    CPU变化截图

    网络变化总截图,注意顺序依次为三者的网络变化

        

    本来是想测试下,正常环境下,模拟普通接口的压测,算了一下,每个接口15KB,以这个速度内存16G是不够的, 配置了100G内存,只能支持2分钟,压测不动就这样吧,后面有机会再压测模拟正常接口大小的结果。

    今天的就先水到这里,下篇文章见。

  • 相关阅读:
    golang json处理
    关于单例模式中懒汉模式和饿汉模式的学习
    关于Lambda表达式的研究
    左值和右值得研究
    关于epoll的详解说明关于epoll的详解说明
    关于c++中条件变量的分析
    关于c++种std::function和bind的用法
    关于iterator_traits的使用
    STL容器之deque数据结构解析
    STL容器之Array的用法
  • 原文地址:https://www.cnblogs.com/netcore3/p/14121579.html
Copyright © 2020-2023  润新知