[GTER] Ethernet nic
Henrique de Moraes Holschuh
henrique.holschuh at ima.sp.gov.br
Tue May 15 09:35:59 -03 2012
On 14-05-2012 15:16, Lista wrote:
> Boa Tarde Henrique,
>
> Em 14 de maio de 2012 12:28, Henrique de Moraes Holschuh<
> henrique.holschuh at ima.sp.gov.br> escreveu:
>
>> On 12-05-2012 22:59, Lista wrote:
>>
>>> Boa noite Henrique,
>>>
>>> Qual tunning você chegou a fazer para ela ter um bom desempenho
>>> assim?
>>>
>>
>> Pelo que lembro: remova praticamente tudo do kernel que
>> atrapalharia (por exemplo, conntrack, tabelas do iptables
>> desnecessárias, *regras* do iptables na forwarding, QoS, rp-filter,
>> ebtables), ligue MSI-X, use as 16 filas de uma vez (ou seja,
>> desligue SR-IOV e tenha no mínimo 16 hardware threads que sejam
>> endereçáveis como se fossem cores), desligue a IOMMU (o que
>> significa que seria inseguro ter virtualização ou uma GPU nessa
>> máquina), ligue os NICs direto em PCIe da CPU ou da north-bridge
>> para poder usar DCA (NIC escreve o cabeçalho do pacote direto no
>> cache L3, processador e chipset precisa ser Intel), e deixe ele
>> mitigar interrupções. Trave a CPU em modo performance (inclusive
>> no BIOS), *sempre* desligue PCIe L0s e L1 no BIOS se tiver como.
>
>
> Como poderia fazer esse travamento direto no linux, ou somente via
> hardware(bios)
Olhe nas opções do BIOS/EFI. Olhe os parâmetros do kernel para limitar
o número de C-states se o BIOS não permitir ajustar isso direto, e
use o governor "performance" para travar em modo performance se
necessário. Para desabilitar PCIe L0s e L1, ou o BIOS tem a opção, ou
você vai precisar escovar bit via setpci, que eu não recomendo. Sugiro
também desabilitar a gerência de energia do QPI se o BIOS deixar, bem
como qualquer outra opção que aumente a latência do equipamento.
A máquina fica ligeiramente mais rápida e com menor latência de pior
caso, mas ela VAI gastar mais energia e esquentar mais. Não faça isso
em servidor com fonte sub-dimensionada como os que adoram vender no
Brasil, ou que esteja trabalhando muito quente.
>> E pode ser necessário usar um utilitário que tem no kernel mais
>> novo para setar um MSR que indica para a CPU parar de tentar
>> economizar energia (x86_energy_perf_policy) se for Xeon 56xx ou
>> mais novo.
>>
> Qual seria o contra disso, caso esteja habilitado?
Gasta mais energia e esquenta mais a CPU. É uma escala discreta de
vários níveis, que varia entre "conserve mais energia", passa por
"normal", e vai até "sacrifique conservação de energia para conseguir
mais performance". Nenhum manual explica exatamente o que cada nível faz.
> Use no mínimo dois Xeon X5550 e DDR3 1333+. Com processadores mais
>> novos (tipo o E3) e mais cores, funciona melhor.
>>
>> Reza a lenda que dá para fazer com um único Core i7 do mais
>> parrudo, mas aí não tenho o conhecimento de causa para afirmar (ter
>> metade dos cores com certeza não ajuda, e placa mãe de desktop
>> também não, então só afirmaria depois de conseguir reproduzir).
>
> Você tem essa documentação, ou foi garimpando coisa a coisa na net?
Mencionaram por aqui na lista, acho. Tivemos várias threads à respeito
ao longo dos últimos 2 anos.
Tem alguns white-papers da Intel sobre roteamento 10GbE em Linux que
explicam o que se deve fazer de forma macro, mas eles não são tão fáceis
de achar (eu sempre falho no google-fu). Um deles estava na área de
embarcados da Intel (embedded). Dá uma olhada no ark.intel.com, pega
várias placas 1GbE e 10GbE e olha na documentação suplementar listada
pelo ark se os whitepapers aparecem. Foi assim que os achei
inicialmente, mas caí na besteira de não guardar o PDF... Imprimi, e
não estou conseguindo achar a cópia impressa.
--
Henrique de Moraes Holschuh <hmh at ima.sp.gov.br>
IM@ - Informática de Municípios Associados
Engenharia de Telecomunicações
TEL +55-19-3755-6555/CEL +55-19-9293-9464
Antes de imprimir, lembre-se de seu compromisso com o Meio Ambiente
e do custo que você pode evitar.
More information about the gter
mailing list