【我的问题】:请教个问题,我在本机搭建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 次/秒 (平均值)

一次Redis 的性能测试和问题 [问题已经自己解决,见文章最后]的更多相关文章

  1. Kioskcached(1)之 Memcached & Redis & Kioskcached 性能测试对比

    前言:本文仅仅是作者自己在学习过程中的一次实验而已,或许因为各种因素会导致实验结果与你之前的认知不太一样,因此请你带着批判的眼光看待本文(本文不具有实际环境的参考性). 一:测试目的 在了解了一些No ...

  2. 一次Redis 的性能测试和问题

    [我的问题]:请教个问题,我在本机搭建linux虚拟机+redis 3.2.6,然后在本机物理机上面测试虚拟机的redis性能,如下VM配置参数做测试,redis 的性能好像不算太好,问题待排查的两点 ...

  3. redis基准性能测试

    1 测试目的 了解redis在不同情况下的性能表现,并分析其性能瓶颈,找出相应的解决方案. 2 redis基准测试概览 运行下列命令可以了解自己的redis服务器的基本性能指标. 通过loopback ...

  4. redis写入性能测试

    import timeit import redis def clock(func): def clocked(*args, **kwargs): t0 = timeit.default_timer( ...

  5. redis 基本性能测试说明

    http://ghoulich.xninja.org/2016/11/17/how-to-use-redis-benchmark-to-measure-performance/

  6. redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题

    先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...

  7. 安装redis时Newer version of jemalloc required错误解决

    问题: [root@localhost redis-4.0.0]# make cd src && make allmake[1]: Entering directory `/root/ ...

  8. redis 创建集群时 出现的错误解决方式

    1. 创建集群时报以下错误 (1)错误1 ./redis-trib.rb create --replicas 1 XXXXXX:5301 XXXXXX:5302 XXXXXX:5303 XXXXXX: ...

  9. redis 带入的挖矿病毒 qW3xT.2 wnTKYg 解决方法

    最近我的阿里云ecs 老是收到 云盾态势感知系统检测到异常 top -c 后发现一个 疑似病毒  /tmp/qW3xT.2 看到网友们的解决方案 试过之后效果不错,可以用的 知道wnTKYg是什么鬼之 ...

随机推荐

  1. css-css简介

    CSS:层叠样式表 ** 层叠:一层一层的 ** 样式表:很多的属性和属性值 * 使页面显示效果更好 * CSS将网页内容和显示样式进行分离,提高了显示功能.

  2. HTML 5 表单相关元素和属性

    HTML使用表单向服务器提交请求,表单.表单控件的主要作用是收集用户输入,当用户提交表单时,用户输入内容将被作为请求参数提交到远程服务器.因此,在Web编程中,表单主要是用于收集用户输入的数据,在需要 ...

  3. 靠谱的div引入任何外链内容

    靠谱的div引入任何外链内容 开发中经常要在div中引入一个页面,该页面可能是内部页面,可能是一个外部页面,也可能只是一个域名获取的请求. 对于内部页面的加载,建议使用jquery的load函数,如: ...

  4. 使用angular帮你实现拖拽

    拖拽有多种写法,在这里就看一看angular版的拖拽. <!DOCTYPE html> <html ng-app="myApp"> <head> ...

  5. toMapFromStage layerDefinitions ClassBreakRenderer

    class Map 方法 toMapFromStage 用于把屏幕坐标转换为地理坐标 public function toMapFromStage(stageX:Number, stageY:Numb ...

  6. ASP.NET MVC Tips

    1. _ViewStart.cshtml会在调用每个页面的时候执行,我们可以在页面内设置Layout页面,也可以在这个页面写一些逻辑来根据不同的情况引用不同的Layout页面,详情请参考此处:

  7. Selenium2学习(六)-- 定位神器CSS

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  8. JS教程之实现加载图片时百分比进度

    思路:思路其实很简单,ajax执行时,会生成一个event对象,其中会包含要加载的文件的大小和当前已经加载完成部分的大小,通过这两个值即可计算出百分比 事件介绍onprogress 当浏览器正在加载媒 ...

  9. cobbler自动安装

    基础环境:centos7.2 本地IP地址:192.168.56.12 网络环境:桥接模式 一.安装cobbler # rpm -ivh http://mirrors.aliyun.com/epel/ ...

  10. June 13th 2017 Week 24th Tuesday

    There are no regrets in life, just lessons. 人生中没有后悔,只有教训. Some people can learn from their past mist ...