Como escolher um valor correto para open_file_cache na configuração do nginx?

4

Eu tenho um site com uma carga de cerca de 60 000 pedidos por minuto servido pelo nginx. Recentemente, eu habilitei o open file cache e vi uma melhoria dramática no desempenho. Mas, nos tempos noturnos, quando as cargas são máximas, os tempos de resposta ainda são muito grandes e o nginx usa muito IO.

Aqui estão as minhas configurações atuais:

open_file_cache max=10000 inactive=30s;
open_file_cache_valid    60s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;

E ainda tenho memória sobrando:

free -m
             total       used       free     shared    buffers     cached
Mem:          7910       6917        992          0        439        885
-/+ buffers/cache:       5592       2317
Swap:         8099          0       8099

Pergunta: agora eu escolho o valor correto para open_file_cache max=10000 e outros parâmetros? É 10000 suficiente, é muito pequeno ou grande? Existe uma maneira de monitorar o uso de cache de arquivos abertos?

    
por Temnovit 22.12.2012 / 15:51

2 respostas

3

O cache de arquivos abertos é um sistema de cache para operações de metadados (mtime de arquivo, existência de arquivos, etc.), não para conteúdo de arquivo, portanto, ajuda, mas não tanto quanto você esperaria.

Algumas soluções alternativas que você pode tentar são:

  • Reduza a taxa de compactação gzip se você ativou o gzip dinâmico.
  • Se você estiver executando um kernel suficientemente recente (> 2.6.22) tente ativar o aio. Verifique o link
  • Desativar o log de acesso. Isso sozinho pode dar um salto de desempenho muito alto. Certifique-se de que você não precisa disso!
  • Experimente um módulo de cache de conteúdo de arquivo real, como link . Aviso: isto irá requerer recompilar o nginx da fonte!
por 22.12.2012 / 21:24
-1

Você também pode tentar buffers, já que o nginx não grava arquivos temporários quando você tem buffers suficientes

    
por 08.01.2014 / 01:59