【求助】snmp监控并不是实时的吗?
我需要实时监控服务器的cpu利用率和内存使用率,通过snmp实现,可抓包发现服务器回复snmp请求的报文中cpu利用率和实时任务管理器的cpu利用率相比有一定延时。这是什么情况,难道是snmp agent实现机制的问题,采样点延时? 当然有延时了,监控服务器对其它服务器的监控一般是采用轮询的方式,这个时间是间隔一定的时间查一次,不可能是实时的。你用top也要几秒钟一次更新啊。 说实话, 真正的实时的监控, 是不存在的.
因为就算当前的CPU 使用是100%, 我也得花上那么一点点时间发消息发出去, 如果 CPU真的100%了, 那这消息也发不出去了. 要等到CPU有时间处理这个信息才行.
snmp的延时要稍大一点, 因为一般的监控都是以5分钟为一个间隔的. 回复 3# q1208c
我们这边看的话 windows server 2003 回的cpu利用率延迟大概在45s 到一分钟之间。这个延时对我们需要实时调度来说有点吓人
回复 4# ifeng8901
45s 对于一般的调度来说, 应该没问题的.
当然, 这取决于你的应用和调度算法.
因为通常情况下, 并不是CPU一高, 就需要调度, 因为那样的话, 系统的稳定性会非常差, 通常, 需要比如至少30s时间 CPU持续高于一定的值, 才会去调度. 所以, 45s这个时间, 其实是可以接受的.
不过, 我对 windows服务器没有好感, 所以, 没有研究过在Windows服务器上的东西.
回复 5# q1208c
我现在还是需要能够得到比较实时的系统信息。有几个问题
1. 有没有办法只在本地修改设置或者发送命令,能改变SNMP的这种延时?
2. 通过在目标机上加载Agent是不是可以比较实时的得到CPU信息?
3. 有没有其他的方法不在目标机上添加新的程序而只利用windows或者linux现有的服务得到CPU信息?
回复 6# ifeng8901
1. 发送可以. 但我不确定实时性. 你可以试试 snmptrap 相关的配置.
2. 自己定义/开发 agent也是一样的道理, 你不能一秒一次的不停的去刷新资源占用情况, 否则, 你自己的agent就把自己打败了.
3. Windows和Linux现有的服务应该不能, 但你可以通过一些脚本来获取并发送相关的信息. 这样, 不需要安装其它的工具.
snmp的延时要稍大一点, 因为一般的监控都是以5分钟为一个间隔的.
根据负载变化提前采取措施 回复 8# action08
那一般是通过什么协议来实现对目标服务器性能的监控的呢
页:
[1]