Por que meus navegadores da Web fazem com que todo o meu computador fique travado?

3

Eu observei isso acontecer muitas vezes: um único programa não está respondendo e todos os outros processos estão sendo executados corretamente e, então, todo o sistema trava.

Acho que isso acontece porque o processo que não está respondendo está usando todos os recursos disponíveis e nenhum é deixado para os outros processos.

Mas isso não deveria ser apenas para grandes programas que levariam toda a memória (RAM) disponível?

Por que isso acontece quando eu estou apenas lançando o Firefox ou o Internet Explorer, que parecem ser programas menores?

Existe alguma maneira de impedir a suspensão dos programas e do computador?

    
por avirk 24.08.2011 / 17:22

4 respostas

3

Hangs são geralmente não causados apenas pelo uso de recursos.

Não estamos falando de congelamentos curtos ou lentidão aqui, estamos falando de um travamento real por mais de alguns segundos . O uso da memória geralmente não é a principal causa disso, porque o Windows 7 trava os programas que estão usando muita memória. A lixeira de disco geralmente não é a principal causa disso, pois essas solicitações são assíncronas e certas partes necessárias são mantidas na memória.

Então, você precisaria realmente precisar de um computador antigo que deixasse a lentidão parecer um travamento . Ou seja um porco de recurso agressivo, mas então você poderia ter esperado isto com antecedência; trancas que acontecem com o uso normal geralmente não são nenhuma das listadas acima ...

Hangs geralmente são causados por drivers.

Imagine ter 8 GB, um processador Octa Core e um SSD RAID. Estamos propensos a trava agora? Não.

Drivers (e especialmente os de Rede) são geralmente os principais culpados que resultam em um travamento porque devido a um bug neles eles estão esperando por uma determinada ação que deve ser executada imediatamente para o tempo limite. Mesmo para trechos curtos para os quais você não vê nenhum uso de recursos, o DPC Latency Checker e os mais detalhados LatencyMon faça um excelente trabalho para descobrir quais Deferred As chamadas de procedimento pelos seus drivers são lentas.

O problema aqui é que as pessoas não sabem como solucionar isso, eu diria que você pode analisar qualquer problema de desempenho no Windows com este post explicando XPerf . Mas as pessoas geralmente ficam com o Monitor de Recursos na melhor das hipóteses, o que não dá a nenhum detalhe o máximo de detalhes como ferramentas como Process Explorer, Process Monitor e XPerf ...

Deixe-me dar um exemplo de como um problema típico é resolvido.

  • Meu irmão reclamou que fechar uma das guias na internet causou um congelamento de 10 segundos.

  • Ele não conseguiu mover o mouse após fechar a guia.

  • Eu usei XPerf do Windows SDK para analisar o desempenho de seu sistema em um nível muito baixo.

    • Iniciei o rastreamento e verifiquei o máximo possível de informações.

    • Foi até o navegador, pediu que ele navegasse por algum tempo e me ligou quando o problema ocorreu.

    • Imediatamente interrompeu o rastreamento.

  • Fechar a guia do Facebook causou esse comportamento. Fechar uma guia do Google não.

  • Houve um pico visível no driver de rede.

    • Em uma análise mais detalhada, isso ocorreu devido ao excesso de conexões sendo fechadas simultaneamente.

      Isso faz sentido, o Facebook faz muitas chamadas AJAX assíncronas.

    • Quando uma conexão é fechada, o driver deve enviar um pacote FIN ou RST para o destino. Pode ter sido que esperar pela confirmação para finalizar ou redefinir a conexão foi mal implementado ...

  • Atualizado o driver de rede, problema resolvido.

por 24.08.2011 / 19:16
2

Acho que o que você está falando aqui é chamado se debatendo e, embora possa ser causado por muitos programas que tentam executar simultaneamente, é mais comum que vários programas tentem acessar um disco rígido de uma só vez.

Ao carregar um programa, ele geralmente tentará carregar todos os outros módulos necessários. Todos esses arquivos vêm do seu armazenamento principal, um disco rígido. Durante esse período, o computador será executado e carregado muito mais rapidamente se o programa em questão tiver acesso total ao disco rígido.

