Solução de problemas e reparar: Gaste menos, seja mais rápido

Se você se certificar de que sua carga de aplicativos está sendo executada com eficiência, poderá economizar tempo e dinheiro nas operações de infraestrutura.

Wes Miller

Há muitas perguntas sobre o mundo que permanecem sem resposta. Como o cérebro realmente funciona? Quem criado as pirâmides — e como? O que é a negociação com o platypus? Por que meu computador estiver tão lenta? O cérebro, pirâmides e o platypus podem permanecer mistérios, mas let’s se aprofundar por que o computador é tão lento.

Computadores com o software ineficiente de custo de dinheiro. Esses custos são provenientes de produtividade do usuário reduzida, consumo de eletricidade maior, redução da bateria, desgaste térmica, falha no disco e muito mais. Ignorar software problemático nunca funciona — ele freqüentemente leva a problemas muito maiores em termos de tempo e custo.

Quando a Microsoft foi enviado o Windows XP, ele passou uma quantidade razoável de tempo, garantindo que a área de notificação do Windows (o que muitas pessoas chamam “ bandeja ”) tinha uma interface do usuário fácil de gerenciar. Infelizmente, muitos desenvolvedores de software usados incorretamente-lo de que ele não era atípico para ver um novo computador com mais de 10 ícones na área de notificação que executa no logon.

Tudo o que tem um custo — e cada um desses aplicativos na área de notificação tem um custo além de imóveis apenas da área de trabalho. Cada um deles representa pelo menos um aplicativo em execução. E cada versão do Windows adiciona serviços ainda mais que a versão anterior. Em resumo, há muitas coisas que executam o em seu computador, se ele é proveniente de um OEM, uma imagem da área de trabalho padrão corporativo ou se você tiver instalado Windows.

Mais rápido, mais rápido

Além de “ por que não Windows inicia? ”, uma das perguntas mais comuns que obtenha perguntei é “ o que está fazendo este computador tão lento e o que posso fazer para solucioná-lo ”?

Se você tiver dois computadores que começou com a mesma imagem (especialmente quando apenas um deles está apresentando os sintomas), é sempre um ponto de partida interessante para comparar os dois sistemas para determinar as variações entre eles. Executando ferramentas que discutiremos abaixo pode freqüentemente ajudá muito mais fácil de identificar o processo de problema.

Se você acha sobre recursos no seu computador, simplistically há quatro tipos de recursos que podem afetar a capacidade de geral para a realização do trabalho:

1. Memória (RAM)

2. CPU

3. E/S de disco

4. E/S de rede

Para ajudá-lo a executar esse processo, vou usar um pouco o Sysinternals Suite. Se houver, let’s começar. Se não quiser — obtê-lo a partir da página de download do Windows Sysinternals .

Antes de começarmos, let’s obtém uma fundação do que está sendo executado no seu computador. Com as ferramentas do Sysinternals, existem duas opções. Ambos dependem de como você deseja exibir as informações e onde você está em relação ao computador que você precise diagnosticar.

Processo pelo processo

A primeira opção é o Process Explorer (procexp.exe), que é muito distante e mais forte das duas opções, mas ela só é executado localmente (em comparação com a próxima ferramenta, como veremos daqui a pouco). O Process Explorer pode ser melhor pensar como um eficiente substituto para o Gerenciador de tarefas do Windows. Permite que você veja rapidamente todos os processos em execução no seu sistema detalhadamente considerável — se elas são sua ou que outro logon-usuário (se você estiver usando o recurso Troca rápida de usuário ou o Terminal Services/Remote Desktop).

Antes de começar, certifique-se de que está executando Procexp com todos os processos visíveis por re-launching-lo usando o arquivo | Mostrar detalhes para todos os processos (que solicitará que você se você estiver executando o Windows com o UAC habilitado).

Classificando a coluna de processo, você pode especificar se os processos devem ser listados em ordem crescente ou decrescente, ou em uma árvore de processos com base em qual aplicativo iniciado a cada um deles. Lembre-se de que processos podem iniciar, iniciar outro aplicativo e sair, deixando uma falsa impressão, a qual processo realmente iniciado o filho.

A maneira mais fácil de ver qual processo está levando mais tempo de CPU está passando o mouse sobre o gráfico da CPU. Ela mostrará a você qual processo é. Em seguida, você pode usar Ctrl + F para localizar o processo.

Outra pergunta, recebo uma mensagem solicitando o tempo todo é “ o que é o processo ocioso do sistema e por que está usando todos os da CPU do meu computador ”? Ele é não usá-lo. Esse processo pode melhor ser pensado como um espaço reservado para tempo de CPU não utilizado. Não é mesmo realmente um processo em si. Se você não tiver, talvez queira ler de “ Windows Internals ” (Microsoft Press, 2009) para uma base sólida nos fundamentos internos do Windows.

