新聞中心
常見的內(nèi)存泄漏分析器,如: tcmalloc heap-profiler 、 valgrind 、 asan 、 bcc/memleak 等,要么比較重、要么需要 -O0 ,沒法在線上使用
而線上的內(nèi)存泄漏問題,沒有分析工具,會(huì)造成排查問題困難
舉個(gè)例子,筆者就遇到 1 個(gè)線上內(nèi)存泄漏
問題:
- 30 分鐘內(nèi),服務(wù)內(nèi)存按固定斜率到 100% ,再幾分鐘后,直線回落到 30 分鐘前水平
- 查看主機(jī)監(jiān)控: CPU 、 流量 、 磁盤IO 、 socket 連接狀態(tài)等等,均無異常
- 服務(wù)內(nèi)置埋點(diǎn)指標(biāo):在線人數(shù)、房間數(shù)、待處理消息數(shù)等等,均無異常
因?yàn)闆]有合適的工具,導(dǎo)致排查問題,沒有方向
因此需要一種方法,來提供內(nèi)存分配的信息
malloc/free hook要收集內(nèi)存分配,需要有方法 hook malloc/free 方法
每個(gè)內(nèi)存庫,都有自己的 hook 接口/方法
筆者使用的是 tcmalloc ,這里介紹下 tcmalloc 的 hook 方法
tcmalloc hooktcmalloc 提供了 hook 接口,在頭文件gperftools/malloc_hook.h
下
大致使用方法如下:
#include
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享文章:思考(九十一):C++線上內(nèi)存泄漏檢測機(jī)制-創(chuàng)新互聯(lián)
文章來源:http://fisionsoft.com.cn/article/gdeec.html