Ou a perfmon deve ser limitada a um servidor de desenvolvimento / controle de qualidade com testes de carga que simulam a atividade de produção?
Gostaria de executar o perfmon por dois dias ( como sugere o mestre do Sql Server, Brent Ozar ), para ter uma idéia geral do desempenho do banco de dados do meu aplicativo da web.
sql-server
performance
performance-tuning
perfmon
Bill Paetzke
fonte
fonte
Respostas:
O SQL Server e a maioria dos outros produtos geram os contadores o tempo todo, independentemente de haver ouvintes ou não (ignorando a opção de inicialização -x). O rastreamento do contador é completamente transparente no aplicativo que está sendo monitorado. Há uma região de memória compartilhada na qual o aplicativo monitorado grava e a partir da qual as sessões de monitoramento leem os valores brutos no intervalo especificado. Portanto, o único custo associado ao monitoramento é o custo do processo de monitoramento e o custo para gravar os valores amostrados no disco. Escolher um intervalo de coleta decente (geralmente escolho 15 segundos) e um número moderado de contadores (50-100), e gravar em um formato de arquivo binário geralmente não deixa impacto no sistema monitorado.
Mas eu recomendaria não usar o Perfmon (como no perfmon.exe). Em vez disso, familiarize-se com o logman.exe, consulte Descrição das ferramentas Logman.exe, Relog.exe e Typeperf.exe . Dessa forma, você não vincula a sessão de coleta à sua sessão. O Logman, sendo uma ferramenta de linha de comando, pode ser usado em scripts e tarefas agendadas para iniciar e parar as sessões de coleta.
fonte
Não há nada errado em executar o perfmon nas caixas de produção. É uma chave relativamente baixa e pode reunir muitas informações boas para você. E como você simularia com precisão as cargas de produção se não executasse alguma análise no servidor de produção? Do Brent Ozar no seu próprio link:
Já executei perfmon em várias caixas de troca de produção sem efeitos adversos.
fonte
Desde que ouvi Clint Huffman , que escreveu ao PAL um utilitário para analisar o Perfmon Logs, em um podcast uma vez. Eu configurei o que chamo de Flight Recorder em todos os nossos servidores de aplicativos de produção. Essa prática foi muito útil para diagnosticar problemas e monitorar tendências.
Abaixo está o script que eu uso para configurar um Perfmon Collector de inicialização automática, com limpeza de log. Se desejado, ele pode alimentar um arquivo listando contadores de desempenho para coletar (um por linha) ou um arquivo XML de limite PAL. Eu gosto de usar os arquivos PAL Threshold.
fonte
Fazemos isso com bastante frequência. Também é essencial para estabelecer uma linha de base no ambiente real, para que você possa comparar mais tarde se houver problemas ou precisar realizar um estudo de capacidade.
Eu recomendo não ficar abaixo de um intervalo de 10 segundos. Se você estiver coletando muitos objetos / contadores e o intervalo for muito frequente, isso poderá afetar as operações.
A Microsoft possui um Assistente PerfMon que configurará a tarefa para você.
http://www.microsoft.com/downloads/details.aspx?FamilyID=31FCCD98-C3A1-4644-9622-FAA046D69214&displaylang=en
fonte
Em um mundo ideal em que um servidor de produção reflete exatamente o que um servidor de desenvolvimento, faz e também é uma duplicata exata do servidor de desenvolvimento, o perfmon nunca deve ser necessário no servidor de produção, porque os resultados serão os mesmos do servidor de desenvolvimento. É claro que essa situação mítica nunca acontece, por isso precisamos executar o perfmon em servidores de produção e não há absolutamente nada de errado nisso. Entre outras coisas, podemos precisar usar perfmon e outras ferramentas para descobrir por que o servidor de produção não está se comportando da mesma forma que o servidor de desenvolvimento.
fonte
Por que perfmon? Quero dizer, as versões recentes do SQL Server têm seu próprio método, incluindo a criação de um data warehouse (central) de contadores de desempenho que podem ser consultados e relatados. Não há sentido em executar perfmon lá.
Como sempre, fico impressionado com todos os posts aqui de pessoas que obviamente nunca leem a documentação;)
http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-performance-data-collector/ é um bom começo. IMHO que deve funcionar em quase todos os servidores sql usados para fins de produção.
fonte
Nada de errado com a execução do Perfmon, como muitos sugeriram, mas eu executaria o Profiler em vez disso, com as mesmas advertências, não capturar com muita frequência, apenas capturar consultas de execução longa, como duração> x segundos ou cpu> xx ou lê> xxxx; muito pouco impacto, e você verá rapidamente as consultas que mais se beneficiariam com o ajuste.
fonte