TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分别是:TCMalloc、heap-checker、heap-profiler和cpu-profiler),这个工具是开源的,以源码形式发布。如果觉得自己维护一个内存分配器麻烦的话,可以考虑将TCMalloc静态库连接到你的程序中。使用的时候和glibc中的malloc调用方式一模一样。你需要做的只是把TCMalloc的动态库或者静态库连接进你的程序中,你就可以获得一个高效,快速,安全的内存分配器。

与标准的glibc库的malloc相比,TCMalloc在内存的分配效率和速度要高,可以在高并发的情况下很好的控制内存的使用,提高服务器的性能,降低负载

1. libunwind安装

4位操作系统请先安装 libunwind库,32位操作系统不要安装。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。 #tar zxvf libunwind-1.1.tar.gz

#cd libunwind-1.1

#./autogen.sh

#./configure

#make

#make install

./autogen.sh:行7: autoreconf: 未找到命令

autoreconf: automake failed with exit status: 1

这时还要安装一下yum install autoconf automake gnome-common

2. 安装google-perftools

#tar -zvxf gperftools-2.6.1.tar.gz

# cd gperftools-gperftools-2.6.1

#./autogen.sh

#./configure

#make

#make install

./libtool: line 1125: g++: command not found

make: *** [src/libtcmalloc_minimal_la-tcmalloc.lo] 错误 1

yum install gcc-c++

3. TCMalloc库加载到Linux系统中

#echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf

#ldconfig

编译nginx

#./configure --prefix=/usr/local/nginx --user=www --group=www   --with-poll_module --with-select_module --with-pcre=/usr/local/src/nginx-1.10.3/pcre-8.41    --with-google_perftools_module

#make && make install

为添加线程目录:

mkdir /tmp/tcmalloc

chown -R www.www /tmp/tcmalloc

vi /usr/local/nginx/conf/nginx.conf #PID the next line add

google_perftools_profiles /tmp/tcmalloc;

验证tcmalloc是否在Nginx中生效

linux tcmalloc,内存管理TCMalloc 安装和使用相关推荐

  1. Linux堆内存管理深入分析(上)

    Linux堆内存管理深入分析 (上半部) 作者:走位@阿里聚安全   0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏 ...

  2. Linux堆内存管理深入分析

    0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞利用两种.国内关于栈溢出的资料相对较多,这里就不累述了,但是关于堆溢 ...

  3. 【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)

    文章目录 一.用户空间内存管理 ( malloc / free / ptmalloc / jemalloc / tcmalloc ) 二.内核空间内存管理 1.内核内存管理系统调用 ( sys_brk ...

  4. Linux glibc内存管理:用户态内存分配器——ptmalloc实现原理

    文章目录 ptmalloc 设计假设 Arena Chunk Bins 内存分配.释放流程 总结 C++ STL : SGI-STL空间配置器源码剖析 Linux 内存管理 | 物理内存管理:物理内存 ...

  5. Linux堆内存管理深入分析 (上半部)【转】

    转自:http://www.cnblogs.com/alisecurity/p/5486458.html Linux堆内存管理深入分析 (上半部) 作者:走位@阿里聚安全 0 前言 近年来,漏洞挖掘越 ...

  6. Linux内核内存管理:地址转换和MMU

    地址转换和MMU 虚拟内存是一个概念,是给进程的一种错觉,因此它认为自己拥有巨大的.几乎无限的内存,有时甚至比系统实际拥有的内存还要多.每次访问内存位置时,由CPU将虚拟地址转换为物理地址.这种机制称 ...

  7. Linux的内存管理

    Linux的内存管理: 1.Linux系统中除了一些嵌入式程序应用外,其他的应用程序是不能直接访问内存的: 2.当运行申请内存的进程后,查看资源管理器内存占用情况没有变化,因为用malloc申请的内存 ...

  8. 转:浅谈Linux的内存管理机制

    一 物理内存和虚拟内存          我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概 ...

  9. 浅谈Linux的内存管理机制

    一 物理内存和虚拟内存          我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概 ...

最新文章

  1. 自定义类型数组的初始化
  2. Yii框架特点及测试考虑
  3. mysql存储过程在实际开发中怎么用_MYSQL存储过程开发中怎么使用游标嵌套
  4. About os.path
  5. c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别(转)
  6. spring boot实现WebMvcConfigurer接口定制SpringMvc配置
  7. Hexo博客搭建图文教程
  8. 消息队列---RabbitMQ深入研究(含Springboot+RabbitMQ整合)
  9. 自动化企业人才如何定位?
  10. 桌面美化 Python tkinter倒计时工具
  11. matlab 短时傅立叶变换,Matlab中短时傅里叶变换 spectrogram和stft的用法
  12. 多媒体计算机中的扬声器指的是音箱和,多媒体音箱还以为只是个喇叭,原来这么多名堂...
  13. Android 系统服务
  14. nrm详解,nrm是什么,nrm源管理器,nrm 与npm 的区别
  15. 2011年安徽省公务员考试行测真题(3)
  16. 路由器动态ip获取不到的处理办法
  17. 开水果店如何进水果,开水果店进的应季水果有哪些
  18. css局域样式使用scoped,防止样式污染
  19. 仿某App锁屏页Gallery
  20. 吴恩达机器学习6:模型描述

热门文章

  1. Quick Cocos2dx 调试问题
  2. 转:vc中如何通过http的post方式上传文件
  3. [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  4. 程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory
  5. 一个极好的ALV例子
  6. SAP中批量更改凭证行项目方法
  7. 【FI】-【AM】跨工厂/事业部/利润中心的固定资产调拨
  8. SAP SD 模块与FI、MM的接口
  9. 关于SAP中物料双单位的解析
  10. DYNP_VALUES_READ 获取屏幕动态值