校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析

Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析

熱門(mén)標(biāo)簽:廣東語(yǔ)音外呼系統(tǒng)供應(yīng)商 濮陽(yáng)自動(dòng)外呼系統(tǒng)代理 澳門(mén)防封電銷(xiāo)卡 地圖標(biāo)注測(cè)試 福州鐵通自動(dòng)外呼系統(tǒng) 智能電銷(xiāo)機(jī)器人營(yíng)銷(xiāo) 賺地圖標(biāo)注的錢(qián)犯法嗎 長(zhǎng)沙ai機(jī)器人電銷(xiāo) 烏魯木齊人工電銷(xiāo)機(jī)器人系統(tǒng)

最近組內(nèi)一些Go服務(wù)碰到內(nèi)存相關(guān)的問(wèn)題,所以今天抽時(shí)間看了下Go pprof內(nèi)存指標(biāo)的含義,為后續(xù)查問(wèn)題做準(zhǔn)備。

內(nèi)容主要來(lái)自于Go代碼中對(duì)這些字段的注釋?zhuān)幼约旱睦斫狻@斫獠粚?duì)的地方歡迎指正。

// https://github.com/golang/go/blob/master/src/runtime/mstats.go#L150

// 總共從OS申請(qǐng)的字節(jié)數(shù)
// 是下面各種XxxSys指標(biāo)的總和。包含運(yùn)行時(shí)的heap、stack和其他內(nèi)部數(shù)據(jù)結(jié)構(gòu)的總和。
// 它是虛擬內(nèi)存空間。不一定全部映射成了物理內(nèi)存。
Sys

// 見(jiàn)`Sys`
HeapSys

// 還在使用的對(duì)象,以及不使用還沒(méi)被GC釋放的對(duì)象的字節(jié)數(shù)
// 平時(shí)應(yīng)該平緩,gc時(shí)可能出現(xiàn)鋸齒
HeapAlloc

// 正在使用的對(duì)象字節(jié)數(shù)。
// 有個(gè)細(xì)節(jié)是,如果一個(gè)span中可包含多個(gè)object,只要一個(gè)object在使用,那么算的是整個(gè)span。
// `HeapInuse` - `HeapAlloc`是GC中保留,可以快速被使用的內(nèi)存。
HeapInuse

// 已歸還給OS的內(nèi)存。沒(méi)被堆再次申請(qǐng)的內(nèi)存。
HeapReleased

// 沒(méi)被使用的span的字節(jié)數(shù)。
// 這部分內(nèi)存可以被歸還給OS,并且還包含了`HeapReleased`。
// 可以被再次申請(qǐng),甚至作為棧內(nèi)存使用。
// `HeapIdle` - `HeapReleased`即GC保留的。
HeapIdle

/// ---

// 和`HeapAlloc`一樣
Alloc

// 累計(jì)的`Alloc`
// 累計(jì)的意思是隨程序啟動(dòng)后一直累加增長(zhǎng),永遠(yuǎn)不會(huì)下降。
TotalAlloc

// 沒(méi)什么卵用
Lookups = 0

// 累計(jì)分配的堆對(duì)象數(shù)
Mallocs

// 累計(jì)釋放的堆對(duì)象數(shù)
Frees

// 存活的對(duì)象數(shù)。見(jiàn)`HeapAlloc`
// HeapObjects = `Mallocs` - `Frees`
HeapObjects

// ---
// 下面的XxxInuse中的Inuse的含義,和XxxSys中的Sys的含義,基本和`HeapInuse`和`HeapSys`是一樣的
// 沒(méi)有XxxIdle,是因?yàn)槎及赻HeapIdle`里了

// StackSys基本就等于StackInuse,再加上系統(tǒng)線(xiàn)程級(jí)別的棧內(nèi)存
Stack = StackInuse / StackSys

// 為MSpan結(jié)構(gòu)體使用的內(nèi)存
MSpan = MSpanInuse / MSpanSys

// 為MCache結(jié)構(gòu)體使用的內(nèi)存
MCache = MCacheInuse / MCacheSys

