Install jemalloc From APT
apt install libjemalloc2 libjemalloc-dev
Nginx 需要编译时加入--with-ld-opt=-ljemalloc
./configure --with-ld-opt='-ljemalloc'
MySQL 需要根据启动方式的不同,修改 systemd 文件 / init.d文件
- Systemd 服务启动 要修改 /usr/lib/systemd/system/mysqld.service 文件,加入
# 对于 X86_64 CPU LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 # 对于 ARM64 CPU LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so.2
- init.d 服务启动 则需要修改 /etc/init.d/mysqld 文件 (宝塔 / aapanel)
# 对于 X86_64 CPU sed -i 's| $bindir/mysqld_safe --d| LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 $bindir/mysqld_safe --d|g' /etc/init.d/mysqld # 对于 ARM64 CPU sed -i 's| $bindir/mysqld_safe --d| LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so.2 $bindir/mysqld_safe --d|g' /etc/init.d/mysqld
更新系统服务
systemctl daemon-reload
当然也可以 Build from souce 以使用最新的版本
⚠️注意 编译默认安装位置在 /usr/local/lib/libjemalloc.so.2 使用时要修改位置
wget https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2 tar -xvf jemalloc-5.3.0.tar.bz2 && cd jemalloc-5.3.0 ./configure && make && make install echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf ldconfig