Por que o chkdsk está usando 90% da minha RAM?

24

Quando construí meu novo computador, dei meu antigo para meus pais que precisavam urgentemente de uma atualização, depois de limpar tudo, é claro, deixando apenas o sistema operacional e alguns programas. Funcionou bem por um tempo, antes de começar a falhar ao carregar o Windows (apenas travava). Depois de investigar esse comportamento e perguntar, eu decidi que poderia ser um disco rígido com falha, então eu o peguei e o liguei ao meu computador para executar o chkdsk nele (inicialmente fiz isso para tentar inicializar o disco, mas como meu computador está configurado com RAID e a instalação do Windows não possui drivers RAID, iniciei minha instalação do Windows 7 e executei o chkdsk).

Eu fiz isso na última noite de sexta-feira e está em funcionamento desde então (o que leva cerca de 6 dias até agora). Não estou surpreso, pois pode ser lento, é um disco rígido de 1 TB e um disco "verde" da Western Digital, por isso é provável que esteja rodando a uma RPM mais lenta. Eu vejo que ele progride, então eu sei que não está preso, e a luz do disco rígido está permanentemente acesa no meu computador, que eu não usei para muitas outras coisas, além de compartilhar arquivos pela rede e pelo light web enquanto navega.

Meu computador possui 16 GB de RAM e está executando o Windows 7 Pro x64. Por que o chkdsk ocupa 90% disso? Ele mantém esse nível constante e dura dias, variando entre 90% e 91%, pois libera e enche a memória constantemente. O uso da CPU é muito baixo (o que eu espero, pois essa é uma operação muito pesada de E / S).

Parece que nada de ruim está acontecendo, mas estou curioso. Por que o chkdsk está ocupando tanta memória? Estou pelo menos feliz que parece estar fazendo isso de maneira inteligente, pois mantém um nível alto sem começar a debulhar o HDD principal por paginação.

Alguém sabe? Isso é normal?

Ben Richards
fonte

Respostas:

19

Se estiver em execução há vários dias, presumo que você tenha corrido chkdskcom a /rbandeira.

No Windows 7, usar tanta memória RAM é normal. Fonte

A equipe do sistema de arquivos imediatamente começou a analisar o problema. [...] [F] a partir da perspectiva deles, o uso de memória foi planejado e foi uma alteração específica do Windows 7 para esse cenário (o sinalizador / r pega um bloqueio exclusivo e repara um disco e, portanto, nossa suposição é que você realmente gostaria o disco a ser consertado antes de fazer mais coisas na máquina [...]).

afrazier
fonte
Estou usando a GUI, mas marquei a caixa de seleção para procurar e tentar reparar setores defeituosos, o que é equivalente. Obrigado pelo link!
Ben Richards
Não é apenas o Windows 7; O Windows 2008 R2 também entra nesse estado inimaginável. Eu abro um único disco para verificação e o chkdsk absolutamente precisava consumir 20 GB de RAM para esse disco único e atrasar o restante do servidor. Isso não é um erro, 20 GB de memória.
icelava
@ icelava: Considerando que 2008 R2 é uma continuação da base de código do Windows 7, isso não é surpreendente. Provavelmente, isso também afetará todos os sistemas operacionais mais recentes.
afrazier
Verifiquei meu disco NTFS externo de 2 TB sem as opções / r (ou qualquer outra) e ele ainda consumia quase toda a RAM (tenho 5 GB). Windows 7 de 64 bits.
David Balažic 30/08/2012
Interessante. Acabei de executá-lo em um disco de 1,5 TB e nem chegou a 1 GB em um sistema de 8 GB. Eu esperaria que uma verificação somente leitura usasse apenas a quantidade de RAM necessária.
afrazier
8

No momento, estou executando CHKDSK /ruma unidade Seagate de 1 TB SATA de 3 GBs - Windows 7 x64 Ultimate, o CHKDSK está consumindo 31 GB da minha RAM de 32 GB. No entanto, se você carregar outro programa como o After Effects, o CHKDSK libera a RAM para permitir que o programa seja executado muito bem.

