I recently attempted to transfer a 3 GB file to a machine on my LAN using rsync -azvP. I noticed I was only getting 50kpbs. Both switch ports are 100/full. When I do an ifconfig, here's what I get:
eth0 Link encap:Ethernet HWaddr 00:30:48:2E:A3:78
inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:fe2e:a378/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:747209956 errors:0 dropped:0 overruns:0 frame:0
TX packets:864422049 errors:16806813 dropped:0 overruns:0 carrier:16806813
collisions:20239785 txqueuelen:1000
RX bytes:793010164 (756.2 MiB) TX bytes:2059589267 (1.9 GiB)
Base address:0x4000 Memory:da400000-da420000
I noticed: TX packets:864422049 errors:16806813 and collisions:20239785
Looks like I'm getting errors and collisions. Is there something obvious that I'm missing? My next step is to change the cable. What if that is unsuccessful?
Replace the cable, then change ports, then the switch, then the sending NIC, then the receiving NIC, then the sending motherboard, then the receiving motherboard.
Is your NIC set to 100 full duplex too?
Are there any errors in the switch log?
Usually it's cabling or nic, if you have other systems on the network that are working with the switch then it may not be the switch. To test that you can just use other ports to see if the switch as a bad port or two on it (depending on which you switch out to a different port each time to test).
Patch cables first, then look at NICs, I'd say. If there's activity lights you can also check and see if something is slamming the switch, i.e., something infected on the network and flooding the switch's routing table. tcpdump or wireshark might tell you something about that.
Consider that a collision is impossible on a microsegmented network running at full duplex. Perhaps they are not collisions, but ICMP Source Quench requests? More information here, here, and here. Lately, I have seen many newer devices reporting ICMP Source Quench requests as collisions.
I found ethtool which allowed me to diagnose that my NIC auto-configured to 100/half. Changed it to full and was problems went away.