默认的内存分配就是c的malloc 现在也出现许多优化的内存分配算法:
jemalloc and tcmalloc
从MySQL 5.5后支持声明内存储方法。
安装jemalloc
-
wget http://www.canonware.com/download/jemalloc/jemalloc-3.4.0.tar.bz2
tar xjf jemalloc-3.4.0.tar.bz2
cd jemalloc-3.4.0
./configure --prefix=/usr/local/jemalloc --libdir=/usr/local/lib make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
[root@host-192-168-1-56 mysql]# cp /usr/local/lib/libjemalloc.so /usr/lib64/mysql/libjemalloc.so
mysql使用jemalloc
-
修改配置文件
-
[mysqld_safe]
malloc-lib=/usr/lib64/mysql/libjemalloc.so ###指定libjemalloc.so 即可
重启mysql检查是否生效
-
[root@host-192-168-1-56 mysql]# lsof -n | grep jemalloc
mysqld 6032 mysql mem REG 252,1 4781206 320288 /usr/lib64/mysql/libjemalloc.so
-
今天我与同事使用sysbench对jemalloc的前后进行了测试对比,总体提高了20%以上。
参考文档:
http://www.lai18.com/content/2397064.html
http://www.phperz.com/article/16/0801/234446.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29096438/viewspace-2122906/
,如需转载,请注明出处,否则将追究法律责任。