Gopsutil/Process常用进程监控资源信息

编程入门 行业动态 更新时间:2024-10-25 23:31:47

Gopsutil/Process常用<a href=https://www.elefans.com/category/jswz/34/1771450.html style=进程监控资源信息"/>

Gopsutil/Process常用进程监控资源信息

Gopsutil/Process常用进程监控资源信息

大家好 我是寸铁👊
总结了一篇Go常用库Gopsutil中关于Process资源的文章✨
喜欢的小伙伴可以点点关注 💝

Memory📟

MemoryInfo

newProcess, _ := process.NewProcess(18024) //参数:想监控的进程号pidinfo, _ := 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, _ := newProcess.Times()
fmt.Println("Times 返回进程的 CPU 时间: ", times)

Disk 💾

这里要注意Process没有提供与Disk直接相关的API
这里需要追溯到原来Python的gopsutil库结合输出结果
知道IOCounters返回进程的磁盘信息

counters, _ := newProcess.IOCounters()fmt.Println("IOCounters() 返回进程的磁盘信息:", counters)
    返回信息:readCount:磁盘读入的总数writeCount:写入磁盘的总数readBytes:磁盘读入的字节数writeBytes:写入磁盘的字节数

网络 💻

Process的网络信息由 netIOcounters监管

netIOcounters, _ := newProcess.NetIOCounters(true)
fmt.Println("NetIOCounters 返回进程的网络信息: ", netIOcounters)

demo

package mainimport ("fmt""github/shirou/gopsutil/process"
)func main() {//获取到所有进程的详细信息p1, _ := process.Pids() //获取当前所有进程的pidfmt.Println("p1:", p1)//根据PID获得进程newProcess, _ := process.NewProcess(18024) //参数:想监控的进程号pid 从p1中选择测试info, _ := newProcess.MemoryInfo()fmt.Println("返回平台独立内存信息", info)/*返回如下信息://rSS:实际使用物理内存//vmS:虚拟使用内存//hwm: 表示进程所占用物理内存的峰值//data: 表示进程数据段的大小//stack: 表示进程堆栈段的大小//locked: 表示被锁定的内存大小//swap:交换分区*/ex, _ := newProcess.MemoryInfoEx()fmt.Println("MemoryInfoEx()返回与平台相关的内存信息: ", ex)maps, _ := newProcess.MemoryMaps(true)fmt.Println("MemoryMaps 从 /proc/(pid)/smaps 获取内存映射: ", maps)memorypercent, _ := newProcess.MemoryPercent()fmt.Println("MemoryPercent 返回此进程使用的总 RAM 的百分比: ", memorypercent)//RAM :是与CPU直接交换数据的内部存储器,也叫主存(内存)cpupercent, _ := newProcess.CPUPercent()fmt.Println("CPU_Percent返回此进程使用的 CPU 时间的百分比: ", cpupercent)times, _ := newProcess.Times()fmt.Println("Times 返回进程的 CPU 时间: ", times)counters, _ := newProcess.IOCounters()fmt.Println("IOCounters() 返回进程的磁盘信息:", counters)/*//readCount:磁盘读入的总数//writeCount:写入磁盘的总数//readBytes:磁盘读入的字节数//writeBytes:写入磁盘的字节数*///返回信息样例{"readCount":6689,"writeCount":8516,"readBytes":4778776,"writeBytes":20146627}netIOcounters, _ := newProcess.NetIOCounters(true)fmt.Println("NetIOCounters 返回进程的网络信息: ", netIOcounters)}

结果如下:

这里的nil(空)实际上是go调用函数API返回的第二个结果:error
一般情况下为nil 开发中最好还是写一个判断nil的语句(处理错误)
返回的第一个结果就是我们想看到的数据和信息

喜欢的小伙伴点点关注 🎏 🎏


往期回顾

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

蓝桥杯每日N题 (消灭老鼠)

蓝桥杯每日N题(杨辉三角形)

蓝桥杯每日N题 (砝码称重)

蓝桥杯上岸每日N题(鸡尾酒)

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

蓝桥杯上岸必刷!!!(进制、数位专题)

蓝桥杯上岸考点清单 (冲刺版)!!!

蓝桥杯上岸必背模板 (纯享版)

更多推荐

Gopsutil/Process常用进程监控资源信息

本文发布于:2023-11-15 21:37:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606730.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进程   常用   资源   信息   Gopsutil

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!