繁体   English   中英

Powershell:Windows 服务器之间的响应时间

[英]Powershell: response times between Windows Servers

这可能只是我的 google-fu 无法正常工作的一个例子,但我正试图在一组 Windows 服务器之间获得准确的响应时间。 我可以在 Powershell 中使用以下类型:

Test-Connection -ComputerName google.com -count 1

然而,这只会给你以毫秒为单位的响应时间:

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms) 
------        -----------     -----------      -----------                              -----    -------- 
ComputerName  google.com      172.217.26.14                                             32       26       

我们正在使用的应用程序需要非常快的响应时间(低于 1 毫秒),因此如果我作为一个简单的外行人能够以微秒为单位进行测量,那就太好了。 我尝试了以下内容:

$startTime = Get-Date
$testConnection = Test-Connection -ComputerName google.com -count 1
$stopTime = Get-Date
$responseTime = $stopTime - $startTime

但这从 20-30 毫秒到 120 毫秒,大概是因为我的机器必须读取日期并计算差异,这确实需要几毫秒。

我假设某种形式的应用程序(也许是 WireShark?)可以以微秒为单位进行测量,但我找不到它。 我知道,例如 Active Directory 登录时间戳甚至可以记录到纳秒级,因此它应该在 Powershell 脚本框架内可行。

您可以获得这样的响应时间

Test-Connection www.google.com -Count 4 | Measure-Object -Property ResponseTime -Average

您可以使用TimeSpan类来处理不同的时间跨度

[timespan]::fromseconds((Test-Connection www.google.com -Count 4 | Measure-Object -Property ResponseTime -Average).average)

希望能帮助到你。

我找到的有效解决方案是将 Get-Date 的 -Format 参数与以下内容一起使用:

Get-Date -Format "yyyy-MM-dd HH.mm.ss:fffffff"

这使您可以将时间精确到每个滴答声,或百万分之一秒。 有关更多信息: https ://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM