如何验证 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\nexport 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
如何验证 jemalloc 优化 Nginx 是否生效的更多相关文章
- 使用jemalloc优化nginx和mysql内存管理
预先安装autoconf 和 make yum -y install autoconf make jemalloc的安装jiemalloc 开源项目网站 http://www.canonware.co ...
- jemalloc优化MySQL、Nginx内存管理
上一篇文章<TCMalloc优化MySQL.Nginx.Redis内存管理>,下面来看下jemalloc jemalloc源于Jason Evans 2006年在BSDcan confer ...
- jemalloc Mongodb Nginx 优化
下载 http://www.canonware.com/jemalloc/download.html 下载 wget http://www.canonware.com/download/jemallo ...
- 【转】利用TCMalloc优化Nginx的性能
From: http://www.linuxidc.com/Linux/2013-04/83197.html TCMalloc的全称是 Thread-Caching Malloc,是谷歌开发的开源工具 ...
- [NGINX] - 配置文件优化 - NGINX.CONF
Nginx 本文主要针对公司的Nginx负载均衡配置进行解释,配置文件在最下方.因为公司没有使用PHP,所以NGINX里面并没有太多facgi模块相关优化 NGINX.CONF user 语 ...
- 根据参数优化nginx的服务性能
一.优化nginx服务的worker进程数 在高并发.高访问量的Web服务场景,需要事先启动好更多的nginx进程,以保证快速响应并处理大量并发用户的请求. 1).优化nginx进程对应的配置 优化n ...
- tcMalloc 配置和优化 nginx 高性能
tcMalloc优化nginx 记住:nginx一定要先启动 1>下载安装libunwind: #wget http://download.savannah.gnu.org/releases ...
- mysql skip-grant-tables 后要多次重启 和验证登录检查确认密码生效
mysql skip-grant-tables 后要多次重启 和验证登录检查确认密码生效
- nginx安全: 配置http基本验证(Basic Auth)(nginx 1.18.0)
一,http基本验证的作用: 1,http基本身份验证会从浏览器弹出登录窗口, 简单明了,容易理解, 对于面向终端用户的前台来说,不够友好, 但对于内部员工操作的后台还是很有用,通常作为一层安全措施应 ...
随机推荐
- ubuntu 14.10 安装 zabbix
在ubuntu 14.10 上部署 zabbix 2.x 基本软件包安装 既然是ubuntu系统,当然要用好apt-get神器. 参考教程 URL:http://blog.csdn.net/cloud ...
- VB6的命令行参数
在DOS窗口下执行如下命令: C:\Program Files\Microsoft Visual Studio\VB98>vb6 /?
- es增量自定义更新的脚本
安装需要可软件 sudo apt-get install python-pip sudo pip install elasticsearch; sudo apt-get install python- ...
- OC基础(24)
NSMutableArray基本概念 NSDictionary基本概念 NSMutableDictionary基本概念 常见的结构体 *:first-child { margin-top: 0 !im ...
- OC基础(13)
内存管理简介 引用计数器 dealloc方法 野指针\空指针 *:first-child { margin-top: 0 !important; } body > *:last-child { ...
- Linux系统自启动脚本
只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可.比如:我已经编写了一个脚本shell.sh,存放在/home/mars704/Desktop/ 下面在终端输入 gedit ...
- oracle登陆的命令是什么?导出数据表的命令是什么?
登陆的命令: su - oracle sqlplus / as sysdba 导出数据表的命令: exp user/pwd@SID file=path/sth.dmp tables=(table1,t ...
- jmeter随笔(7)--查看请求响应,为空
问题:查看请求响应,为空 解决办法: 1.在jmeter3.0版本上找到请求,在[Advanced]下勾选"从HTML文件获取所有内含的资源" 2.运行查看,结果如下
- Appnium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...
- 慕课网-安卓工程师初养成-2-2 认识Java标识符
来源:http://www.imooc.com/code/1177 问:标识符是神马? 答:标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 使用标识符时,需要遵守几条规则: 1. 标 ...