【我问题】:请教个问题,我在本机搭建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秒
谢谢各位,问题原因找到了,不是Redis或机器硬件问题,而是我做压力测试的时候在命令行每次执行一次测试的时候,执行输出显示当前进度信息造成的耗时,拖慢了整个过程的执行速度。
如下图,我注释掉打印进度信息的代码后,单线程和多线程速度,提高到5倍,详情如下截图1、2、3。
截图1:我注释掉”输出每次测试的进度信息”
截图2:单线程,10000次写入,总耗时2.161秒,平均写入速度:每秒5000次。
网络问题`
不是网络问题,同一台物理机上面,物理机win7 x64, 然后物理机上面挂着虚拟机CentOS 6.5 x64 (上面部署的Redis 3.2.6 x64).