otimizar o nginx para baixar arquivos grandes

3

Ei, eu estou querendo saber quais são algumas opções gerais que eu deveria procurar para otimizar um servidor nginx para download de arquivos grandes (tipicamente de 100mb a 6gb). Acabei de migrar do lighttpd e estou percebendo que durante os downloads, as velocidades flutuam muito rapidamente. Eu estou familiarizado com velocidades flutuantes, mas não a este ritmo, o lighttpd não flutuou tanto quanto. Eu queria saber se havia algumas coisas gerais que eu deveria olhar, sendo novo no nginx. Devo aumentar a contagem de funcionários, etc.

Eu estava passando pela página wiki do HttpCoreModule e encontrei algo como a opção directio :

The directive enables use of flags O_DIRECT (FreeBSD, Linux), F_NOCACHE (Mac OS X) or directio() function (Solaris) for reading files with size greater than specified. This directive disables use of sendfile for this request. This directive may be useful for big files

isso seria uma opção para experimentar? Obrigado pessoal, agradeço a ajuda.

Eu sei que minha pergunta pode ser bem ampla, mas como eu disse, sendo nova no nginx, estou me perguntando que tipo de opções eu posso procurar para otimizar o servidor para o download de arquivos. Eu sei que várias coisas desempenham um papel, mas também sei que o lighttpd não flutuava tanto no mesmo servidor.

Obrigado!

    
por Jorge Israel Peña 31.03.2011 / 10:37

1 resposta

2

Quanta ram você tem? Que tipo de carga de trabalho no seu servidor? Ele serve apenas arquivos grandes ou serve arquivos menores e / ou solicitações de proxy também?

O DirectIO é útil quando o conjunto de arquivos ativos é maior que a RAM, para que eles não caibam no cache, e armazená-los em cache é inútil - é melhor lê-los diretamente do disco e deixar o cache para outra coisa.

Como para flucations - isso provavelmente é causado por trabalhadores nginx bloqueando em operações de disco (por padrão, eles são síncronos). Tente aumentar o número de trabalhadores ou tente usar i / o assíncrono (aio on). Mas tenha cuidado: o número de assincronos muito grande ou muito grande pode causar uma taxa de busca muito maior, então a velocidade geral pode diminuir drasticamente.

    
por 31.03.2011 / 10:58