Há duas opções disponíveis:

  • Modo de exibição | Atualizar velocidade lhe permite alterar a freqüência com que o Procexp altera a interface do usuário para refletir as atualizações (que são relativamente instantâneas).
  • Se você observar o processo de utilização da CPU alta pico à parte superior, em seguida, pressione a barra de espaços. Procexp deixará de atualizar a interface do usuário inteiramente, permitindo que você consulte o processo suspeito.

Você pode expor o altos consumo de memória processos muito facilmente também dessa maneira. Se você não reconhece o processo pelo nome (como você pode não se trata de malware), o processo de seleção e clicando em Process | janela irá identificar o aplicativo se ele tiver qualquer interface do usuário exposto. Nenhuma interface do usuário de ter serviços e aplicativos podem decidir não (como alguns aplicativos legados que realmente devem ser serviços tendem a fazer).

O serviço e proteger

Esse processo de diagnóstico funciona bem para aplicativos executados no contexto de usuário, mas o que sobre serviços ou drivers? Serviços podem ser mais problemáticos para isolar, pois há uma tendência de crescimento para executá-las em um “ processo compartilhado ” para salvar os recursos e aumentar a segurança.

O Windows oferece um método interno para fazer isso, usando um serviço chamado Svchost. exe (você observará algumas delas em qualquer início de sistema do Windows com o Windows XP). Muitos deles são serviços internos do Windows, mas de terceiros pode usar essa infra-estrutura também. Na verdade, há uma tendência crescente de malware usam svchost como um host.

Você ainda pode identificar instâncias do svchost que estão causando a alta utilização da CPU ou memória RAM. Clique duas vezes em cada instância, selecione a guia Serviços e você pode exibir as DLLs em execução nesse processo compartilhado e ver qual delas, na verdade, está consumindo os recursos.

Por fim, e quanto a drivers? Não ignore drivers como uma fonte potencial de degradação do desempenho do sistema. Eles concluem as tarefas de nível mais baixo no Windows. Geralmente, eles podem causar problemas.

Drivers são geralmente designados assistindo a outros processos como antimalware ou assistindo a notificações de arquivo ou diretório como o antimalware ou sincronização de duplicação. É muito fácil escrever um driver com comportamento inadequado ou um driver misbehaves somente na presença de outro driver. Que é pior, porque ele é mais difícil de diagnosticar.

Assim, que drivers mora? Como os serviços hospedados em Svchost. exe, drivers também executar um processo compartilhado. Se você clicar duas vezes em que o processo do sistema e clique na guia de threads, você pode ver a pilha do thread que ele foi carregado. Você verá muitos drivers (arquivos *.sys) carregados aqui.

Como com o modo de exibição processo individual, você pode classificá-los pelo tempo de CPU. Isso irá expor threads que um determinado driver está em execução, que estão dando um tempo considerável de CPU. Você pode pesquisar seu sistema para o driver, pesquisar na Internet ou entre em contato com o fornecedor para saber se elas estiverem cientes do problema ou se não houver uma versão mais recente do software de driver.

Se você estiver se conectando remotamente ao computador que você deseja diagnosticar, você pode se conectar por meio da rede, mas você não pode se conectar com o TS/Remote Desktop. Em seguida, é PsTools a salvação. Você encontrará PsList úteis aqui. O PsList, como o nome seria implica, é uma linha de comando PsTool (incluído o Sysinternals Suite) que lista todos os processos em execução em um computador local ou remoto.

Como o PsTools, você poderá executá-lo remotamente por meio do File and Printer Sharing, desde que ele está habilitado e tiver as credenciais como membro do grupo Administradores local. Assim como acontece com Procexp, você pode ver a lista de todos os processos em execução no momento em que você executou o PsList. Você encontrará as informações que fornece PsTools são mais limitadas, mas em casos como esse onde você está diagnosticando um processo de problema, geralmente há informações suficientes para concluir a tarefa.

Para executar o PsList contra uma máquina local, basta executar PsList.exe. O comutador – t permite exibir em uma exibição em árvore semelhante ao Procexp. Adicionando – s (um intervalo em segundos) será autopoll no intervalo que você definir. Este é o oposto do Procexp, onde você pode optar por reduzir a velocidade de atualização do padrão. Todo o PsTools tem uso remoto semelhante como mostrado aqui:

PsTool.exe \\systemname -u username –p password

Você pode usar Procexp para eliminar os processos em uma máquina local (mas tenha cuidado — matando processos aleatórios pode causar a falha de software ou a corrupção do sistema), mas não o PsList. Você também pode usar PsKill para finalizar um processo por identificação de processo (PID) ou pelo nome (vai matar todos os processos com o mesmo nome), até mesmo remotamente.

