Redis不同版本,内存分配,硬件的性能研究
Redis不同版本,内存分配,硬件的性能研究
前言
Konw more ! Do more ! Gain more !
骨折之后开始减肥. 前段时间跳绳导致膝盖不舒服,现在改骑车和走路.
在有限的没人有烦的时间里,还是想能够多学习一些东西.
之前了解了 isolcpus 现在突然想内存分配可能也有性能影响.
所以想研究一下redis在jemalloc和tcmalloc内存分配器下面的性能表现.
安装-tcmalloc
第一步: 先进性tcmalloc的安装.
晚上的方法是使用 gperftools进行安装
git clone https://github.com/gperftools/gperftools.git
cd gperftools
./autogen.sh
./configure --enable-frame-pointers
make
make install
注意: 我没加 --enable-frame-pointers 也成功了.诡异.
编译redis
注意需要增加参数:
make USE_TCMALLOC=yes
才会使用,还注意一点会有很多错误提示:
#warning "google/tcmalloc.h is deprecated. Use gperftools/tcmalloc.h instead"
但是貌似不影响能够正常安装完成
启动验证
cd src
./redis-server
然后进行验证:
lsof -n | grep tcmalloc
验证 redis-server 其实已经可以用到 tcmalloc的内存分配器了
不使用TCMALLOC的参数编译的话. 就可以看到:
lsof -n | grep jemalloc
也可以通过 redis-cli info来进行查看
mem_allocator:tcmalloc-2.10
会在内存分配器的配置界指名本次启动使用的 内存分配器.
性能验证
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 1000000 -d 1000 -r 100000 -t set
tcmalloc:60157.62
jemalloc:62952.47
ptmalloc:61214.49
干 啥都不是.. 还是je最好.
不同版本的验证
注意这次都是jemalloc
第一次预热. 取第二次的测试结果
6.2.12 : 62952.47
7.2rc1 : 60576.69
7.0.11 : 62837.75
差异不大, 不过rc的确不行
另外N年前的机器的确也不行..
我用阿里云的Intel 8369HB 测试:
8369HB: 141522.78
版本为6.2.8
AMD 9T34的结果为:
9T34 : 213310.58
衣不如新人不如故. 设备该换就得换啊. AMD YES!
Redis不同版本,内存分配,硬件的性能研究的更多相关文章
- Memcache 内存分配策略和性能(使用)状态检查【转】
前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作. ...
- Memcache 内存分配策略和性能(使用)状态检查
前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作. ...
- 动态内存分配导致Javascript性能的问题
内存分配对性能的影响是很大的,分配内存本身需要时间,垃圾回收器回收内存也需要时间,所以应该尽量避免在堆里分配内存.不过直到最近优化HoLa cantk时,我才深刻的体会到内存分配对性能的影响,其中有一 ...
- SQL Server ->> Memory Allocation Mechanism and Performance Analysis(内存分配机制与性能分析)之 -- Minimum server memory与Maximum server memory
Minimum server memory与Maximum server memory是SQL Server下配置实例级别最大和最小可用内存(注意不等于物理内存)的服务器配置选项.它们是管理SQL S ...
- JVM性能优化系列-(2) 垃圾收集器与内存分配策略
2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如 ...
- Redis深入学习笔记(六)Redis内存分配
Redis的高效可以说是轻量级的epoll模型和基于内存的读写共同组成的,关于epoll对于以前的select或者poll的性能优势这里不做介绍,本篇主要介绍领一个重点,Redis的内存分配原理. 获 ...
- Redis的内存分配
内存分配 Redis进程的内存消耗主要包括:自身内存 + 对象内存 + 缓冲内存 + 内存碎片.1 自身内存 Redis自身内存消耗非常少,通常used_memory在800KB左右,used_mem ...
- 图片系列(6)不同版本上 Bitmap 内存分配与回收原理对比
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...
- 【朝花夕拾】Android性能篇之(二)Java内存分配
前言 在内存方面,相比于C/C++程序员,咱们java系程序员算是比较幸运的,因为对于内存的分配和回收,都交给了JVM来处理了,而不需要手动在代码中去完成.有了虚拟机内存管理机制,也就不 ...
- CentOS的Redis内存分配策略配置
安装了一主两从节点,启动之后发现有一个警告: 大概是说overcommit_memory设置成了0,在低内存环境下后台保存可能会失败,设置成1重启可解决. 然后,不太懂这个配置的含义,google一把 ...
随机推荐
- zabbix_agent配置文件
agent常用参数 : [root@jqebsdb zabbix]# cat zabbix_agentd.conf | grep -v ^$ | grep -v ^# PidFile=/var/ru ...
- mysql的CRUD操作实现
插入语句(INSERT):一旦我们选择了要插入的字段, 我们就必须保证要插入的数值和选择的字段的个数,顺序,类型一致. 1:怎么插入一条数据: INSERT INTO 插入的表名称(列名1,列 ...
- spring自定义session分布式session
spring实现自定义session.springboot实现自定义session.自定义sessionid的key.value.实现分布式会话 一.原始方案 自定义生成sessionid的值 修改t ...
- libGDX游戏开发之文理打包(八)
libGDX游戏开发之文理打包(八) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和googl ...
- 3种方法,用Java找出两个List中的重复元素
本文分享自华为云社区<如何用Java找出两个List中的重复元素,读这一篇就够了>,作者: 努力的阿飞. 在Java编程中,我们经常需要找出两个列表(List)中的重复元素.在本文中,我们 ...
- 云图说|交换数据空间Exchange Data Space
本文分享自华为云社区<云图说|交换数据空间Exchange Data Space>,作者: 阅识风云. 阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅 ...
- 手把手教你使用ModelArts的自动学习识别毒蘑菇分类
摘要:本文介绍了ModelArts如何通过自动学习进行毒蘑菇的识别. 想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻.如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得--说不定她会遇到 ...
- CentOS7安装maven,mvn clean -DskipTests package
1.JAVA_HOME 首先确保正确安装并配置了JAVA_HOME 我这里安装了jdk1.8 2.下载maven 3.6.3 wget https://mirrors.tuna.tsinghua.ed ...
- 在Linux(CentOS7)服务器上安装Java的JDK
一.介绍 最近,我在做有关CI/CD的测试,真是一步一个坑啊,碰得我头破血流,这么难得的经验,必须记录下来,以防以后想找却找不到.说道CI/CD最好的工具,大家肯定是一致推荐Jenkins,对了,我现 ...
- 十分钟读懂火山引擎 DataLeap 数据治理实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 日前,火山引擎数智平台 VeDI 直播活动「超话数据」在线举办,来自火山引擎 DataLeap 数据产品专家从数据 ...