如何验证 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 ‘[email protected] [email protected] mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/[email protected]‘ /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
时间: 2024-10-22 02:44:59

如何验证 jemalloc 优化 Nginx 是否生效的相关文章

TCMalloc优化Nginx、MySQL、Redis内存管理

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多.TCMalloc是google-perftools工具中的一个(gperftools四个工具分别是:TCMalloc.heap-checker.heap-profiler和cpu-profiler),这个工具是开源的,以源码形式发布.如果觉得自己维护一个内存分配器麻烦的话,可以考虑将TCMalloc静态库连接到你的程序中.使

利用TCMalloc优化Nginx性能

技术说明: TCMalloc 全称Thread-Cachig Malloc,是谷歌开发的开源工具Google-preftools中的一个成员.与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载. 一.安装libunwind: 1.安装libunwind: http://download.savannah.gnu.org/releases/libunwind/ 下载libunwind-0.99

tcMalloc 配置和优化 nginx 高性能

tcMalloc优化nginx 记住:nginx一定要先启动 1>下载安装libunwind: #wget  http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gz wget  http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz tar -zxvf libunwind-0.99-alpha.tar.

[NGINX] - 配置文件优化 - NGINX.CONF

Nginx 本文主要针对公司的Nginx负载均衡配置进行解释,配置文件在最下方.因为公司没有使用PHP,所以NGINX里面并没有太多facgi模块相关优化  NGINX.CONF user 语法: user user[group]; 标签: main 定义user和工作group 进程使用的凭证.如果group省略,user则使用名称等于的组. worker_processes 1 句法: worker_processes number | auto; 2 默认: worker_processe

nginx之旅(第六篇):nginx优化--nginx优化目的、工作进程优化、长连接设置、数据压缩、客户端缓存

一.Nginx优化目的 标准情况下,软件默认的参数都是对安装软件的硬件标准来设置的,目前我们服务?的硬件资源远远大于要求的标准,所以为了让服务?性能更加出众,充分利用服务?的硬件资源,我们一般需要优化APP的并发数来提升服务器?的性能. 二.工作进程优化 1) worker_processes worker_processes指Nginx的工作进程,这个值是直接受到服务器CPU核数量影响的(当然也有其他影响),Nginx默认配置为auto,意思是会自动检测CPU核做修改,建议worker_pro

CentOS 8 深入优化 nginx 服务

Nginx深入优化 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器, 轻量级.高并发的web服务器.在生产环境中,我们仍然不可能直接使用默认配置的Nginx来充当服务器.毕竟,为了更充分合理地利用Nginx服务器,我们都应该根 据自己的实际需要对nginx的默认配置作出一些必要的调整.主要优化:隐藏版本号 .修改用户与组 . 网页缓存时间. 连接超时 .更改进程数 .网页压缩温馨提示:文中采用yum一键安装nginx,除了配置文件路径和源码包安装不一样,优化配置都是一样

优化nginx[超时时间/fastcgi参数]

8.优化nginx连接参数调整超时时间 1)连接超时可以保护服务器资源.简单的说,连接超时是服务的一种自我管理.自我保护的重要机制. 一般Java程序需要长链接,处理效率高. 2)连接超时带来的问题 ·服务器建立新连接也是要消耗资源的,因此,超时设置的太短而并发太大,就会导致服务器瞬间无法响应用户的请求,导致体验下降: ·企业生产有些PHP程序站点希望设置短连接,因为PHP程序建立连接消耗的资源和连接要少:而Java程序站点一般建立设置长连接,因为Java程序建立连接消耗的资源和时间更多,这是语

优化nginx主配置文件

我在服务器所使用的web软件是Tengine.所以配置文件中有些选项是不兼容nginx的,已作出说明.Tengine的主页是http://tengine.taobao.org 配置文件内容 ####################################################################### # # This is the main Nginx configuration file. # More information about the configu

Nginx优化指南+LINUX内核优化+linux连接数优化+nginx连接数优化

Most setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and there, and you've got a web server! And, in most cases, a vanilla nginx install will work just fine for serving your website. However, if you're REALLY t