zoukankan      html  css  js  c++  java
  • 一次Redis 的性能测试和问题 [问题已经自己解决,见文章最后]

    【我的问题】:请教个问题,我在本机搭建linux虚拟机+redis 3.2.6,然后在本机物理机上面测试虚拟机的redis性能,如下VM配置参数做测试,redis 的性能好像不算太好,问题待排查的两点如下:
    1. 硬件方面:win 7本地物理机个人台式电脑(一个 i7 CPU) ,上面挂载的服务器VM虚拟机 ?
    2. 软件方面:VM虚拟机上面的Redis 3.2.6 配置参数没有配置为最佳状态?
     

     【期望结果】

    硬件不变的情况下,将上面的redis的单线程和多线程的写入性能分别提升3~5倍。

    【测试结果如下】:

    2.1 多线程:1W次 写请求 ,并发成功次数为9760次,总耗时19.981秒

    2.2 单线程:1W次 写请求 ,并发成功次数为1W次,总耗时6.973秒


    【测试详情如下】:

    一. 测试环境:

    客户端:物理机 192.168.3.6  (16GB内存 + SSD 256GB系统盘 + i7 CPU 8核多线程)

    服务器:VM虚拟机 192.168.3.44  ( 2GB 内存 + VM分配 4CPU + Redis3.2.6 + CentOS 6.5 x64 )

      

    二. 测试结果

    2.1 多线程:1W次请求 ,并发成功次数为9760次,总耗时19.981秒
    图片

    图片


    2.2 单线程:1W次请求 ,并发成功次数为1W次,总耗时6.973秒

     图片

    图片

     问题已经解决:
    最后发现导致并发性能上不去的原因:就是因为每次执行测试方法都输出当前进度信息到屏幕,这个比较耗时,
    并且是有资源争夺互斥。去掉显示每次执行显示进度后,多线程压力测试或单线程压力测试的性能就提高3~5倍了如下图:

    至于为何这里多线程反而笔单线程慢,是因为我测试环境,客户端和Redis所在虚拟机都是在同一台物理个人PC上面,所以CPU的使用,物理机和虚拟机抢夺CPU使用,导致程序并发时候性能较低。

    1. 单线程:每秒写入Redis的速度为5073 次/秒 (平均值)
    图片 

    2. 多线程:每秒写入Redis的速度为3600 次/秒 (平均值)
    图片

     

  • 相关阅读:
    SQL中Group By的使用
    SQL 触发器-如何查看当前数据库中有哪些触发器
    调试SQL Server的存储过程及用户定义函数
    SQL判断一个数是整数还是小数
    手动将Excel数据导入SQL
    SQL Case when 的使用方法
    相关资料
    三款大数据工具比拼,谁才是真正的王者
    SQL中CONVERT转化函数的用法
    Sq server 关于存储过程,触发器的一些理论简述
  • 原文地址:https://www.cnblogs.com/itshare/p/6389058.html
Copyright © 2011-2022 走看看