文档章节

使用tcmalloc替换系统的malloc

shzwork
 shzwork
发布于 08/03 14:38
字数 383
阅读 6
收藏 0

今天对服务器进行压测,模拟的请求量到4万次/分的时候,进程的CPU占用就已经达到400%了(也就是把四个核都占到100%)。其实模拟的请求数据都是单一的,不会因为BUG的原因导致CPU过高。怀疑是代码里的STL用得过多,加之ttserver和memcached大量的读操作——大量的小内存分配可能带来全局的锁竞争,从而可能使得CPU过高。

之前听说过google的tcmalloc是一个很好的线程内的内存分配器,能够提高内存分配的性能。正好今天试试能不能改善我的代码的性能。
安装的过程如下:
#1、到google下载代码:
cd /home/ahfu/temp
wget https://gperftools.googlecode.com/files/gperftools-2.1.tar.gz

#解压
tar -zxvf google-perftools-1.4.tar.gz
#看看说明
cd google-perftools-1.4
./configure -h
#选择简单的安装
mkdir -p /home/ahfu/temp/tcmalloc
./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal --disable-shared
make && make install
#在makefile里面加入一行就行
LIB = "/home/ahfu/temp/tcmalloc/lib/libtcmalloc_minimal.a"
#  g++ .....   ${LIB}

再进行压测!
大吃一惊!
请求量模拟到28万次/分后,CPU占用还不到20%!!!

本文转载自:https://blog.csdn.net/educast/article/details/79166553

shzwork
粉丝 15
博文 827
码字总数 18401
作品 0
厦门
私信 提问
TCMalloc优化MySQL、Nginx、Redis内存管理

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是 google-perftools工具中的一个(gperftools四个工具...

lj2007331
2013/09/02
897
0
深入了解tcmalloc(一):windows环境下无缝拦截技术初探

概述: 又到了一个总结提炼的阶段,这次想具体聊聊游戏引擎中使用的内存管理模块tcmalloc组件的使用心得。项目的前期曾经遇到过内存瓶颈,特别是windows系统下的客户端程序在经历长时间运行之...

窗台跳舞的猫
2014/06/03
5.2K
2
内存管理TCMalloc 安装和使用

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个(gperftools四个工具分...

59090939
2018/06/26
0
0
优化的内存访问 TCMalloc

TCMalloc(Thread-Caching Malloc)是google-perftools工具中的一个,与标准的glibc库的malloc相 比,TCMalloc在内存的分配上效率和速度要高得多,可以提高Mysql服 务器在高并发情况下的性能...

企图穿越
2010/02/22
4.9K
0
Google PerfTools 2.1 发布

这个工具可让开发创建更强大的应用程序,特别是那些用C++模版开发的多线程应用程序,包括TCMalloc, heap-checker, heap-profiler 和cpu-profiler。 Gperftools 2.1正式版发布。2013-07-30经过...

fei
2013/08/22
5.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部