MySQL 通过 jemalloc 管理内存
一:jemalloc 简介
jemalloc 强调了碎片避免和可扩展的并发支持。jemalloc于2005年首次作为FreeBSD libc分配器使用,从那以后它已经进入许多依赖于其可预测行为的应用程序。jemalloc适合多线程下内存分配管理,jemalloc从各方评测的结果可见与google tcmalloc都不相伯仲,皆为内存管理器领域最高水平。有时候,我们想采用Jemalloc来替代glibc库的malloc内存管理方式,或者如果想启用TokuDB引擎,则就必须启用Jemalloc才行了。
二:安装 jemalloc
1. yum 安装 jemalloc
1) 安装
yum install jemalloc -yyum install tcmalloc -y2) 生效 LD_PRELOAD 环境变量
source /usr/bin/jemalloc.sh
env|grep LD_PRELOAD2. 编译安装 jemalloc
1) 下载安装包
wget https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz22)解压编译安装
tar jxvf jemalloc-5.1.0.tar.bz2
cd jemalloc-5.1.0
./configure --prefix=/usr
make && make install##注意这里要指定编译路径,否则mysql启动的时候会报如下错误
mysqld_safe --malloc-lib must be located in one of the directories: /usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu##反向操作
make uninstall && make clean
make -f dc_debug.mak clean
三:启动MySQL如何加载 Jemalloc
1. 通过指定 LD_PRELOAD 环境变量加载 jemalloc
1) 切换到 mysql 用户
su - mysql
2) 设置 LD_PRELOAD 环境变量
export LD_PRELOAD=/usr/lib64/libjemalloc.so.1
env|grep LD_PRELOAD
#LD_PRELOAD是个环境变量,用于动态库的加载,动态库加载的优先级最高。一般情况下,其加载顺序为:LD_PRELOAD>LD_LIBRARY_PATH => /etc/ld.so.cache => /lib => /usr/lib
3) mysqld 直接启动数据库
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
或者
msyqld_safe --defaults-file=/etc/my.cnf &
4)确认 mysqld 是否加载了 jemalloc
lsof -p `pidof mysqld` | grep -i jemalloc
mysqld 8041 mysql mem REG 253,1 212096 51708144 /usr/lib64/libjemalloc.so.1
#命令有如上输出时表示加载成功2. 通过在配置文件中指定 malloc-lib 参数加载 jemalloc
1) 配置文件中指定 malloc-lib 参数
vi /etc/my.cnf
[mysqld_safe]
malloc-lib = /usr/lib64/libjemalloc.so.1#详细信息可以参考 https://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html#option_mysqld_safe_malloc-lib2) 通过 mysqld_safe 启动数据库
mysqld_safe --defaults-file=/etc/my.cnf &3)检查 jemalloc 是否加载成功
lsof -p `pidof mysqld` | grep -i jemalloc
MySQL 通过 jemalloc 管理内存相关推荐
- MySQL 通过Tcmalloc管理内存
一: Tcmalloc 安装 1. libunwind 安装 #如果你是在 64 位系统安装 Tcmalloc ,强烈建议先安装 libunwind,详细原因请见: https://github.co ...
- MySQL • 源码分析 • 内存分配机制
摘要: 前言 内存资源由操作系统管理,分配与回收操作可能会执行系统调用(以 malloc 算法为例,较大的内存空间分配接口是 mmap, 而较小的空间 free 之后并不归还给操作系统 ),频繁的系统 ...
- MySQL数据库的管理工具
1 MySQL的命令行工具 在数据库启动状态时,如果我们想关闭数据库,我们可以输入: net stop mysql8,这样可以关闭数据库,如下图所示: 数据库关闭以后,我们如果想启动数据库,可以输入: ...
- 内存管理-内存池的实现
内存池的实现 1 前言 2 内存池的原理 2.1 内存利用链表进行管理 2.2 分配固定大小 2.3 按块进行内存管理 3 内存池的实现 3.1 内存池的创建 3.2 内存池的销毁 3.3 内存分配 ...
- MySQL之账号管理.建库以及四大引擎
目录 1.mysql简介 2.MySQL安装 安装MySQL(8.0的版本) 安装MySQL(5.7的版本) 删除MySQL(这是5.5版本的卸载方式) 3.命令行登陆及权限修改 4.MySQL默认四 ...
- MySQL之账号管理、建库、四大引擎以及数据类型、建表、约束
目录 一.MySQL简介 MySQL是什么? 术语 二.MySQL安装 三.MySQL默认数据库里面的四张表 四.mysql之账号管理.建库以及四大引擎 五.MySQL之数据类型.建表以及约束 六.案 ...
- MySQL之权限管理
MySQL之权限管理 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允 ...
- gearman mysql_Gearman Server 使用 MySQL UDFs 来管理和保持队列
我们知道 Gearman 的任务是一个数组结构,只存在内存中,一断电怎么样这个信息就会不存在.所以新的 gearman 开发了一个功能,就是通过 mysql 来存储任务信息.这样可以持久的保持任务的状 ...
- mysql二进制日志管理_MYSQL二进制日志管理脚本
MYSQL二进制日志管理脚本脚本原理是每小时对进行flush生成新的二进制日志,将二进制日志备份至NFS,并压缩存放:#!/bin/bash#Purpose:管理二进制日志,每小时刷新二进制日志,并将 ...
- 在请求分页虚存管理系统中_请求分页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间_学小易找答案...
[简答题]OS作为接口,通过哪几种方式实现? [简答题]并发与并行有什么区别? [判断题]请求分页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间 [简答题]微内核是否是完整的OS? [单 ...
最新文章
- OpenShift — 架构设计
- 容器开启数据服务之旅系列(一):Kubernetes如何解自建PostgreSQL运维之痛
- ID--HANDLE--HWND三者之间的互相转换(转)
- 是什么引起数据中心机房事故频发,是天灾还是人祸?
- C#中将list进行序列化并使用SharpZipLib进行压缩
- 63. Unique Paths II 不同路径 II
- php删除框架集,delete 删除-Medoo - 高效的轻量级PHP数据库框架, 提高开发效率!
- java comparator_Java基础之String漫谈(二)
- 带负荷测试要求二次最小电流_电流回路基础知识(15):带负荷测试
- 实用Python之字符串长度计算
- 一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发
- Apache mod_rewrite
- matlab2c使用c++实现matlab函数系列教程- polyval函数
- mac10.12 安装“任何来源”软件解决
- 阿里云服务器被恶意程序攻击
- linux网卡流量查询sar,Linux 查看实时网卡流量的方法 sar nload iftop
- 多行文本溢出隐藏省略号
- 软件:股票小助手/盯盘小助手!
- Springboot项目启动后自动在浏览器打开
- 网页转换成电脑exe软件简单办法
热门文章
- 带蒙版的安卓剪辑软件_手机上有哪些好用的视频剪辑 App?
- 计算机vfp知识要点,计算机二级考试VFP知识点:VisualFoxPro基础
- 使用python控制其他软件运行_Python实现运行其他程序的四种方式实例分析
- HTML5制作对联网页,经典的JS对联广告代码
- java struts2教程_Struts2教程
- 解答篇:金蝶K3wise截取活动窗口
- 什么是SOCKS5协议
- android采集声卡,农步祥作品 - Android系统下使用USB声卡音质测评报告 [Soomal]
- Keysight WIFI6测试培训笔记
- Chromium OS Autotest 概述