SNMP Counter Values Are Unreliable in SMP Computers (146004)
The information in this article applies to:
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Professional
- Microsoft Windows 2000 Datacenter Server
- Microsoft Windows NT Server 3.5
- Microsoft Windows NT Server 3.51
- Microsoft Windows NT Server 4.0
This article was previously published under Q146004 SYMPTOMS
Windows NT simple network management protocol (SNMP) counters, such as
output queue length, may yield unlikely results in symmetric multiprocessor
(SMP) computers. The SNMP counters can be viewed using Snmputil.exe from
the Windows NT Resource Kit, or Performance Monitor using the Network
Interface object. For example:
snmputil getnext <server> public 2.2.1.21.1
Variable = interfaces.ifTable.ifEntry.ifOutQLen.2
Value = Gauge - 3749
NOTE: In normal operation, the output queue length counter should rarely
rise above zero, when it does, it should return to zero very quickly.
CAUSE
This problem occurs because Windows NT TCP/IP does not use interlocked
operations to maintain its statistics counters. The SNMP counters are
maintained in the TCP/IP code.
In the case of output queue length, the counter is incremented every time a
packet is indicated to NdisSend(), and decremented when NDIS completes the
send successfully by returning a status of success, or returning status
pending and later calling ARPSendComplete().
Because spinlocks are not used in this code to guarantee the integrity of
the counters, SMP computers can affect the counter values during retrieval,
causing unlikely values to be reported.
The decision to not implement spinlocks to guarantee the integrity of the
SNMP counters is based on performance concerns and will not be changed.
STATUS
Spinlocks were left out of the TCP/IP code for counter operations
intentionally for performance reasons. This will not be fixed.
Modification Type: | Major | Last Reviewed: | 5/7/2003 |
---|
Keywords: | kbnetwork kbSNMP KB146004 |
---|
|