安装 jemalloc for mysql
参考: MySQL bug:https://bugs.mysql.com/bug.php?id=83047&tdsourcetag=s_pcqq_aiomsg
https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md
(1)ptmalloc 是glibc的内存分配管理
(2)tcmalloc 是google的内存分配管理模块
(3)jemalloc 是BSD的提供的内存分配管理 (可以使用jemalloc优化Nginx)
三者jemalloc和tcmalloc的性能不分伯仲,而ptmalloc则要低一些
1、下载最新版jemalloc
git clone https://github.com/jemalloc/jemalloc
cd jemalloc
[root@bogon jemalloc]# cat VERSION
5.1.0-108-gc4063ce439523d382f2dfbbc5bf6da657e6badb0
2、安装步骤:
./autogen.sh
./configure
make
make install
[root@bogon jemalloc]# make install
/usr/bin/install -c -d /usr/bin
/usr/bin/install -c -m 755 bin/jemalloc-config /usr/bin
/usr/bin/install -c -m 755 bin/jemalloc.sh /usr/bin
/usr/bin/install -c -m 755 bin/jeprof /usr/bin
/usr/bin/install -c -d /usr/include/jemalloc
/usr/bin/install -c -m 644 include/jemalloc/jemalloc.h /usr/include/jemalloc
/usr/bin/install -c -d /usr/lib
/usr/bin/install -c -m 755 lib/libjemalloc.so.2 /usr/lib
ln -sf libjemalloc.so.2 /usr/lib/libjemalloc.so
/usr/bin/install -c -d /usr/lib
/usr/bin/install -c -m 755 lib/libjemalloc.a /usr/lib
/usr/bin/install -c -m 755 lib/libjemalloc_pic.a /usr/lib
/usr/bin/install -c -d /usr/lib/pkgconfig
/usr/bin/install -c -m 644 jemalloc.pc /usr/lib/pkgconfig
/usr/bin/install -c -d /usr/share/doc/jemalloc
/usr/bin/install -c -m 644 doc/jemalloc.html /usr/share/doc/jemalloc
/usr/bin/install: cannot stat ‘doc/jemalloc.html’: No such file or directory
make: *** [install_doc_html] Error 1
[root@bogon jemalloc]#
默认安装目录:
PREFIX : /usr/local
BINDIR : /usr/local/bin
DATADIR : /usr/local/share
INCLUDEDIR : /usr/local/include
LIBDIR : /usr/local/lib
MANDIR : /usr/local/share/man
3、配置mysqld使用jemalloc,需要将配置写到[mysqld_safe] section
[mysqld_safe]
malloc-lib=/usr/local/lib/libjemalloc.so
4. 如果直接使用sqld启动,
export LD_PRELOAD=/usr/local/lib/libjemalloc.so
然后启动sqld
5、查看jemalloc是否生效
lsof -n |grep jemalloc
[root@localhost mysql3306]# lsof -n |grep jemalloc
bash 11223 root cwd DIR 253,0 4096 35178 /software/jemalloc
mysqld 17475 mysql mem REG 253,0 4291512 18480172 /usr/lib/libjemalloc.so.2
mysqld 17475 17482 mysql mem REG 253,0 4291512 18480172 /usr/lib/libjemalloc.so.2
mysqld 17475 17483 mysql mem REG 253,0 4291512 18480172 /usr/lib/libjemalloc.so.2
mysqld 17475 17484 mysql mem REG 253,0 4291512 18480172 /usr/lib/libjemalloc.so.2
显示以上信息说明mysql已经成功加载jemalloc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决