如何验证 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
最新文章
- Jquery实现特效滑动菜单栏
- 点击jqGrid表格,弹出需要的表格的数据
- macd综合版
- HTML5结合百度地图API创建地图应用
- HBase的shell命令行界面按退格键(Backspace)无法删除问题
- MMU讲解
- javascript 作用域例子
- POJ2004 Mix and build Trie树? dp?
- SQL大数据查询分页存储过程
- struts2与velocity的整合有两种方式
- 简述Android系统内存不足时候,内存回收机制
- Tomcat中虚拟路径
- 使用WebGL 自定义 3D 摄像头监控模型
- Spring Cloud微服务实践之路- Eureka Server 中的第一个异常
- Westore 1.0 正式发布 - 小程序框架一个就够
- 【Clojure 基本知识】 关于函数参数的各种高级用法
- ajax之同步异步详解
- Power BI Embedded 与 Bot Framework 结合的AI报表系统
- PHP简单模拟登录功能实例分享
- apache+svn+ldap集成