Redis IO多线程的简要测试结果


摘要

最近想简单确认一下IO多线程的对吞吐量的提升情况.
正好手头有鲲鹏的机器, 所以想直接进行一下验证
顺便用一下4216 进行一下对比. 发现 在CPU核心比较多的情况下 8个IO线程吞吐量能够翻一番.
但是部分命令在4-8线程增加时 差异并不是特别明显. silver 4216 低价位的intelCPU比鲲鹏920的 吞吐量要高一些, 单没有搞多少.
纯粹压测, 看不太出来绑核与不绑核的差异.

测试命令

./redis-benchmark -h 127.0.0.1 -p 6376 -n 100000 -c 8000 -d 256 --threads 1
# 注意我选择 10万个keys 8000个client 简直大小选择 256字节.
# 注意默认大小是 3个字节, 数值会比较好看,我想把简直设置大一些会好一点
cat 6376_1threads.txt | grep -E "requests per second|====="
通过这个命令进行简要分析出具结果

测试方式

鲲鹏 920 64核心 两路服务器
2.6Ghz 128Core的服务器上面
使用 1 2 4 8 四种线程数量跑四遍 压测过程中使用 top -Hp的方式查看CPU的使用情况:
比如发现某个进程
13276 root 20 0 2278756 1.2g 3080 R 99.7 0.1 1:01.29 io_thd_1
13271 root 20 0 2278756 1.2g 3080 R 99.0 0.1 1:07.60 redis-server
这是两个线程时的监控情况.
出现CPU 高时 主要是执行LGANGE的测试.. GET和SET不会到达这么搞的占用. 如果是四个线程会出现如下的情况:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
35666 root 20 0 1725812 954204 3052 R 99.9 0.1 0:21.90 io_thd_1
35667 root 20 0 1725812 954204 3052 R 99.9 0.1 0:21.89 io_thd_2
35668 root 20 0 1725812 954204 3052 R 99.9 0.1 0:21.89 io_thd_3
35661 root 20 0 1725812 954204 3052 R 99.7 0.1 0:27.58 redis-server
35663 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 bio_close_file
35664 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 bio_aof_fsync
35665 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 bio_lazy_free
35669 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.25 jemalloc_bg_thd
37399 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 jemalloc_bg_thd
37401 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 jemalloc_bg_thd
37402 root 20 0 1725812 954204 3052 S 0.0 0.1 0:00.00 jemalloc_bg_thd

测试结果

线程数 PING SET GET INCR LPUSH RPUSH RPOP SADD HSET LRANGE_600 MSET
1 58719 58139 58788 61614 57142 58207 58343 61199 60024 2257 42211
2 75585 90497 74738 90991 74682 75301 75131 92421 90744 4211 53792
4 126582 95328 96246 125470 94339 96432 95693 96339 95510 4559 64432
8 129701 97751 129198 129366 97751 97656 97751 129701 129198 4434 65445


对比silver 4216与 6150的绑核处理

线程数 PING SET GET INCR LPUSH SADD HSET LRANGE_600 MSET
鲲鹏920 8线程 129701 97751 129198 129366 97751 129701 129198 4434 65445
4216 8线程 130548 130718 130208 130208 130378 129870 130548 6069 78616
4216 8线程 绑核 130548 129701 130208 130718 130039 129701 130378 6826 78125


4216 的绑核处理

server_cpulist 0-8
bio_cpulist 9-10
aof_rewrite_cpulist 12-15
bgsave_cpulist 16-17

