利用 gperftools 对nginx 与 mysql  进行 内存管理  性能优化 降低负载.

Gperftools 是由谷歌开发。官方对gperftools 的介绍为:

These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler.

  1. 首先下载软件安装包:

由于我们的系统为CentOS 5.8 x64的系统, 64位系统需要先安装 libunwind 支持库。

wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz

gperftools 2.0版本

wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz

  1. 安装软件包

tar zxvf libunwind-1.1.tar.gz

cd libunwind-1.1

./configure

make && make install

tar zxvf gperftools-2.0.tar.gz

cd gperftools-2.0

./configure --enable-frame-pointers

make && make install

增加 gperftools 线程目录

mkdir /tmp/tcmalloc

设置权限

chmod 777 /tmp/tcmalloc

配置lib 库文件目录

vim /etc/ld.so.conf

增加

/usr/local/lib

/sbin/ldconfig    使之生效

  1. 重新编译nginx 使其支持gperftools

tar zxvf nginx-1.2.3.tar.gz

cd nginx-1.2.3

./configure --user=upload --group=upload --prefix=/opt/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-google_perftools_module

make && make install

安装完毕以后, 修改 nginx 配置文件 nginx.conf

vim /opt/local/nginx/con/nginx.conf

在pid 下面增加

#gperftools

google_perftools_profiles /tmp/tcmalloc;

然后保存,启动nginx

/opt/local/nginx/sbin/nginx -t  查看配置是否正常

lsof -n | grep tcmalloc  查看是否运行

nginx     18454    upload   10w      REG                8,2          0   10780681 /tmp/tcmalloc.18454

nginx     18455    upload   12w      REG                8,2          0   10780682 /tmp/tcmalloc.18455

---------------------------------------------------------------------------------

优化Mysql 则不需要重新编译mysql 只需要找到 mysqld_safe 这个文件

在# executing mysqld_safe 下面加上

export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

然后重启mysql 就可以啦.

利用 gperftools 对nginx mysql 内存管理 性能优化的更多相关文章

  1. MySQL内存管理机制浅析

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 目录 一.placement new的定义 二.pl ...

  2. mySQL内存及虚拟内存优化设置[转]

    mySQL内存及虚拟内存优化设置 . 数据库mySQL内存优化G-LB  为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini ...

  3. Atitit 如何利用先有索引项进行查询性能优化

    Atitit 如何利用先有索引项进行查询性能优化 1.1. 再分析的话就是我们所写的查询条件,其实大部分情况也无非以下几种:1 1.2. 范围查找 动态索引查找1 1.2.1. 索引联合 所谓的索引联 ...

  4. nginx slab内存管理

    本来这一篇作为nginx系列的开头是不合适的,不过由于nginx进程框架自己的梳理还没完成,这部分又刚好整理完了,就从这开始吧.这儿谈的是nginx的slab的内存管理方式,这种方式的内存管理在ngi ...

  5. nginx的内存管理

    先来看内存池的实现,nginx的内存池实现的非常简单. 这里内存池的一些图表可以看老朱同学的slides : http://blog.zhuzhaoyuan.com/2009/09/nginx-int ...

  6. mysql内存管理

    1 内存管理结构 mysql有自己的内存申请和释放机制 mysql层有mem_root innodb层有mem_heap,mem_pool,buf_pool 它们的结构图如下 2 mem_root m ...

  7. Nginx源码研究四:NGINX的内存管理

    关于nginx的内存使用,我们先看代码,下面是nginx_cycle.c中对全局数据结构cycle的初始化过程 pool = ngx_create_pool(NGX_CYCLE_POOL_SIZE, ...

  8. 安全开发运维必备,如何进行Nginx代理Web服务器性能优化与安全加固配置,看这篇指南就够了

    本章目录 1.引言 1.1 目的 1.2 目标范围 1.3 读者对象 2.参考说明 2.1 帮助参考 2.2 参数说明 3.3 模块说明 3.服务优化 3.1 系统内核 3.2 编译优化 3.3 性能 ...

  9. Android 内存管理之优化建议

    OOM(OutOfMemory)转:http://hukai.me/android-performance-oom/ 前面我们提到过使用getMemoryClass()的方法可以得到Dalvik He ...

随机推荐

  1. List<T>转换为ObservableCollection<T>

    ObservableCollection能通知他变化了也正是因为它实现了INotifyPropertyChanged接口, 在wpf项目中经常会遇到把List<T>转换为Observabl ...

  2. cocos2d-x中使用tinyxml遇到的问题及解决

    1.问题: cocos2d-x集成tinyxml后在vs下运行正常,但是在Android下在读取xml文件时发生异常,读取时使用的是LoadFile函数 2. 解决方案: 先把xml文件内容读取到内存 ...

  3. oracle提高之索引学习

    一. 索引介绍 1.1  索引的创建 语法 : CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema ...

  4. properties 配置文件如何换行

    在使用properties配置文件的时候我们经常碰到如下两个问题 1:当a=b中的b值内容特别长的时候为了阅读方便我们手动换行,但如果我们直接回车那么后面的数据就会丢失.那如何解决呢? 例如: a=a ...

  5. JS动态引入js、CSS动态创建script/link/style标签

    一.动态创建link方式 我们可以使用link的方式.如下代码所示. function addCssByLink(url){ var doc=document; var link=doc.create ...

  6. Sockets

    Sockets time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  7. group_concat()函数总结

    group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组, ...

  8. Alert()与Redirect()同时使用失效的问题

    例如以下代码: echo "<script>alert('跳转到博客园');</script>"; redirect(“www.cnblogs.com”); ...

  9. Monad / Functor / Applicative 浅析

    前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...

  10. circularprogressbar/smoothprogressbar开源视图使用学习

    github地址:https://github.com/castorflex/SmoothProgressBar 多彩圆形进度条和多彩水平进度条 colors.xml 定义变化的颜色内容,用gplus ...