Servidor SSH paralisado quando os usuários acessam arquivos grandes - NET_RX alto e softirqs altos - Como limitar?

Servidor SSH paralisado quando os usuários acessam arquivos grandes - NET_RX alto e softirqs altos - Como limitar?

Eu tenho um servidor rodando o fedora 14 - Linux-2.6.35 com uma NIC de 1 Gbps. Possui montagens NFSv3 fornecidas por um servidor Isilon.

Ele congela sempre que qualquer usuário trabalha com um arquivo grande (grep ou similar) que existe no servidor NFS. Pude ver claramente que pouco antes do servidor congelar,

  1. O uso da rede chega perto de 1 Gbps,
  2. interrupções do NET_RX sobrecarregam os núcleos da CPU e
  3. Grandes quantidades de soft_irqs.

Alguma ideia para abordar essas barracas?

ifconfig na NIC mostra

[root@interactive ~]# ifconfig eth1 <redacted>
eth1      Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
      inet addr:xx.yy.zz.aa  Bcast:A.B.C.255  Mask:255.255.252.0
      inet6 addr: aaaa::bbb:ccc:ddd:eee/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:685902495 errors:6256 dropped:28226 overruns:0 frame:6256
      TX packets:661268729 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:973006411081 (906.1 GiB)  TX bytes:146154890021 (136.1 GiB)
      Interrupt:19 Memory:d8000000-d8012800 

Os erros são muito altos?

Existe uma maneira de limitar a capacidade de um usuário SSH de saturar a interface de rede?

Responder1

A solução recomendada seria aumentar a largura de banda disponível para o servidor. Você pode atualizar para a conectividade 10G ou adicionar NICs adicionais no servidor e agrupá-los (etherchannel).

Além disso, como Sven comentou acima, você precisará certificar-se de ter os drivers mais recentes para sua NIC e atualizar o sistema operacional, se necessário.

Para limitar a capacidade do usuário ssh, você pode tentar o Quality of Service (Traffic Control). Você pode descobrir mais pesquisando pelo comando 'tc'.

Responder2

A rede vai subir porque o que quer que seja (grep, etc) precisa ler o arquivo. O que eu tentaria seria:

Atualize para uma versão deesta DÉCADA- Eu sei, você está preso.

Tente a mesma coisa via console - aposto que não é SSH

Há algo nos logs (ou seja, /var/log/messages, dmesg) como CPU travada ou servidor NFS não respondendo?

Wireshark para pacotes fragmentados, etc.

Altere as opções de montagem do cliente nfs: hard vs soft, wsize, rsize, timeo e retrans, UDP vs TCP

Reduza o MTU em ambos os dispositivos

informação relacionada