• 如何验证 jemalloc 优化 Nginx 是否生效


    Jemalloc 源于 Jason Evans 2006年在 BSDcan conference 发表的论文:《A Scalable Concurrent malloc Implementation for FreeBSD》。Jason 认为 phkmalloc(FreeBSD's previous malloc implementation by Kamp (1998))没有考虑多处理器的情况,因此在多线程并发下性能低下(事实如此),而 Jemalloc 适合多线程下内存分配管理。从2007年开始以 FreeBSD 标准引进来。软件技术革新很多是 FreeBSD 发起,在FreeBSD应用广泛的技术会慢慢导入到 Linux 中。

    Redis 2.4版本之后,默认使用 Jemalloc 来做内存管理;Tengine 也整合 Jemalloc。Jemalloc 从各方评测的结果可见与 google tcmalloc 都不相伯仲,皆为内存管理器领域最高水平。如下图:

    最左边的就是 Glibc 的 Malloc,最右边的就是Jemalloc。从图表上可以看出,Jemalloc 的性能有 Glibc 的两倍以上,非常压倒性的性能差异。因此,使用了 Jemalloc 的应用程序自然会快很多。Jemalloc 旁边的就是 Tcmalloc,Tcmalloc的性能与其相差甚微,比 Jemalloc 2.1.0 慢4.5%。图上和 Tcmalloc 的1.4版本,而现在已经到2.1版本,因此实际上这两者应该是不相仲伯的。Jemalloc 的创始人Jason Evans也意识到这一点,说在cpu core 8以上的计算机上 Jemalloc 效率更高。

    安装 Jemalloc

    cd lnmp/src
    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
    make && make install
    echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
    ldconfig

    使用 Jemalloc 优化 MySQL

    MySQL/MaridDB 5.5编译方法,cmake预编译时加上下面参数:

    -DCMAKE_EXE_LINKER_FLAGS="-ljemalloc" -DWITH_SAFEMALLOC=OFF

    或者直接加载,修改 mysqld_safe

    sed -i 's@executing mysqld_safe@executing mysqld_safe
    export LD_PRELOAD=/usr/local/lib/libjemalloc.so@' /usr/local/mysql/bin/mysqld_safe
    service mysqld restart

    使用 Jemalloc 优化 Nginx

    cd lnmp/src/nginx-1.4.2
    make clean
    ./configure --prefix=/usr/local/nginx --user=www --group=www 
    --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module 
    --with-http_gzip_static_module --with-ld-opt="-ljemalloc"
    make && make install

    验证jemalloc优化Nginx是否生效,如下:

    lsof -n | grep jemalloc
  • 相关阅读:
    VMware安装centos7
    Docker Compose 启动mysql,redis,rabbitmq
    mysql升级到5.7
    Docker Compose搭建ELK
    Spring Boot源码(八):Spring AOP源码
    Spring AOP-基于@AspectJ风格
    JDK动态代理
    Spring Boot源码(七):循环依赖
    Spring Boot源码(六):Bean的创建详解
    Spring Boot源码(五):BeanFactoryPostProcessor和BeanPostProcessor
  • 原文地址:https://www.cnblogs.com/kimshen/p/6121376.html
Copyright © 2020-2023  润新知