Perché chkdsk utilizza il 90% della mia RAM?


24

Quando ho costruito il mio nuovo computer, ho dato il mio vecchio ai miei genitori che avevano un disperato bisogno di un aggiornamento, dopo aver ripulito tutto, ovviamente, lasciando solo il sistema operativo e alcuni programmi. Ha funzionato bene per un po ', prima che non riuscisse a caricare Windows (si sarebbe semplicemente bloccato). Dopo aver indagato su questo comportamento e aver chiesto in giro, ho deciso che potrebbe essere un disco rigido guasto, quindi l'ho estratto e collegato al mio computer per eseguire chkdsk su di esso (inizialmente ho fatto questo per provare ad avviare il disco rigido, ma dal momento che il mio computer è configurato con RAID e che l'installazione di Windows non aveva driver RAID, ho appena avviato la mia installazione di Windows 7 e ho eseguito chkdsk su di esso).

L'ho fatto lo scorso venerdì sera, e da allora è attivo (il che lo rende circa 6 giorni finora). Non sono sorpreso dal momento che può essere lento, è un disco rigido da 1 TB e uno "verde" di Western Digital, quindi è probabile che funzioni comunque a un RPM più lento. Vedo che fa progressi, quindi so che non è bloccato e la luce del disco rigido è stata costantemente accesa, sul mio computer, che non ho usato per nient'altro, oltre alla condivisione di file in rete e Web leggero navigazione, mentre questo è in esecuzione.

Il mio computer ha 16 GB di RAM e esegue Windows 7 Pro x64. Perché chkdsk ne occupa il 90%? Sta mantenendo quel livello costante, ed è stato per giorni, compreso tra il 90% e il 91%, in quanto libera e riempie costantemente la memoria. L'utilizzo della CPU è molto basso (cosa che mi aspetto poiché si tratta di un'operazione I / O molto pesante).

Non sembra che stia succedendo niente di male, ma sono curioso. Perché chkdsk sta occupando così tanta memoria? Sono almeno contento che sembra farlo in modo intelligente, poiché mantiene un livello elevato senza iniziare a schiacciare l'HDD principale tramite il paging.

Qualcuno sa? È normale?

Risposte:


19

Se è in esecuzione da diversi giorni, presumo che tu abbia corso chkdskcon la /rbandiera.

Con Windows 7, l'utilizzo di tanta RAM è normale. fonte

Il team del file system ha immediatamente iniziato a esaminare il problema. [...] [F] dalla loro prospettiva l'utilizzo della memoria era di progettazione ed era una specifica modifica di Windows 7 per questo scenario (il flag / r prende un blocco esclusivo e ripara un disco e quindi il nostro presupposto è che ti piacerebbe davvero il disco da riparare prima di fare più cose sulla macchina [...]).


Sto usando la GUI, ma ho selezionato la casella di controllo per cercare e tentare di riparare settori danneggiati, che è l'equivalente. Grazie per il link!
Ben Richards,

Non è solo Windows 7; Anche Windows 2008 R2 entra in questo stato inimmaginabile. Metto giù un singolo disco per il controllo, e chkdsk ha assolutamente bisogno di consumare 20 GB di RAM per quel singolo disco e rallentare il resto del server. Non è un errore, 20 GB di memoria.
Icelava

@icelava: Considerando che 2008 R2 è una continuazione della base di codice di Windows 7, non è sorprendente. Ciò probabilmente influirà anche su tutti i nuovi sistemi operativi.
Afrazier

Ho controllato il mio disco NTFS esterno da 2 TB senza le opzioni / r (o qualsiasi altro) e ha comunque consumato quasi tutta la RAM (ho 5 GB). Windows 7 a 64 bit.
David Balažic,

Interessante. L'ho appena eseguito su un disco da 1,5 TB e non è nemmeno riuscito a raggiungere 1 GB su un sistema da 8 GB. Mi aspetto che un controllo di sola lettura utilizzi solo la quantità di RAM necessaria.
Afrazier

8

Al momento sono in esecuzione CHKDSK /rsu un'unità Seagate da 1 TB SATA da 3 GB: Windows 7 x64 Ultimate, CHKDSK consuma 31 GB della mia RAM da 32 GB. Tuttavia, se carichi un altro programma come After Effects, CHKDSK rilascia RAM per consentire al programma di funzionare abbastanza bene.


