Como posso otimizar um servidor para um aplicativo de baixa latência [closed]

1

Eu tenho um aplicativo que é sensível à latência. Embora eu me importe com a taxa de transferência, a latência extremamente baixa é mais importante para mim.

Por favor, sugira como eu posso otimizar meu servidor para obter a menor latência possível - ou seja, o menor tempo de resposta possível de uma solicitação recebida em uma interface de rede (ou cartão inifiniband) e a resposta publicada.

As ideias iniciais são

  • Afixe todas as atividades do sistema operacional em um conjunto de núcleos e dedique outras ao meu (não sei a melhor maneira de fazer isso)
  • Definir overcommit_memory para não comprometer demais

O artigo Otimizando servidores e processos de velocidade parece ser um bom começo, mas outros ponteiros são bem-vindos.

Qualquer outra sugestão será bem-vinda

    
por Robert Christie 16.08.2010 / 11:41

2 respostas

2

Primeiramente, acho que você deve instalar e usar o kernel linux-rt . Este kernel é corrigido e permite que quase todo o kernel seja preempted, com a exceção de algumas regiões muito pequenas de código ("raw_spinlock critical regions"). Isso é feito substituindo a maioria dos spinlocks do kernel por "mutexes" que suportam herança de prioridade, bem como movendo todas as interrupções de interrupção e software para encadeamentos do kernel.

  

Preempção é o ato de temporariamente   interromper uma tarefa sendo executada   por um sistema de computador, sem   requerendo sua cooperação, e com   a intenção de retomar a tarefa em   mais tarde.

Leia Uma visão geral de preempção em tempo real . Isso permitirá que você entenda como as coisas funcionam, algo que permitirá que você ajuste o kernel para seu aplicativo em particular.

Há também o RTLinuxFree desenvolvido pela Wind River Systems, que também tem uma contraparte comercial se você tiver dinheiro por aí.

Para linux-rt , recomendo ler o RT Wiki

Talvez seu aplicativo seja compatível com RTAI ?

    
por Li Lo 16.08.2010 / 12:10
0

Talvez brincar com a freqüência do clock do hardware possa ser importante? Isso pode afetar a alternância de estados de energia da ACPI, por exemplo, se a sua máquina estiver em estado inativo por períodos de tempo e tiver que responder rapidamente a solicitações de rede. Ou se você precisar de tempo (extremamente) preciso e registro, diga.

Veja texto do link para mais discussões. Não tenho certeza de quão recente é, mas a opção de relógio do hardware ainda estava lá na última vez que verifiquei (há uns 6 meses).

    
por mindcorrosive 16.08.2010 / 23:35