Eu tenho um servidor Dell 1U com CPU Intel (R) Xeon (L) L5420 a 2,50GHz, 8 núcleos executando o Ubuntu Server Kernel versão 3.13.0-32-genérico em x86_64. Possui duas placas de rede 1000baseT. Eu o configurei para encaminhar pacotes de eth0 para eth1.
Percebi que no meu arquivo kern.log ele fica pendurado e depois descansando. Isso está acontecendo com frequência. Isso acontece a cada poucos segundos e, em seguida, talvez esteja ok por alguns minutos e depois a cada poucos segundos.
Aqui está o dump do arquivo de log:
[118943.768245] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
[118943.768245] TDH <45>
[118943.768245] TDT <50>
[118943.768245] next_to_use <50>
[118943.768245] next_to_clean <43>
[118943.768245] buffer_info[next_to_clean]:
[118943.768245] time_stamp <101c48d04>
[118943.768245] next_to_watch <45>
[118943.768245] jiffies <101c4970f>
[118943.768245] next_to_watch.status <0>
[118943.768245] MAC Status <80283>
[118943.768245] PHY Status <792d>
[118943.768245] PHY 1000BASE-T Status <7800>
[118943.768245] PHY Extended Status <3000>
[118943.768245] PCI Status <10>
[118944.780015] e1000e 0000:00:19.0 eth0: Reset adapter unexpectedly
Aqui estão as informações do ethtool:
Configurações:
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Informações do driver:
ethtool -i eth0
driver: e1000e
version: 2.3.2-k
firmware-version: 1.4-0
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
O que poderia estar causando isso? Isso é apenas um bug no software ou um problema de hardware real? Eu já vi muitos outros tendo problemas semelhantes, mas nenhuma solução real e isso também me leva a acreditar que é um problema de software?
Talvez alguém possa esclarecer isso para mim?
fonte
Respostas:
Ok, então, depois de postar essa pergunta na noite passada, continuei pesquisando. A única solução real que encontrei parece ter resolvido o problema.
Desabilitando TSO, GSO e GRO usando ethtool:
De acordo com um post encontrado aqui: http://ehc.ac/p/e1000/bugs/378/
Pelo que entendi, isso causará ou poderá causar uma redução no desempenho.
Notei também que outra solução era desativar o Gerenciamento de energia do estado ativo
De acordo com este post na serverfault: Linux e1000e (driver de rede Intel) em abundância, por onde começar?
Ainda não tentei esta solução. Vou tentar e ver se isso faz diferença e postar de volta minhas descobertas.
EDITAR:
Ok, tentei desativar o Gerenciamento de energia no estado ativo, pcie_aspm = off e isso não teve nenhum efeito. Continuei a perceber erros no meu arquivo de log.
Isso ainda pode funcionar para alguns, pois algumas das placas de rede Intel têm problemas com diferentes núcleos de adormecer quando o gerenciamento de energia está ativado.
fonte
ethtool -K eth0 gso off gro off tso off
irá interromper a conexão, mesmo que por pouco tempo?A desativação do C1 avançado (C1E) no BIOS corrigiu isso para mim.
Não tenho certeza se o estado de energia mais baixa do C1E está interferindo no driver ou se há um oops no driver quando o processador está nesse estado.
Enfim, problema resolvido.
fonte
Eu tive o problema (acionando o mesmo erro do kernel que você e os erros SSH do espaço do usuário, como "
Corrupted MAC on input
").Solução
O que funcionou para mim foi desativar o descarregamento da soma de verificação TCP:
# ethtool -K eth0 tx off rx off
Integração limpa e de longo prazo disso com debian-ish / etc / network / interfaces :
fonte , inspiração .
Contexto
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-V (rev 04)
fonte
Tente atualizar seu driver. Não sei onde é o Ubuntu ou qual versão é recomendada, mas para o CentOS ou EL 6 é:
http://mirror.symnds.com/distributions/elrepo/elrepo/el6/x86_64/RPMS/kmod-e1000e-3.1.0.2-1.el6.elrepo.x86_64.rpm
fonte