Solaris Troubleshooting : Calculate Collision rate in ethernet network
Collisions may occour on ethernet links which are operating at Half Duplex (HDX). They do not occour on links using Full Duplex (FDX). The normal formula to calculate the packet collision rate is:
( collisions / output packets ) * 100 = collision rate
# netstat -i 10
input lo0:1 output input (Total) output
packets errs packets errs colls packets errs packets errs colls
135299 1 19240 0 691 135910 1 19851 0 691
# bc -l
691/19240 * 100 <RETURN>
3.59147609147609147600 (= 3.59 % collision rate)
The following rough guidelines are common among network administrators.
- Collision rates < 5% are considered ok.
- Collision rates > 5% are the first indication of possible network loading
- Collision rates > 10% may signify an over-loaded network.
It is important to note that the collision rate:
1. of a given machine does not represent the average for the entire network,
2. threshold varies greatly, and
3. it is not an indication of actual load on the network (Collisions + Defers).
NOTE 1 : When looking at a systems collisions compared to output packets it is important to note that this is only one node’s perspective of the network while it is transmitting.
NOTE 2 : Depending on the applications running and protocol used, a high collision rate (>50%) may not cause a decrease in perceived throughput on a client, but a server may show performance degradation at 5-10%.
NOTE 3 : It is recommended to use a Network Sniffer/Analyzer to get a overall network analysis and better identify the problem.
NOTE 4 : Segmentation and/or the use of ethernet switches is normally the solution to a network-wide collision and netload issue.
Some causes of network collision:
Collisions are normal and necessary in the CSMA/CD Ethernet world. The collision rate displayed with netstat for the lo driver tends to understate the actual load on the network.
Other drivers (like qe, be, or hme) will report every collision. The threshold for collision rates varies greatly between network nodes and should only be considered a piece of the overall network analysis.
2. Wrong duplex settings:
If the 100MBPS Switch is set for Half and a Sun network adapter is set to Full, then lots of collisions result (invalid config); same is true if the Switch is to Full and the adapter is set to Half (speed/mode mis-match).
This is the usual cause for heavy an d late collisions. To avoid it, use Ethernet Autonegotiation to detect and negotiate the mode.
3. Characteristic of switched environment:
Half-Duplex flow control using a 100MBPS ethernet switch: When a 100Mbps server is transmitting to a 10MBPS client via a switch, the switch will buffer as many frames as possible.
When the switch buffers are full, a signal is sent to the server to stop transmitting by forcing a collision which causes the server to slow down. The switch may also assert a Carrier Sense, which causes the server to sense as if it is receiving data from the switch and defer the packet transmission.
4. “Ethernet Capture Effect”, Fast servers hogging the wire:
Slower clients (older/slower) may be having collision and deferred packet issues, as they may not deal well with the minimum 9.6 microseconds Inter-Packet Gap of the SunFastEthernet driver. Increasing the IPG values and verifying that lance_mode is set on the hme driver can be done to help resolve the ethernet bus arbitration phenomenon, a result of “fast server” capture effect (sometimes referred to a wire hogging).
5. Late Collisions:
A late collision indicates that a collision was detected after the channel’s slot time 25.6 microseconds has elapsed, i.e., we are still transmitting and someone else started transmitting after the point in time where our packet should have filled the whole network (25.6 microseconds). CSMA/CD dictates that there should not be a collision after 25.6 microseconds of the packet transfer.
Other Transmitters should have listened and detected a busy network during the first 25.6-microsecond slot time of another transmitter.