基于snmp4j取得linux系统的cpu、ram信息
ps:希望做过snmp的大拿能过来解答一下。
菜鸟通过 cat /proc/meminfo 得到linux系统的内存信息:
大家可以看到MemTotal: 2071272KB
MemFree:97972KB
下面菜鸟同snmp4j得到的内存信息:
1.3.6.1.4.1.2021.4.5.0 = 2071272
1.3.6.1.4.1.2021.4.6.0 = 97964
1.3.6.1.4.1.2021.4.11.0 = 4259492
具体的OID信息可以看这里:
http://blog.sina.com.cn/s/blog_77c854670100qwso.html
给大家截了一个内存信息的OID:
可以看到:Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
菜鸟不知为什么会出现矛盾的地方:通过 “cat /proc/meminfo” 得到 MemFree:97972KB,而通过snmp4j得到Total RAM Free:1.3.6.1.4.1.2021.4.11.0 = 4259492,然而却与Total RAM used: .1.3.6.1.4.1.2021.4.6.0 = 97964 大致相同(肯定会有些许不同),不知道这是为什么?
大拿一定会知道的,望解答!
告诉菜鸟一下snmp4j计算cpu,内存,磁盘利用率等一些问题的方法。
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
snmp4j要求知道硬件的什么号吧?不是很通用,之前研究过,想用来监控路由,结果需要知道路由的一个什么号,而且每个厂商还不一样。
谢谢, 我现在的这个项目,就是使用snmp进行网络控制的,真的谢谢!
这段代码挺好的, 请问: snmp获得常用 信息的OID都有哪些?
比如下面这个,是获取cpu信息的,但是执行不了
.1.3.6.1.4.1.2021.11.9.0
有不明白的再问我吧!
你说的那三个值的平均值 是 list 里面 3个list 和平均值?比如list里面的数据时{[1, 2],[0.0, 0.0],[8, 10]} 那么平均值是((1+2)+(0+0)+(8+10))/3=10.5?
回复
获取得到CPU相关信息的List集合即:getvalue. 取出最后一组: List tempLs = (List) ls.get(2);// 存放负载对应值 然后for循环遍历出来并相加除以4就是得到当前CPU的使用率了!
回复
好吧!共同学习!243913595
谢谢各位园友的高见,我对cpu利用率的计算方法有点不了解,请看猛击~ 博客园HighChartS cpu利用率动态图(Java版)http://www.cnblogs.com/haifg/p/3217699.html 文章最后给出的方法,时间间隔怎么定,项目中cup利用率是怎么算的?是文章给出的第一种方法吗?