0

尝试将 jemalloc 用于 mysql 5.7.30

Linux db1 4.18.0-193.6.3.el8_2.x86_64 #1 SMP 2020 年 6 月 10 日星期三 11:09:32 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

MySQL 5.7.30

yum list installed 显示:jemalloc.x86_64 5.2.1-2.el8 @epel

/usr/lib64/libjemalloc.so.2 中明显的 jemalloc 文件

添加...

 [mysqld-safe]
malloc-lib=/usr/lib64/libjemalloc.so.2

... to my.cnf 返回 malloc-lib 的“未知变量”错误

环境

[Service]
Environment="LD_PRELOAD=/usr/lib64/libjemalloc.so.2"

在 systemctl 覆盖文件中不会改变任何东西

手动做

导出 LD_PRELOAD=/usr/lib64/libjemalloc.so.2

在重新启动之前也没有任何效果。

我错过了什么?

4

1 回答 1

0

您需要在以下位置编辑 systemd 配置文件:

/etc/systemd/system/mariadb.service.d/

或者

/etc/systemd/system/multi-user.target.wants/mariadb.service

尝试在那里找到mariadb配置文件。

然后添加行:

Environment="LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2"

确保您在该路径中有该文件。您可能在不同的位置或使用不同的名称(如libjemalloc.so.1)拥有它。

在那之后:

systemctl daemon-reload

并重新启动 MariaDB。

使用它来检查是否在 MariaDB 控制台中安装了 Jemalloc:

SHOW VARIABLES LIKE 'version_malloc_library';

如果应该显示“jemalloc”,而不是“系统”。

于 2021-11-19T08:44:13.400 回答