Eu tenho um servidor de 10GBit com proxmox 2.1 instalado. Há um contêiner OpenVZ rodando com o Ubuntu 10,04 64 bits. Posso obter 200-300MB / seg com wget de servidores internos do datacenter (-O / dev / null) que está bem. No entanto, se houver várias conexões, não é possível obter mais de 800MBit / seg no total.
Eu tenho um servidor web apache2 que funciona como um proxy e acessa os dados de vários outros (não apenas servidores internos do centro de dados). Seu único proxy, então o O disco rígido não é acessado (ao lado dos arquivos de registro, é claro). Como este servidor tem dois SSDs, é muito improvável que esta é a razão. Assim que 800MBit são atingidos, eu só recebo 300kb / seg de servidores internos do data-center com "wget -O / dev / null" ", mesmo no host próprio sistema, não dentro do contêiner OpenVZ.
Eu notei que o processo ksoftirqd / 0 está requerendo Carga da CPU (até 100%):
4 root 20 0 0 0 0 R 78 0.0 67:38.99 ksoftirqd/0 # (78% in this case)
Às vezes, também, o processo events / 0 requer muitos recursos de CPU e parece competir com o ksoftirqd / 0 pela potência da CPU:
35 root 20 0 0 0 0 R 50 0.0 18:04.63 events/0
4 root 20 0 0 0 0 R 50 0.0 24:37.64 ksoftirqd/0
A saída do topo da potência da CPU é assim:
Cpu(s): 13.9%us, 7.3%sy, 0.0%ni, 64.0%id, 0.2%wa, 0.0%hi, 14.6%si, 0.0%st
Como você pode ver, o si é muito alto, que normalmente deveria ficar em 0. Além disso, o disco rígido não é o gargalo. (0,2% wating).
Eu também tenho outros 1-Gigabit-Servers com a mesma configuração. Eles chegam a 900MBit / seg, o que é bom para um 1GBit servidor. No entanto, há também uma alta carga de ksoftirqd / 0 (60-70%).
Atualmente, há cerca de 300 MBit passando pelo servidor de 10 GB e o processo ksoftirqd / 0 fica com 0% de CPU.
No entanto, no final da tarde, quando o tráfego aumenta, vai até 100 e corta a largura de banda a 800MB.
Talvez haja um problema com o OpenVZ? Eu também poderia instalar o Ubuntu diretamente no servidor sem proxmox apenas para testes, mas seria melhor se eu pudesse fique com proxmox / OpenVZ.
No entanto, é importante que eu possa usar pelo menos alguns GBit com este servidor assim que eu precisar. Claro também com várias conexões.
Tanto quanto eu posso ler a saída de lspci -vv
, meu cartão suporta MSI-X.
O sistema tem um processador Intel® Xeon® Processor E5606 (8M Cache, 2.13 GHz, 4.80 GT/s Intel® QPI)
Esta é minha placa de rede:
root@ns231828:~# lspci | grep -i network
02:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.1 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01)
05:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
05:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Também enviei a saída higienizada de lshw
aqui: link
Esse também é o conteúdo do link lspci -vv
:
Eu tenho um "ambiente de teste" com um pequeno script em lote que baixa arquivos de teste de velocidade de muitos servidores (na verdade eu peguei apenas a lista de iso do ubuntu). Eu sou capaz de alcançar 2 gbit nesse ambiente.
depois que eu tentei ethtool -C eth2 rx-usecs 1022
, consegui atingir 3,5 gigabit.
no entanto com configurações rx-usecs otimizadas (eu tentei os valores 1 e 1000 também, 1022 ficaram melhores) em um ambiente ao vivo com clientes reais que só ganharam cerca de 100 mbit.
Eu carreguei os outros resultados do ethtool -k e ethtool -c aqui: link
Alguém já teve problemas semelhantes ou tem uma dica de como posso resolver esse problema?
Tags networking linux tcp 10gbethernet 10gige