I wrote the following short PowerShell script to help diagnose some performance issues on a server:
$counters = @("\Process(*)\% Processor Time","\Process(*)\Working Set","\Process(*)\IO Read Bytes/sec","\Process(*)\IO Write Bytes/sec","\Process(*)\IO Data Bytes/sec","\Network Interface(*)\Bytes Total/sec","\Network Interface(*)\Packets/sec","\Network Interface(*)\Packets Received Discarded","\Network Interface(*)\Packets Received Errors","\Network Interface(*)\Packets Outbound Discarded","\Network Interface(*)\Packets Outbound Errors")
$timeout = new-timespan -Seconds 10
$sw = [diagnostics.stopwatch]::StartNew()
while ($sw.elapsed -lt $timeout)
{
get-counter -counter $counters | select -expand countersamples | select timestamp,path,instancename,cookedvalue | export-csv -append -notypeinformation "c:\misc\counters.txt"
start-sleep -seconds 2
}
write-host "Finished"
The script works great and gives the values I need. However, when looking at the counter for "Packets Received Discarded", it never changes from the value "801".
What is the polling period for this counter? Does it reset on reboot? I couldn't find any documentation anywhere that shows when it resets to 0.
The link from Microsoft (https://msdn.microsoft.com/en-us/library/ms803962.aspx) states:
Shows the number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space.
... which still doesn't state the timeframe.
Someone else asked this on TechNet in 2015 and didn't get an answer (https://social.technet.microsoft.com/Forums/ie/en-US/f2093760-5462-45b5-a3e1-128d0b119509/packets-received-discarded?forum=winservergen).
Please help. Thanks.