网上的文章大多局限于需要源码编译的 5.1 版本。由于 Percona 已经到 5.7,因此之前的文章不太靠谱。
自己踩了一下,不是大坑,迅速填平。
- CentOS 7.2
- Percona 版本:5.7.16-10
- jemalloc 由 dnf 安装。我的习惯,依赖都通过包管理工具解决。
1. 安装文档
Percona 其实提供了完整的安装文档。这份文档足够应付大多数情况,请务必仔细阅读。
另外一些常见问题在这里有详细描述。
2. jemalloc 的启用
由于使用 supervisor
做进程管理,启用 jemalloc
的时候遇到一些问题,主要是参数无效的问题。
阅读 Percona 的安装手册,以及 MySQL 官方文档中关于 malloc-lib
参数的介绍,找到解决捷径:直接设置 LD_PRELOAD
环境变量。
3. 在 supervisor 中更新
更新 supervisor 中 percona 的配置。我习惯的名称是 percona.conf
。新增下面一行。
environment=LD_PRELOAD="/usr/lib64/libjemalloc.so.1"
保存,退出。记得更新 supervisor 的配置。
supervisorctl update percona
4. 这时使用工具安装 TokuDB
关于其它文章中介绍的关于『内存大页』相关的问题,安装脚本都可以解决,所以直接用安装脚本就好。
/usr/local/mysql/bin/ps_tokudb_admin --enable -uroot -p
按照提示,也许还要求你重启服务器一次。不要介意,重启之后再运行脚本就行。