Diagnosticando problemas de e/S de disco (principalmente os aplicativos fazendo com que o seu sistema constantemente buscar dados no disco rígido) é complexo e em alguns casos pode ser difícil de diagnosticar completamente. No entanto, a executar o Process Monitor (Procmon.exe) muitas vezes rapidamente pode expor serviços ou aplicativos lendo ou gravando no disco rígido com muita freqüência. Embora muitos aplicativos podem ter um motivo legítimo para o consumo de disco e/S, como utilitários de pesquisa local, a realidade é que muita e/S de disco é desperdiçado em tarefas repetitivas e possivelmente poderiam ser manipuladas de formas melhores.

Quando você identificou o processo que se pareça como se ele é ler ou gravar com muita freqüência, você pode interromper a execução Procmon, alternar novamente para Procexp e use Ctrl + F para localizar o mesmo processo. Certifique-se de que se estiver procurando pelo nome, para verificar se ele é a mesma identificação. Alguns processos, como, por exemplo, Explorer. exe e Svchost. exe, terá várias instâncias. Depois que você identificou o e/S de disco processo consumindo, pode entrar em contato com o fornecedor e ver se há qualquer atualização.

Quando se trata de comunicação de rede, o TCPView é outra ferramenta da Sysinternals para determinar os processos que se conectam à rede (entrada ou saída), incluindo informações de porta. Você também pode usar Procmon, conforme será mostrada também a conectividade de rede. Mais importante, ele irá expor altas taxas de comunicação da rede em tempo real à medida que eles ocorrem. Da mesma forma que o disco e/S, hopping sobre a Procexp permitirá que você execute o diagnóstico mais profundo, enquanto ainda vejo a atividade de rede (guia de TCP/IP para cada processo).

Posicione pé independente

Esses métodos dependem de você ter alguma conectividade com o sistema, mas e se você não? E se ele é sistema do seu irmão e ela mora milhares de quilômetros de distância? É realmente mais fácil do que você imagina. Primeiro, têm a pessoa remota baixar as ferramentas Sysinternals. Eles são todos fáceis de usar, especialmente a maneira que estará usando-os.

Depois que ela possui as ferramentas baixadas, tê-la AutoRuns de executar. Isso permite que ela lhe fornecer um instantâneo de todos os executáveis em execução no seu sistema, na forma de um arquivo *.arn — um tipo de arquivo de Mark Russinovich explicitamente desenvolvido para essa tarefa, para habilitar a análise remoto de autostarts.

Com ela efetuado logon como administrador, tenha ela gerar o arquivo ARN para você, clicando em arquivo | Salvar. Por que estamos capturar arquivo ARN? Essa é a melhor maneira de determinar o que está iniciando o processo.

Se a conexão local ou remotamente, estiver descobrir exatamente o que está iniciando a cada aplicativo e quais serviços ou outros “ AutoStarts ” estão em execução no computador que você pode não conhecer. AutoRuns possui algumas categorias de itens que estão autostarted. O mais interessante para este exercício é provavelmente o logon, serviços e drivers de itens.

Depois que o AutoRuns completamente foi preenchida com a interface do usuário, selecione a entrada | Ocultar Microsoft e entradas do Windows. Clique em F5 e você verá as entradas não-Microsoft. Isso geralmente é uma boa maneira de iniciar o diagnóstico de suspeita de serviços ou aplicativos de um sistema remoto.

Em seguida, tenha ela executar Procexp para você. Executa isso como um administrador também e selecione Arquivo | Salvar como para salvar o modo de exibição de árvore detalhadas como um arquivo de texto.

Faça com que ela execute Procmon por um período de tempo, enquanto o sistema está “ sintomáticos ”. Na verdade, você está procurando em menos de cinco minutos aqui para o diagnóstico.

Finalmente, tenha ela enviar-lhe o ARN, árvore de processos e arquivos de log Procmon. O arquivo Procmon sem dúvida será muito grande para ser enviado via email. Use uma ferramenta de transferência de arquivo compartilhado, como a pasta de recados.

Depois de ter os arquivos, você tem a maioria das informações usadas para diagnosticar a degradação de desempenho local. Levando os logs do Procmon (que fornecerá a maioria das informações e filtrá-la para baixo a maneira mais fácil possível) e árvore de processos da Procexp, você geralmente encontra o culpado tão facilmente em um cenário de remoto como localmente.

Não é impossível diagnosticar aplicativos problemáticos no Windows. Com as ferramentas do Sysinternals, as Ferramentas de depuração para Windows de e alguma prática, você irá em breve ser diagnóstico de problemas de profundidade dentro do Windows. Você vai economizar tempo, a energia e até mesmo sua sanidade.

Wes Miller

Wes Miller é o Diretor de gerenciamento de produtos CoreTrace (CoreTrace.com) em Austin, Texas. Já trabalhou na Winternals Software e como gerente de programa da Microsoft. Pode ser contactado Miller de wm@getwired.com .

Conteúdo relacionado