// 下面幾個(gè)都是底層內(nèi)部數(shù)據(jù)結(jié)構(gòu)用到的XxxSys的內(nèi)存統(tǒng)計(jì)
BuckHashSys
GCSys
OtherSys

// ---
// 下面是跟GC相關(guān)的

// 下次GC的觸發(fā)閾值,當(dāng)HeapAlloc達(dá)到這個(gè)值就要GC了
NextGC

// 最近一次GC的unix時(shí)間戳
LastGC

// 每個(gè)周期中GC的開(kāi)始unix時(shí)間戳和結(jié)束unix時(shí)間戳
// 一個(gè)周期可能有0次GC,也可能有多次GC,如果是多次,只記錄最后一個(gè)
PauseNs
PauseEnd

// GC次數(shù)
NumGC

// 應(yīng)用程序強(qiáng)制GC的次數(shù)
NumForcedGC

// GC總共占用的CPU資源。在0~1之間
GCCPUFraction

// 沒(méi)被使用,忽略就好
DebugGC

查看方式

// 方式一
import "runtime"

var m runtime.MemStats
runtime.ReadMemStats(m)
// 方式二
import _ "net/http/pprof"
import "net/http"
http.ListenAndServe("0.0.0.0:10001", nil)
// http://127.0.0.1:10001/debug/pprof/heap?debug=1

下面隨便找個(gè)服務(wù)來(lái)練手。

Top查看程序的 VIRT 約為2.4G, RES 約為1.7G。

使用web pprof觀察到的指標(biāo),可以對(duì)應(yīng)著前文說(shuō)的含義看看。

# Sys = 1842916040 ~1.7G
# HeapSys = 1711013888 ~1.6G
# HeapInuse = 1237483520 ~1.18G
# HeapAlloc = 1195472528 ~1.14G
HeapInuse - HeapAlloc = 40M
# HeapIdle = 473530368 ~451M
# HeapReleased = 61063168 ~58.2M
HeapIdle - HeapReleased = 393M

# Alloc = 1195472528 ~1.14G
# TotalAlloc = 426616278424 ~397.3G

# Lookups = 0
# Mallocs = 2907819388 ~29億對(duì)象數(shù)
# Frees = 2901808898 ~29億對(duì)象數(shù)
# HeapObjects = 6010490 ~601萬(wàn)對(duì)象數(shù)

# Stack = 33390592 / 33390592 ~31.8M / 31.8M
# MSpan = 13542744 / 19906560 ~12.9M / 18.9M
# MCache = 55552 / 65536
# BuckHashSys = 2371870
# GCSys = 69398992
# OtherSys = 6768602

總結(jié)

到此這篇關(guān)于Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析的文章就介紹到這了,更多相關(guān)Go pprof內(nèi)存指標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang切片內(nèi)存應(yīng)用技巧詳解
  • 解決golang內(nèi)存溢出的方法
  • Go語(yǔ)言中的內(nèi)存布局詳解
  • go語(yǔ)言中切片與內(nèi)存復(fù)制 memcpy 的實(shí)現(xiàn)操作

標(biāo)簽:阿克蘇 調(diào)研邀請(qǐng) 廣西 德州 西雙版納 太原 貴陽(yáng) 慶陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析》,本文關(guān)鍵詞  pprof,內(nèi)存,指標(biāo),含義,備忘錄,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 桃江县| 吉林省| 金阳县| 伊通| 云浮市| 彰化市| 阳原县| 连山| 介休市| 关岭| 德庆县| 电白县| 邵东县| 临邑县| 华宁县| 巴塘县| 沙坪坝区| 策勒县| 阿克| 任丘市| 罗江县| 兴化市| 梓潼县| 仪征市| 新平| 乐平市| 开原市| 澎湖县| 乐业县| 若尔盖县| 德庆县| 榆林市| 岱山县| 康保县| 松原市| 广东省| 马公市| 漳州市| 赣榆县| 安泽县| 栾川县|