新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 服务器

使用google-perftools优化nginx内存管理提升性能

时间:2019-12-03 17:22:14  来源:  作者:
使用google-perftools优化nginx内存管理提升性能

 

一、前言

1、使用google开发的google-perftools优化Nginx内存分配效率和速度,帮助在高并发的情况下控制内存的使用。

2、TCMalloc在内存的分配上效率和速度要比malloc高得多。但是nginx的内存占用其实是很少的,一个进程占用的内存大概只有12M左右,所有google-perftools对nginx的优化效果可能不太明显。

二、安装

1、下载并安装google-perftools

# 从github上下载perftools工具包
shell> wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz
# 注意:
# 1、如果是32位系统,在configure gperftools的时候,可以不添加--enable-frame-pointers参数。
# 2、如果是64位系统,需要先安装libunwind,再在configure gperftools的时候,添加--enable-frame-pointers参数。
shell> yum install epel-release -y
shell> yum install libunwind-devel -y
shell> tar zxvf gperftools-2.7.tar.gz
shell> cd gperftools-2.7
shell> ./configure --enable-frame-pointers --enable-libunwind --with-tcmalloc-pagesize=32
shell> make && make install

2、使nginx支持google-perftools

# 重新编译ngx,添加--with-google_perftools_module
# 简单演示参数添加方法,详细的nginx安装过程,请参考《源码安装openresty》
shell> ./configure --with-google_perftools_module
shell> make && make install

3、配置nginx对google-perftools的支持

# 添加线程目录
shell> mkdir /tmp/tcmalloc
shell> chmod 0777 /tmp/tcmalloc
# 修改nginx.conf,在pid行下面添加如下信息
google_perftools_profiles /tmp/tcmalloc;
# 重启nginx
shell> /opt/openresty/nginx/sbin/nginx -s reload
# 验证是否支持
shell> lsof -n |grep tcmalloc
nginx 1414 nobody 12w REG 252,1 0 1452011 /tmp/tcmalloc.1414
nginx 1415 nobody 14w REG 252,1 0 1452010 /tmp/tcmalloc.1415
# 备注:tcmalloc的记录文件数量与nginx.conf中worker_processes的值有关,每个worker对应一个tcmalloc文件。

4、可能会遇到的问题

# 启动nginx,发现缺少libprofiler.so.0动态库的支持
shell> /opt/openresty/nginx/sbin/nginx 
/opt/openresty/nginx/sbin/nginx: error while loading shared libraries: libprofiler.so.0: cannot open shared object file: No such file or directory
# 查找系统下是否有libprofiler.so.0动态库
shell> whereis libprofiler.so.0
libprofiler.so: /usr/local/lib/libprofiler.so.0 /usr/local/lib/libprofiler.so
# 由于不在nginx程序查找的目录下,所以需要创建软链接
# 评估缺少的动态库支持,可通过ldd /opt/openresty/nginx/sbin/nginx的方式,查看"not found"部分。
shell> ln -s /usr/local/lib/libprofiler.so.0.4.18 /lib64/libprofiler.so.0

至此,nginx下的google-perftools优化安装完成。

作者:龍龍小宝

原文:https://www.cnblogs.com/91donkey/p/11513175.html



Tags:nginx   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
一、前言1、使用google开发的google-perftools优化nginx的内存分配效率和速度,帮助在高并发的情况下控制内存的使用。2、TCMalloc在内存的分配上效率和速度要比malloc高得多...【详细内容】
2019-12-03   nginx  点击:(0)  评论:(0)  加入收藏
一、ngx_http_referer_module(阻挡来源非法的域名请求),配置如下:location ~.*\. (gif|jpg|png|flv|swf|rar|zip)${ valid_referers none blocked test.com *.test.com; if($v...【详细内容】
2019-11-29   nginx  点击:(5)  评论:(0)  加入收藏
nginx命令行 格式:nginx -s stop 帮助:-? -h 使用指定的配置文件:-c 指定配置指令:-g (用途是覆盖配置文件中的指令) 指定运行目录:-p 发送信号:-s(立刻停止服务:stop,优雅的停止服务:qu...【详细内容】
2019-11-27   nginx  点击:(8)  评论:(0)  加入收藏
相关链接:Apache+WordPress部署SSL加密服务,全站开启https访问第一步、部署SSL加密服务准备工作1.在VPS已部署好LNMP一键安装包;2.申请SSL证书(百度免费SSL证书),我以阿里云提过...【详细内容】
2019-11-27   nginx  点击:(6)  评论:(0)  加入收藏
前言接触到CDN的起因:我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直比较慢,经查证是我的网站有很多静态js大文件,通过浏览器读取这些js比较耗时间。最近...【详细内容】
2019-11-26   nginx  点击:(6)  评论:(0)  加入收藏
模块配置结构基本上每个模块都会提供一些配置指令,以便于用户可以通过配置来控制该模块的行为。那么这些配置信息怎么存储呢?那就需要定义该模块的配置结构来进行存储。大家...【详细内容】
2019-11-26   nginx  点击:(6)  评论:(0)  加入收藏