Interruttori, router, cavi e velocità
Come al solito, Internet era veloce su Ubuntu come una volta fino a quando non avevo bisogno di collegare più PC al percorso adsl che si trovava nelle vicinanze. Dopo aver collegato tutti i computer e il router adsl ad uno switch ho notato che su uno dei PC (Ubuntu 8.04) internet diventava davvero lento. Il resto dei 2 PC, uno su Ubuntu 8.10 e un altro su Ubuntu 8.04, Internet funzionava bene. Questo PC Internet lento era anche il più vecchio dei 3 . Dopo aver controllato tutto era chiaro che il problema era legato a ethernet.
Il problema sorge quando lo switch/router o qualsiasi hardware non è in grado di gestire velocità elevate e trasferimenti in modalità duplex. Per risolvere questo problema, è possibile utilizzare il comando ethtool per modificare le impostazioni dell'interfaccia di rete per abbassare i valori ottimali che l'infrastruttura di rete può gestire.
In questo caso, l'impostazione della velocità Ethernet su 10 mpbs e la disattivazione della negoziazione automatica è risultata essere la soluzione.
sudo ethtool -s eth0 duplex full speed 10 autoneg off
Puoi anche provare a impostare duplex a metà.
A parte questo, la connessione Internet potrebbe essere lenta a causa di molti motivi come problemi hardware, stesso IP dato a 2 macchine, problemi IPv6 ecc.
Puoi prima verificare se il problema è davvero correlato ai cavi switch/ethernet eseguendo il ping del router. Nella maggior parte dei casi il tempo di ping del router dovrebbe essere inferiore a 1 ms
$ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_req=1 ttl=254 time=0.679 ms 64 bytes from 192.168.1.1: icmp_req=2 ttl=254 time=0.775 ms
Se il tempo di ping è qualcosa di molto alto rispetto a quel valore, è sicuramente un problema con l'hardware o la configurazione della rete.
Se il comando ethtool sopra non riesce a risolvere il problema di velocità, potrebbe esserci un problema con i cavi Ethernet o lo switch stesso. Quindi devi provare a sostituirli e controllare.
Se il comando precedente risolve il problema e vuoi eseguirlo ogni volta che il sistema si avvia, aggiungilo al file " /etc/rc.local" in modo che venga eseguito ad ogni avvio.
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. ethtool -s eth0 duplex full speed 10 autoneg off exit 0
Questo problema non è specifico solo per Ubuntu. Può verificarsi su qualsiasi sistema come Windows, se i componenti di rete non sono in grado di gestire velocità elevate.
Si noti inoltre che l'applicazione del comando sopra ha uno svantaggio, che limiterà la velocità di trasferimento dei file tra i peer della rete locale a 10 mps. Quindi, anche se il tuo router e switch possono supportare fino a 100 mpbs, la velocità di trasferimento dei file viene limitata.