Redis IO多线程的简要测试结果的更多相关文章

  1. centos8平台:redis6配置启用io多线程(redis6.0.1)

    一,linux平台上redis6的安装 请参见这一篇: https://www.cnblogs.com/architectforest/p/12830056.html 说明:刘宏缔的架构森林是一个专注 ...

  2. 转载: 一、linux cpu、内存、IO、网络的测试工具

    来源地址: http://blog.csdn.net/wenwenxiong/article/details/77197997 记录一下 以后好找.. 一.linux cpu.内存.IO.网络的测试工 ...

  3. [Redis] redis在centos下安装测试

    下载软件,使用命令wget xxx,参数:url 例如: wget http://download.redis.io/releases/redis-3.0.0.tar.gz 解压缩,使用命令tar,参 ...

  4. 基于Redis缓存的Session共享测试(转)

    本机ip为192.168.1.101 1.准备测试环境 两个Tomcat 在Eclipse中新建2个Servers,指定对应的Tomcat,端口号错开. Tomcat1(18005.18080.180 ...

  5. Nginx+MySQL+PHP+Redis多机部署(测试发布discuz论坛)

    链接:LNMP+Redis单机部署 1.实战多机部署环境 nginx服务器: 192.168.1.3 php服务器:    192.168.1.4 mysql服务器: 192.168.1.10 red ...

  6. redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?

    1.redis和memcached有什么区别? 这个事儿吧,你可以比较出N多个区别来,但是我还是采取redis作者给出的几个比较吧 1)Redis支持服务器端的数据操作:Redis相比Memcache ...

  7. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  8. [原]Redis主从复制各种环境下测试

    Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...

  9. Redis集群的使用测试(Jedis客户端的使用)

    Redis集群的使用测试(Jedis客户端的使用)1.Jedis客户端建议升级到最新版(当前为2.7.3),这样对3.0.x集群有比较好的支持.https://github.com/xetorthio ...

  10. SQLServer表变量对IO及内存影响测试

    原文:SQLServer表变量对IO及内存影响测试 1. 测试创建表变量对IO的影响 测试创建表变量前后,tempdb的空间大小,目前使用sp_spaceused得到大小,也可以使用视图sys.dm_ ...

随机推荐

  1. 使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘

    摘要:本文带来基于LiteOS一站式开发工具LiteOS Studio,通过单步调试,来动态分析LiteOS的启动流程. 编者按:在LiteOS大揭秘系列,我们和读者们分享了<LiteOS是怎么 ...

  2. 华为云FusionInsight MRS在金融行业存算分离的实践

    摘要:华为云FusionInsight MRS的大数据存算分离解决方案,实现资源价值最大化,存储与计算资源全面云化.灵活配置.弹性伸缩,降本增效. 在大数据.云计算.5G.AI等技术日新月异,数字经济 ...

  3. 常见的6种MySQL约束

    摘要:一篇文章带你彻底了解MySQL各种约束 MySQL约束 <1> 概念 是一种限制,它是对表的行和列的数据做出约束,确保表中数据的完整性和唯一性. <2> 使用场景 创建表 ...

  4. 在Spark Scala/Java应用中调用Python脚本,会么?

    摘要:本文将介绍如何在 Spark scala 程序中调用 Python 脚本,Spark java程序调用的过程也大体相同. 本文分享自华为云社区<[Spark]如何在Spark Scala/ ...

  5. 提速 10 倍!深度解读字节跳动新型云原生 Spark History Server

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前不久,在 6月29日 Databricks 举办的 Data + AI Summit 上,火山引擎向大家首次介绍 ...

  6. 转换 nvarchar 值 '81000000825' 时溢出了整数列

    转换 nvarchar 值 '81000000825' 时溢出了整数列

  7. Sublime Text 汉化 中文

    Ctrl+Shift+P 安装 ChineseLocalizations 包 如下图 或者 Preferences -> Package Control

  8. Spring Boot Admin 自定义健康检查

    添加自定义类: /** * 监控接口的健康情况 * */ @Component public class ApiHealthIndicator implements HealthIndicator { ...

  9. Linux系统用户态和内核态

    Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核空间).内核从本质上看是一种软件-----控制计算机的硬件资源,并提供上层应 ...

  10. AtCoder Beginner Contest 187 题解

    A - Large Digits 按要求求出两个数的每位之和,进行比较即可. 时间复杂度 \(\mathcal{O}(\log(AB))\). B - Gentle Pairs 枚举所有点对求斜率. ...