假设有两台服务器 A 和 B。从服务器 AI 打开 perfmon 并添加计数器\ServerB\Processor\% Processor Time
,然后开始每秒监控一次。
- 服务器 A 是否会每秒轮询服务器 B 以获取 CPU 数据(我猜是这样的)
- 服务器 A 是否会因为这个持续的轮询过程而遭受一定比例的性能下降(如果您监控 1 个计数器,这可能不是问题,但您可以想象在性能测试中监控 100 个计数器)
- 由于多个消费者(如服务器 A)不断轮询数据,服务器 B 是否会遭受一定百分比的性能下降?
答案1
1-是:我不知道 P[erformance]C[counter] 背后有任何事件接口,这只是 RPC。
2-这实际上取决于几个不同的因素:
- 距离[网络延迟]
- 计算机数量
每台计算机的计数器数量
例如:我无法使用 Net API 拉取 1000PC/s,即使使用 Net4 [TPL] 和生产者/消费者模型也是如此。我可以通过 WMI 事件查询做到这一点。
3-不知道,我并没有深入地跟踪过这个问题,但也没有发现强有力的指标。使用 WMI(我上面的性能应用程序)会导致每个受监控的服务器的 CPU 占用率达到 1-2% [使用 15PC/5s]。
希望这可以帮助。
br++马布拉
答案2
...但你可以想象在性能测试中监控 100 个这样的设备...
在性能测试中,我们的目标是找到具有代表性的值,并且不要采样过高,以免实际导致性能失真。根据测试的长度,采样窗口可以是每 5 秒、10 秒一次,最多 30 秒一次,但如果使用非常少量的顶级指标(CPU、磁盘字节、网络字节、RAM 已提交池的系统|应用程序),则只能每秒采样一次,并且只有在跟进另一个问题时进行一些工程发现时才采样。
显示器上肯定存在量子效应!数字越大,采样间隔越短,则提取值的行为就会对要采样的内容产生扭曲。