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

  • 相关阅读:
    PHP date函数时间相差8个小时解决办法
    PHP中include()与require()的区别说明
    post与get区别
    MFC 对话框控件自动布局
    Apache php Mysql部署(一)下载安装
    apache 重定向
    clistctrl失去焦点高亮显示选中行
    格式化字符串
    unicode编码与utf-8 区别
    string的实现
  • 原文地址:https://www.cnblogs.com/DataArt/p/9978187.html
Copyright © 2011-2022 走看看