Sometimes network performance problems on a system can be due to a mismatch
in the speed and/or
duplex settings on a system and the switch or router to which it connects.
Autonegotiation normally works to ensure that two connected devices have
compatible settings, but occasionally it may not work as intended. On a Linux
system, one way to check the spped and duplex values is by using the
ethtool command. If the
utility, which provides capabilities for querying and changing settings such
as speed, port, auto-negotiation, PCI locations and checksum offload on many
network devices, especially of Ethernet devices, isn't installed already
you can install it on a
Ubuntu Linux system with the command sudo
apt-get install ethtool
. On a
CentOS Linux
system, you can use yum install ethtool
. You can run the software
to show the settings for a
network
interface controller (NIC) by issuing the command ethtool devname
where devname is the name associated with the
network interface, e.g., you might issue the command
ethtool eth0
on a Ubuntu system. You can see the available network
interfaces using the command ifconfig -a
. Below is the output of
the command run on a CentOS system:
$ ethtool enp1s4 Settings for enp1s4: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Cannot get wake-on-lan settings: Operation not permitted Current message level: 0x00000037 (55) drv probe link ifdown ifup Link detected: yes $