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

  • 相关阅读:
    ceph
    分布式网关层
    function declarations are hoisted and class declarations are not 变量提升
    js为Object对象动态添加属性和值 eval c.k c[k]
    方法就是一种变量
    static 不被实例调用
    WePY根据环境变量来改变运行时的参数
    函数类型实现接口——把函数作为接口来调用
    为什么需要onRoute函数?
    504 Gateway Timeout Error 502 Bad Gateway
  • 原文地址:https://www.cnblogs.com/DataArt/p/9978187.html
Copyright © 2011-2022 走看看