当前位置:首页 > 行业动态 > 正文

使用 Jemalloc 优化 Mysql和PHP 内存占用

Jemalloc 是一种高效的内存分配器,可以显著减少 Mysql 和 PHP 的内存占用。它通过智能分配、复用和压缩技术来优化内存使用,提高性能。

使用 Jemalloc 优化 Mysql 和 PHP 内存占用

Jemalloc 是一个高效的内存分配器,它可以替代默认的 glibc malloc 和 free,通过使用 Jemalloc,可以显著减少 Mysql 和 PHP 的内存占用,提高系统的性能。

1、安装 Jemalloc

在 Linux 系统中,可以通过以下命令安装 Jemalloc:

sudo aptget install libjemallocdev

2、编译并安装带有 Jemalloc 的 Mysql

从 MySQL 官方下载源代码包,然后执行以下步骤:

解压源代码包
tar xvf mysql5.7.35.tar.gz
cd mysql5.7.35
配置编译选项,指定使用 Jemalloc
CFLAGS="DWITH_JEMALLOC=1" CXXFLAGS="DWITH_JEMALLOC=1" LDFLAGS="ljemalloc" ./configure prefix=/usr/local/mysql withcharset=utf8mb4 withcollation=utf8mb4_unicode_ci enablethreadsafeclient enablelocalinfile withplugins=innobase,csv,myisam,shared
编译并安装 Mysql
make && make install

3、编译并安装带有 Jemalloc 的 PHP

从 PHP 官方下载源代码包,然后执行以下步骤:

解压源代码包
tar xvf php7.4.0.tar.gz
cd php7.4.0
配置编译选项,指定使用 Jemalloc
export CFLAGS="DWITH_JEMALLOC=1" CXXFLAGS="DWITH_JEMALLOC=1" LDFLAGS="ljemalloc" ./configure prefix=/usr/local/php enablefpm withconfigfilepath=/usr/local/php/etc enableinlineoptimization withcurl withmysqli withpdo_mysql withzlib enablezip enablembstring enablesockets enableexif enablesoap enablexmlreader enablexmlwriter enablesimplexml enablecalendar enablesysvsem enablesysvshm enablepcntl enableftp enablegd withjpegdir=/usr/local withpngdir=/usr/local withfreetypedir=/usr/local withzlib withopenssl withmcrypt withgettext withmysqli=mysqlnd withmysql=mysqlnd
编译并安装 PHP
make && make install

4、重启 Mysql 和 PHP 服务

sudo service mysql restart
sudo service php7.4fpm restart

问题与解答:

Q1: 我使用的是其他版本的 Mysql 或 PHP,如何进行优化?

A1: 对于其他版本的 Mysql 或 PHP,可以参考上述步骤,修改相应的源代码包版本和编译选项,对于 Mysql,可以从官方下载相应版本的源代码包,然后执行 ./configure 时指定正确的版本号,对于 PHP,可以从官方下载相应版本的源代码包,然后执行 ./configure 时指定正确的版本号,按照上述步骤编译并安装即可。

0