Troubleshooting Solaris network connection performance
Diagnosing Solaris network problems when you have a slow connectivity is straight forward, simply use netstat -i to monitor performance.
For example:
root@solaris# netstat -i Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 loopback localhost 43523390 0 43523390 0 0 0 hme0 1500 <hostname> <hostname> 561847305 886 483621617 0 0 0 hme1 1500 <hostname> <hostname> 13480886 1 1521743 0 0 0
Entries to look at are:
- Input packets (Ipkts)
- Input errors (Ierrs)
- Output packets (Opkts)
- Collisions (Collis)
Network collision rate
Calcuate: network collision rate = Collis / Opkts
If your network collision rate is greater than 10%, this generally indicates:
- Overloaded network
- Poorly configured network
- Hardware problems
Input packet error rate
Calculate: input packet error rate = Ierrs /Ipkts
If the input packet error rate is greater than 0.25%, the your hosts is dropping packets. To diagnose, check your hub/switch, cables for potential problems.
Using 'ndd'
We can use the ndd command to determine the ethernet interfaces link speed, and status. In our exmple we are querying interface hme0 with the following commands:.
root@solaris# ndd -get /dev/hme0 link_status 1 root@solaris# ndd -get /dev/hme0 link_mode 1 root@solaris# ndd -get /dev/hme0 link_speed 1
Interpreting the above output:
| object | value |
|---|---|
| link_status | 0=down, 1=up |
| link_mode | 0=half duplex, 1=full duplex |
| link_speed | 0=10Mbps, 1=100Mbps |
Using 'netstat'
We can also use the netstat -k command to obtain the same information. For example:
root@solaris# netstat -k ce1 | egrep ?link_speed|link_status|link_duplex? lp_cap_asmpause 1 lp_cap_pause 0 link_T4 0 link_speed 1000 link_duplex 2 link_asmpause 0 link_pause 0 link_up 1 mac_mtu 1522
Interpreting the above output:
| object | value |
|---|---|
| link_up | 0=down, 1=up |
| link_speed | speed in Mbits/s |
| link_duplex | 0=down, 1=half duplex, 2=full duplex |