jemalloc部署

63 阅读1分钟

# 下载安装包 [root@localhost data]# wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2  

# 下载解压工具 
[root@localhost data]# yum install -y bzip2  

# 安装依赖
[root@localhost data]# yum install autogen autoconf -y 
[root@localhost base]# yum -y install gcc gcc-c++  

# 解压安装包 
[root@localhost data]# tar -jxvf jemalloc-5.2.1.tar.bz2

安装

# 开始安装
[root@localhost data]# cd jemalloc-5.2.1 
[root@localhost jemalloc-5.2.1]# sh autogen.sh

[root@localhost jemalloc-5.2.1]# make && make install

[root@localhost lib64]# find / -name 'libjemalloc*' 
/usr/local/lib/libjemalloc.so.2 
/usr/local/lib/libjemalloc.so 
/usr/local/lib/libjemalloc.a 
/usr/local/lib/libjemalloc_pic.a 
/data/jemalloc-5.2.1/lib/libjemalloc.so.2 
/data/jemalloc-5.2.1/lib/libjemalloc.so 
/data/jemalloc-5.2.1/lib/libjemalloc.a 
/data/jemalloc-5.2.1/lib/libjemalloc_pic.a 
/data/jemalloc-5.2.1/libjemalloc.so.1  

[root@localhost jemalloc-5.2.1]# cp /data/jemalloc-5.2.1/lib/libjemalloc.so.2 /usr/lib/ [root@localhost jemalloc-5.2.1]# ln -s /usr/lib/libjemalloc.so.2 /usr/lib64/libjemalloc.so.1

加载

先找到mysql启动服务加载的EnvironmentFile所在路径 
[root@localhost lib]# cat /etc/systemd/system/mysqld_2311.service |grep -i EnvironmentFile EnvironmentFile=-/etc/sysconfig/mysql  

直接vim这个文件,写入LD_PRELOAD=/usr/lib64/libjemalloc.so.1并保存 
[root@localhost lib]# cat /etc/sysconfig/mysql 
LD_PRELOAD=/usr/lib64/libjemalloc.so.1  

重启数据库 
[root@localhost lib64]# ps -ef | grep mysql 
actiont+ 30336     1  2 15:53 ?        00:00:04 /data/mysql/base/5.7.25/bin/mysqld --defaults-file=/data/mysql/etc/2311/my.cnf --daemonize --pid-file=/data/mysql/data/2311/mysqld.pid --user=actiontech-mysql --socket=/data/mysql/data/2311/mysqld.sock --port=2311 root     30749  1807  0 15:56 pts/0    00:00:00 grep --color=auto mysql  

# 验证是否使用jemalloc
[root@localhost lib64]# lsof -p 30336 | grep -i jemalloc 

mysqld  30336 actiontech-mysql  mem    REG              253,1    4397688  6707603 /usr/lib/libjemalloc.so.2