思考(九十一):C++線上內(nèi)存泄漏檢測機(jī)制-創(chuàng)新互聯(lián)

問題

常見的內(nèi)存泄漏分析器,如: tcmalloc heap-profiler 、 valgrind 、 asan 、 bcc/memleak 等,要么比較重、要么需要 -O0 ,沒法在線上使用

創(chuàng)新互聯(lián)致力于成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

而線上的內(nèi)存泄漏問題,沒有分析工具,會造成排查問題困難

舉個例子,筆者就遇到 1 個線上內(nèi)存泄漏問題:

  1. 30 分鐘內(nèi),服務(wù)內(nèi)存按固定斜率到 100% ,再幾分鐘后,直線回落到 30 分鐘前水平
  2. 查看主機(jī)監(jiān)控: CPU 、 流量 、 磁盤IO 、 socket 連接狀態(tài)等等,均無異常
  3. 服務(wù)內(nèi)置埋點指標(biāo):在線人數(shù)、房間數(shù)、待處理消息數(shù)等等,均無異常

因為沒有合適的工具,導(dǎo)致排查問題,沒有方向

因此需要一種方法,來提供內(nèi)存分配的信息

malloc/free hook

要收集內(nèi)存分配,需要有方法 hook malloc/free 方法

每個內(nèi)存庫,都有自己的 hook 接口/方法

筆者使用的是 tcmalloc ,這里介紹下 tcmalloc 的 hook 方法

tcmalloc hook

tcmalloc 提供了 hook 接口,在頭文件gperftools/malloc_hook.h

大致使用方法如下:

#include

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享文章:思考(九十一):C++線上內(nèi)存泄漏檢測機(jī)制-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://bm7419.com/article42/gdeec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、定制網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)建站、虛擬主機(jī)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計