【问题标题】:What is the correct way to calculate number of DNS queries/second using Get-DnsServerStatistics?使用 Get-DnsServerStatistics 计算每秒 DNS 查询数的正确方法是什么?
【发布时间】:2021-12-02 11:43:03
【问题描述】:

我试图弄清楚如何使用 PowerShell Get-DnsServerStatistics 获取每个域控制器每秒的 DNS 查询数。我复制了下面的一些相关输出。

我试图弄清楚获得 11793847 "TotalQueries" 的时间段是多少?

在“TimeStatistics”部分下,值为 00:00:28 的字段“TimeElapsedSinceLastClearStatisticsBetweenRestart”是否表示 28 秒?还有另一个字段“TimeElapsedSinceServerStart”的值为 34.01:35:21,我不明白这是什么意思?也许是 34 天 1 小时 35 分 21 秒? 但是如果在 28 秒内总共有 11793847 个 DNS 查询。即 421208 次查询/秒在我们的环境中似乎不正确。你能帮帮我吗?

TimeStatistics:
==============

**TimeElapsedSinceLastClearedStatisticsBetweenRestart     00:00:28**
LastClearTime                                           9/7/2021 9:33:20 PM
ServerStartTime                                         9/7/2021 9:33:20 PM
TimeElapsedSinceLastClearedStatistics                   34.01:35:21
TimeElapsedSinceServerStartBetweenRestart               00:00:28
**TimeElapsedSinceServerStart                             34.01:35:21**

Query2Statistics:
================

TypeAll                                                 1917
TKeyNego                                                0
TypeOther                                               897431
**TotalQueries                                            11793847**

【问题讨论】:

    标签: powershell dns active-directory


    【解决方案1】:

    您对时间格式的假设是正确的。 *BetweenRestart 时间是您的 DNS 服务的离线时间。您正在寻找的时间是

    TimeElapsedSinceLastClearedStatistics - TimeElapsedSinceLastClearedStatisticsBetweenRestart
    

    这是您的 DNS 服务实际回答查询的时间跨度 (34.01:34:53)。例如,我建议使用[System.TimeSpan]::Parse("34.01:35:21") 将时间跨度解析为TimeSpan 对象。然后你可以很容易地减去上面显示的时间跨度。

    生成的时间跨度对象为您提供TotalSeconds 成员属性,您可以将其用于比率计算(您的比率约为 4 次查询/秒)。

    【讨论】:

    • 谢谢。这很有帮助。另外,我们无法确定内部域请求和外部域请求的数量,对吗? TotalQueries 是我看到的唯一一个涵盖所有 DNS 查询的条目。
    猜你喜欢
    • 2014-10-31
    • 2012-05-07
    • 2021-05-29
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    相关资源
    最近更新 更多