Se não, e você tentar fazer mais de uma coisa por vez, o sistema operacional priorizará as solicitações de E / S com base no processo em execução no momento (e, em seguida, isso entrará no scheduler de processo ). No entanto, como duas coisas não podem acessar um disco rígido de uma vez, você descobre que a taxa de transferência do computador diminui drasticamente ao tentar concluir a solicitação de E / S de um processo, depois a outra e a quarta e a quarta.

Isso não só aumenta o desgaste da própria unidade, como também afeta significativamente o desempenho do computador. Quase todos os meios de armazenamento atingem sua velocidade máxima fazendo uma coisa de cada vez (já que você só pode ler / gravar em um único setor de uma vez).

Agora, uma coisa semelhante pode acontecer quando você fica sem RAM, mas por um motivo diferente. Quando você ficar sem memória física, o sistema operacional tentará gravar algumas das páginas de RAM em um disco rígido. Todos os discos rígidos (SSD ou mecânicos) são muito mais lentos que a RAM, por isso você sempre quer evitar coisas de paginação em um disco rígido.

Se o sistema operacional continuar alternando o agendador de processos entre dois processos, cada um sendo paginado em sequência para o disco rígido, o computador começa a agitar. Isso ocorre porque o sistema operacional executa um programa por um pequeno período de tempo e, em seguida, o outro (quanto tempo ou com que freqüência depende de qual método de agendamento o SO usa). Se os processos forem muito grandes para caber na RAM, eles podem ser constantemente removidos / lidos do arquivo de troca / troca de páginas, causando uma redução significativa no desempenho.

    
por 24.08.2011 / 17:40
2

O Firefox e o Internet Explorer e outros navegadores da web são provavelmente alguns dos "maiores" programas em seu computador, no que diz respeito ao uso de recursos.

Enquanto outros programas podem ocupar mais espaço no disco rígido, os navegadores modernos geralmente começam com mais de 100MB de memória do sistema (RAM) e sobem muito rapidamente a partir daí. Uma sessão do Firefox com 20 abas abertas por dias a fio normalmente estará usando mais de 1Gigabyte de memória do sistema.

Para fins de comparação, o Microsoft Excel, que ocupa centenas de megabytes de espaço no disco rígido, usa apenas 15 megabytes de memória, independentemente do tamanho da planilha aberta.

A menos que você esteja executando um sofisticado programa de áudio / vídeo ou um banco de dados massivo, os navegadores da web provavelmente serão os programas com mais recursos intensivos que você executa.

Em relação a falhas: seu sistema normalmente trava porque encontrou um erro, não porque ficou sem recursos.

Por exemplo, se você tiver um chip de memória com defeito e o Firefox ou o Internet Explorer, durante a abertura, tente resolver essa memória ruim, pois é provável que o computador inteiro bloqueie e falhe.

No entanto, o Windows é bastante inteligente e deve ser capaz de informar se uma determinada peça de hardware está causando as falhas.

Eu recomendaria testar a memória do seu computador usando uma ferramenta como Memtest x86 ou similar se você sofrer frequentes falhas inexplicadas.

Outra possibilidade é um driver. Os drivers são talvez a causa mais comum de falhas no sistema operacional e, se um programa tentar usar um recurso controlado por um driver defeituoso, o computador inteiro irá travar facilmente.

A atualização dos seus drivers é uma boa ideia ao rastrear possíveis problemas. Enquanto você está nisso, você deve certificar-se de que seus programas e sistema operacional estão totalmente atualizados, pois muitos patches contêm atualizações de estabilidade que resolvem problemas comuns de travamento.

    
por 24.08.2011 / 17:46
0

O Firefox roda flash em um processo separado.

Geralmente eu mato o processo de flash através do gerenciador de tarefas, e o firefox é desbloqueado.

Nos plugins, configurei o flash para "Ask to activate". Isso impede que os vídeos do youtube iniciem quando eu restaurar minha sessão anterior do firefox.

Uma alternativa para "pedir para ativar" são os complementos do bloco Flash para o firefox.

De qualquer forma, em algum momento, tenho que reiniciar o Windows.

    
por 09.04.2015 / 13:43