我想将我的带宽记录到数据库中,并找出我的 Windows Server 2003 何时使用最多。我想将上次传送的带宽(假设是 15 分钟)提供给数据库。
我知道该netstat -e
命令会返回自接口启动以来通过的带宽。有没有办法以某种方式重置该计数器,而无需禁用并重新启用接口?
如果没有,有没有比缓存最后一个样本并每次计算差异更好的方法?
如果相关的话,我正在用 python 编写脚本。
答案1
通过一些智能手段,内置的 Windows 性能监视器 (perfmon) 可以做到这一点。
基本上,如果您设置 Windows 性能监视器以将接口上的字节/秒记录到 SQL 数据库中,那么您就可以在一段时间内绘制该图表 - 您选择的任何时间段,假设当时正在运行日志记录。
这基本上就是大多数中央监控系统所做的。我可以回顾过去 12 个月,查看我们的数据库服务器的带宽进出情况,甚至可以细化到无用的小增量。
答案2
我想到的一个想法是使用 WMI 来查询网络接口。由于我不熟悉 Python,在网上快速搜索似乎表明有一个 Python WMI 模块可以让您直接从 Python 内部查询 WMI。查询 WMI 可能很困难。
这里有一个小的 .vbs 示例http://msdn.microsoft.com/en-us/library/windows/desktop/aa394595(v=vs.85).aspx这应该可以让你入门。如果你能弄清楚如何在 Python 中做到这一点,那么你应该已经准备好了,并且可以访问比你知道该怎么做更多的信息。我认为你正在寻找的示例将是标题为“...获取有关网络适配器的信息,而无需同时检索有关 RAS 和 VPN 连接等信息?”的示例。