Descarregando o cache de disco para benchmarks de desempenho?

3

Estou fazendo um benchmark de desempenho em algum script SQL pesado rodando no postgres 8.4 em uma caixa do Ubuntu (natty).

Estou experimentando um desempenho bastante não estável, embora eu deva ser o único em execução na máquina (o mesmo script nos mesmos dados pode ser executado em 20 me 40 m por nenhum motivo específico) .

Então, lembrando-me do meu treinamento de DBA distante, decidi liberar o cache de postgres, usando sudo /etc/init.d/postgresql restart , mas ainda é instável!

Minha pergunta: talvez eu esteja perdendo alguns caches no meu disco / os? Estou usando um dispositivo netapp como meu armazenamento. Estou no caminho certo? Eu ainda quero ter certeza de obter um desempenho repetitivo antes de começar a ajustar?

    
por ihadanny 26.06.2011 / 17:17

2 respostas

2

Se o seu armazenamento for montado em rede, a atividade na rede e no appliance de armazenamento poderá alterar seus resultados. Existem várias camadas de cache envolvidas em uma configuração como você está usando.

  • Cache do banco de dados
  • O / S cache
  • cache do appliance Netapp
  • Cache de disco / controlador

No seu caso, eu esperaria que os caches O / S e netapp pudessem ser fatores. Mais provavelmente, é o acesso aos dados do appliance netapp.

Muitos destes são difíceis de descarregar. Tem sido minha experiência, que os caches de flushing não são tão úteis assim. A menos que você esteja executando a consulta em um banco de dados / servidor não utilizado, há muitos fatores que terão um impacto maior em seus resultados.

Mesmo se você for o único usuário no sistema, existem tarefas agendadas que são executadas periodicamente e usam recursos. Veja se você obtém resultados mais estáveis se executar o teste no mesmo número de minutos fora da hora (9:15, 10:15, 11:15 ...).

Você pode querer configurar um servidor munin para monitorar seu servidor de teste e ver se você tem perfis semelhantes durante execuções diferentes. A execução de sar no segundo plano pode fornecer informações úteis sobre afunilamentos. sar é fornecido pelo pacote atsar .

    
por 26.06.2011 / 18:15
0

No Linux, você pode usar sync && sysctl vm.drop_caches=3 para remover pagecache, dentries e inodes.

    
por 26.06.2011 / 18:09