Richard
fonte
5

Se você tiver mais de 4 GB de RAM, poderá limitar o uso de chkdsk RAM para 4 GB usando a versão de 32 bits do chkdsk. Pode ser encontrado em C: \ Windows \ SysWow64 \ chkdsk.exe

Isso pode ser uma vantagem, porque outros programas já carregados não serão trocados para o disco e o cache do disco não será esvaziado. Portanto, executar o chkdsk em paralelo com outros programas não prejudica o desempenho dos outros programas, exceto se eles usarem o mesmo disco.

informatorius
fonte
Ótima dica! Minha máquina de desenvolvimento possui 48 GB por um motivo e notei uma grande queda no desempenho com novos processos (e como desenvolvedor, novos processos são iniciados com muita, muita frequência). Devido à execução chkdskem segundo plano, consumindo quase tudo. Isso salvou o dia;)
Abel
3

Como já publicado, isso ocorre por design no Windows 7. O "design" é corrigido a partir do Windows 8 e agora o chkdsk usa menos RAM. Se você quiser a maneira Win7 usar toda a memória RAM para melhorar a execução de desempenho chkdskcom o parâmetro /perf.

/ perf NTFS apenas: (deve ser usado com "/ scan") Usa mais recursos do sistema para concluir uma verificação o mais rápido possível. Isso pode ter um impacto negativo no desempenho de outras tarefas em execução no sistema.

magicandre1981
fonte
2

Parece ser por design. RAM não utilizada é um recurso desperdiçado. Não há razão alguma para minimizar o uso de memória RAM e manter a RAM na "reserva" quando ela pode ser reutilizada quase instantaneamente conforme necessário. O Windows 8 usará o ram para qualquer coisa, em vez de deixá-lo ocioso. Talvez essa filosofia tenha começado no Windows 7 e tenha envolvido o CHKDSK. Não sei qual o benefício que o CHKDSK obtém com o alto uso de RAM, mas estou disposto a acreditar que há um benefício. Aprendi há muito tempo que, só porque não entendo, não significa que não haja uma boa razão. Desde que o uso de memória diminua à medida que outros programas precisam de memória, isso não é um problema.

Nathan Brazil
fonte
2
O Ram não utilizado é desperdiçado apenas até que seja usado por algum outro programa que precise dele. Se você consome toda a RAM e, em seguida, deseja iniciar outro programa, acabou de aumentar o tempo de carregamento em ordens de grandeza, porque primeiro é necessário descarregar todas essas coisas na memória RAM para o disco, o que é dolorosamente lento. Ninguém teria notado esse problema se isso não causasse um problema. Ter sempre RAM disponível para iniciar novos processos é uma boa ideia. Eu gostaria de saber quem é a idéia brilhante de consumir toda a RAM.
horta 08/06
2
Alguns programas, como o VMware, recusam iniciar VMs, a menos que haja uma quantidade suficiente de RAM disponível (ele não tenta consumir RAM, simplesmente desiste sem tentar, o que significa que o chkdsk nem sequer tem a oportunidade de lançar). Matar o chkdsk tem efeitos potencialmente prejudiciais; portanto, suas escolhas são: 1) aguardar um período não razoável ou 2) arriscar a perda de dados na unidade que está sendo verificada. Yay Microsoft.
aggregate1166877
0

É um bug. Eu tive esse problema na minha máquina usando muita memória, e isso é com 8 GB de RAM e um arquivo de troca de 4 GB. Não tem como isso estar acontecendo. Eles podem chamá-lo de 'design', mas isso não faz sentido. É claramente um bug. Não existe uma única base válida para um programa chkdsk armazenar tantos dados em memória ram.

metamorfose
fonte
2
O formato de perguntas e respostas do site reserva respostas para soluções para a pergunta. Este post é realmente um comentário e não uma resposta. Você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post . As não respostas tendem a atrair votos negativos e estão sujeitas a exclusão.
fixer1234
Na minha opinião, é uma resposta à pergunta que o Cartaz fez e, portanto, é uma solução, não um comentário.
metamorfose