Gopsutil/Process常用进程监控资源信息
大家好 我是寸铁👊
总结了一篇Go常用库Gopsutil中关于Process资源的文章✨
喜欢的小伙伴可以点点关注 💝
Memory📟
MemoryInfo
newProcess, _ := process.NewProcess(18024) //参数:想监控的进程号pid
info, _ := newProcess.MemoryInfo()
fmt.Println("返回平台独立内存信息", info)
返回如下信息:
rSS:实际使用物理内存
vmS:虚拟使用内存
hwm: 表示进程所占用物理内存的峰值
data: 表示进程数据段的大小
stack: 表示进程堆栈段的大小
locked: 表示被锁定的内存大小
swap:交换分区
MemoryInfoEx
ex, _ := newProcess.MemoryInfoEx()
fmt.Println("MemoryInfoEx()返回与平台相关的内存信息: ", ex)
MemoryMaps
maps, _ := newProcess.MemoryMaps(true)
fmt.Println("MemoryMaps 从 /proc/(pid)/smaps 获取内存映射: ", maps)
MemoryPercent
memorypercent, _ := newProcess.MemoryPercent()
fmt.Println("MemoryPercent 返回此进程使用的总 RAM 的百分比: ", memorypercent)
RAM :是与CPU直接交换数据的内部存储器,也叫主存(内存)
CPU📀
主要是CPUPercent
获取进程CPU使用率
cpupercent, _ := newProcess.CPUPercent()
fmt.Println("CPU_Percent返回此进程使用的 CPU 时间的百分比: ", cpupercent)
times, _ :=