日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用expvar进行监控

發(fā)布時間:2025/6/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用expvar进行监控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 前言:

    • 包expvar為公共變量提供了一個標準化的接口。如服務器中的操作計數器。
    • 它以 JSON 格式通過 /debug/vars 接口以 HTTP 的方式公開這些公共變量。
    • 設置或修改這些公共變量的操作是原子的。
    • 除了程序使用的公共變量,還注冊了
      • cmdline:這個變量就是啟動命令
      • memstats: 這個變量里面存放著內存的使用情況,
    • ?expvar 的使用可參考:?https://orangetux.nl/post/expvar_in_action/

    • 以下具體介紹memstats,存放在runtime.mstatss.go文件的 mstats struct
  • memstats:(單位為字節(jié))紅色為重點

    • Alloc 堆空間分配的字節(jié)數
    • TotalAlloc?從服務開始運行至今分配器為分配的堆空間總和
    • Sys?進程從系統(tǒng)獲得的內存空間,虛擬地址空間
    • Lookups?被runtime監(jiān)視的指針數
    • Mallocs?服務 malloc的次數
    • Frees?服務 回收的heap objects
    • HeapAlloc?進程 堆內存分配使用的空間,通常是用戶new出來的堆對象,包含未被gc掉的
    • HeapSys ?進程從系統(tǒng)獲得的堆內存,因為golang底層使用TCmalloc機制,會緩存一部分堆內存,虛擬地址空間。
    • HeapIdle ?回收了的堆內存
    • HeapInuse ?正在使用的堆內存
    • HeapReleased?返回給OS的堆內存
    • HeapObjects ?堆內存塊申請的量
    • StackInuse ?正在使用的棧
    • StackSys ?系統(tǒng)分配的作為運行棧的內存
    • MSpanInuse uint64?用于測試用的結構體使用的字節(jié)數, 不受GC控制
    • MSpanSys uint64?系統(tǒng)為測試用的結構體分配的字節(jié)數
    • MCacheInuse?mcache 結構體申請的字節(jié)數(不會被視為垃圾回收)
    • MCacheSys?操作系統(tǒng)申請的堆空間用于mcache的字節(jié)數
    • BuckHashSys?用于剖析桶散列表的堆空間
    • GCSys?垃圾回收標記元信息使用的內存
    • OtherSys?golang系統(tǒng)架構占用的額外空間
    • NextGC?垃圾回收器檢視的內存大小
    • LastGC?垃圾回收器最后一次執(zhí)行時間
    • PauseTotalNs?圾回收或者其他信息收集導致服務暫停的次數
    • PauseNs??記錄每次gc暫停的時間(納秒),最多記錄256個最新記錄。
    • PauseEnd [256]uint64?一個循環(huán)隊列,記錄最近垃圾回收系統(tǒng)中斷的時間開始點
    • NumGC?記錄gc發(fā)生的次數。
    • NumForcedGC uint32?服務調用runtime.GC()強制使用垃圾回收的次數
    • GCCPUFraction float64?垃圾回收占用服務CPU工作的時間總和。如果有100個goroutine,垃圾回收的時間為1S,那么久占用了100S
    • EnableGC bool?是否啟用GC
    • DebugGC bool 是否啟動DebugGC
    • BySize?[61]struct{}?內存分配器使用情況
  • 工具集成

    • 有一些工具可以很方便地集成 expvar, 提供監(jiān)控和可視化能力, 例如:

    • expvarmon(https://github.com/divan/expvarmon), 基于控制臺的輕量級監(jiān)控工具
    • netdata(https://github.com/firehol/netdata/wiki/Monitoring-Go-Applications), 功能全面的服務器實時監(jiān)控工具, 提供 golang expvar 支持模塊

轉載于:https://www.cnblogs.com/Zereker/p/11396659.html

總結

以上是生活随笔為你收集整理的使用expvar进行监控的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。