zoukankan      html  css  js  c++  java
  • 安装 jemalloc for mysql

    参考: MySQL bug:https://bugs.mysql.com/bug.php?id=83047&tdsourcetag=s_pcqq_aiomsg 

        https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md

    (1)ptmalloc 是glibc的内存分配管理

    (2)tcmalloc 是google的内存分配管理模块

    (3)jemalloc 是BSD的提供的内存分配管理 (可以使用jemalloc优化Nginx)

    三者jemalloc和tcmalloc的性能不分伯仲,而ptmalloc则要低一些

    1、下载最新版jemalloc

    git clone https://github.com/jemalloc/jemalloc

    cd jemalloc

    [root@bogon jemalloc]# cat VERSION
    5.1.0-108-gc4063ce439523d382f2dfbbc5bf6da657e6badb0

    2、安装步骤:

    ./autogen.sh

    ./configure 

    make 

    make install

    [root@bogon jemalloc]# make install

    /usr/bin/install -c -d /usr/bin
    /usr/bin/install -c -m 755 bin/jemalloc-config /usr/bin
    /usr/bin/install -c -m 755 bin/jemalloc.sh /usr/bin
    /usr/bin/install -c -m 755 bin/jeprof /usr/bin
    /usr/bin/install -c -d /usr/include/jemalloc
    /usr/bin/install -c -m 644 include/jemalloc/jemalloc.h /usr/include/jemalloc
    /usr/bin/install -c -d /usr/lib
    /usr/bin/install -c -m 755 lib/libjemalloc.so.2 /usr/lib
    ln -sf libjemalloc.so.2 /usr/lib/libjemalloc.so
    /usr/bin/install -c -d /usr/lib
    /usr/bin/install -c -m 755 lib/libjemalloc.a /usr/lib
    /usr/bin/install -c -m 755 lib/libjemalloc_pic.a /usr/lib
    /usr/bin/install -c -d /usr/lib/pkgconfig
    /usr/bin/install -c -m 644 jemalloc.pc /usr/lib/pkgconfig
    /usr/bin/install -c -d /usr/share/doc/jemalloc
    /usr/bin/install -c -m 644 doc/jemalloc.html /usr/share/doc/jemalloc
    /usr/bin/install: cannot stat ‘doc/jemalloc.html’: No such file or directory
    make: *** [install_doc_html] Error 1
    [root@bogon jemalloc]#

    默认安装目录:

    PREFIX             : /usr/local
    BINDIR             : /usr/local/bin
    DATADIR            : /usr/local/share
    INCLUDEDIR         : /usr/local/include
    LIBDIR             : /usr/local/lib
    MANDIR             : /usr/local/share/man

    3、配置mysqld使用jemalloc,需要将配置写到[mysqld_safe] section

    [mysqld_safe]
    malloc-lib=/usr/local/lib/libjemalloc.so

    4. 如果直接使用sqld启动,

    export LD_PRELOAD=/usr/local/lib/libjemalloc.so

    然后启动sqld

    5、查看jemalloc是否生效

    lsof -n |grep jemalloc

    [root@localhost mysql3306]# lsof -n |grep jemalloc
    bash      11223                 root  cwd       DIR              253,0      4096      35178 /software/jemalloc
    mysqld    17475                mysql  mem       REG              253,0   4291512   18480172 /usr/lib/libjemalloc.so.2
    mysqld    17475 17482          mysql  mem       REG              253,0   4291512   18480172 /usr/lib/libjemalloc.so.2
    mysqld    17475 17483          mysql  mem       REG              253,0   4291512   18480172 /usr/lib/libjemalloc.so.2
    mysqld    17475 17484          mysql  mem       REG              253,0   4291512   18480172 /usr/lib/libjemalloc.so.2

    显示以上信息说明mysql已经成功加载jemalloc

  • 相关阅读:
    Jenkins持续集成邮件发送
    基于appium快速实现H5自动化测试
    Linux常用命令学习一
    BZOJ4372烁烁的游戏——动态点分治+线段树(点分树套线段树)
    BZOJ3730震波——动态点分治+线段树(点分树套线段树)
    BZOJ1014[JSOI2008]火星人——非旋转treap+二分答案+hash
    BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索
    BZOJ1115[POI2009]石子游戏——阶梯Nim游戏
    BZOJ3110[Zjoi2013]K大数查询——权值线段树套线段树
    BZOJ5343[Ctsc2018]混合果汁——主席树+二分答案
  • 原文地址:https://www.cnblogs.com/DataArt/p/9978187.html
Copyright © 2011-2022 走看看