5

Se hai più di 4 GB di RAM, puoi limitare l'utilizzo della RAM di chkdsk a 4 GB utilizzando la versione di 32 bit di chkdsk. Si trova in C: \ Windows \ SysWow64 \ chkdsk.exe

Questo può essere un vantaggio, perché altri programmi già caricati non verranno scambiati su disco e la cache del disco non verrà svuotata. Quindi l'esecuzione di chkdsk in parallelo con altri programmi non influisce sulle prestazioni degli altri programmi, tranne se usano lo stesso disco.


Ottimo consiglio! La mia macchina di sviluppo ha 48 GB per un motivo e ho notato un forte calo delle prestazioni con nuovi processi (e come sviluppatore, i nuovi processi vengono avviati molto, molto spesso). A causa dell'esecuzione chkdskin background, consumando quasi tutto. Questo salvò il giorno;)
Abel,

3

Come già pubblicato, questo è di progettazione in Windows 7. Il "design" è stato risolto a partire da Windows 8 e ora chkdsk utilizza meno RAM. Se si desidera che il modo Win7 utilizzi tutta la RAM per migliorare le prestazioni eseguite chkdskcon il parametro /perf.

/ perf Solo NTFS: (deve essere utilizzato con "/ scan") Utilizza più risorse di sistema per completare una scansione il più rapidamente possibile. Ciò può avere un impatto negativo sulle prestazioni su altre attività in esecuzione sul sistema.


2

Questo sembra essere di progettazione. La RAM inutilizzata è una risorsa sprecata. Non vi è alcun motivo per minimizzare l'uso della RAM e mantenere la RAM in "riserva" quando può essere quasi immediatamente riproposta secondo necessità. Windows 8 utilizzerà ram per qualsiasi cosa piuttosto che lasciarlo inattivo. Forse questa filosofia è iniziata in Windows 7 e ha coinvolto CHKDSK. Non so quali benefici CHKDSK ottenga dall'uso elevato della RAM, ma sono disposto a credere che ci sia un vantaggio. Ho imparato molto tempo fa che solo perché non capisco, non significa che non ci sia una buona ragione. Fintanto che il suo utilizzo della memoria diminuisce man mano che altri programmi necessitano di memoria, questo non è un problema.


2
La RAM inutilizzata viene sprecata solo fino a quando non viene utilizzata da qualche altro programma che ne ha bisogno. Se consumi tutta la RAM e vuoi avviare un altro programma, hai appena aumentato il tempo di caricamento in base a ordini di grandezza perché prima devi scaricare tutta quella roba in ram sul disco che è dolorosamente lento. Nessuno avrebbe notato questo problema se ciò non ha causato un problema. Avere sempre la RAM in riserva per l'avvio di nuovi processi è una buona idea. Mi piacerebbe sapere chi ha la geniale idea di consumare tutta la RAM.
horta,

2
Alcuni programmi, come VMware, rifiuteranno di avviare VM a meno che non sia disponibile una quantità sufficiente di RAM (non tenta di consumare RAM, si arrende semplicemente senza provare, il che significa che chkdsk non ha nemmeno l'opportunità di rilasciarlo). L'uccisione di chkdsk ha effetti potenzialmente dannosi, quindi le tue scelte sono 1) attendere un tempo irragionevole o 2) rischiare la perdita di dati sull'unità che viene controllata. Yay Microsoft.
aggregate1166877,

0

È un bug. Ho avuto questo crash sulla mia macchina usando troppa memoria, e questo è con 8 GB di RAM e un file di scambio di 4 GB. Non c'è modo che dovrebbe succedere. Possono chiamarlo "di progettazione", ma non ha senso. È chiaramente un bug. Non esiste una sola base valida per un programma chkdsk per archiviare molti dati in ram.


2
Il formato di domande e risposte del sito riserva le risposte per le soluzioni alla domanda. Questo post è davvero un commento piuttosto che una risposta. Puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post . Le mancate risposte tendono ad attrarre voti negativi e sono soggette a cancellazione.
Fixer 1234

A mio avviso, è una risposta alla domanda posta dal Poster ed è quindi una soluzione, non un commento.
metamorfosi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.