¿Por qué chkdsk usa el 90% de mi RAM?

24

Cuando construí mi nueva computadora, le di la vieja a mis padres que tenían una gran necesidad de una actualización, después de limpiar todo, por supuesto, dejando solo el sistema operativo y algunos programas. Funcionó bien por un tiempo, antes de que comenzara a fallar al cargar Windows (simplemente se atascaría). Después de investigar este comportamiento y preguntar, decidí que podría ser un disco duro defectuoso, así que lo saqué y lo conecté a mi propia computadora para ejecutar chkdsk (inicialmente hice esto para intentar iniciar el disco, pero Dado que mi computadora está configurada con RAID y que la instalación de Windows no tenía controladores RAID, simplemente inicié mi propia instalación de Windows 7 y ejecuté chkdsk en ella).

Lo hice el viernes pasado por la noche, y ha estado funcionando desde entonces (lo que hace unos 6 días hasta ahora). No me sorprende, ya que puede ser lento, es un disco duro de 1 TB y uno occidental "verde", por lo que es probable que funcione a un RPM más lento de todos modos. Veo que avanza, así que sé que no está atascado, y la luz del disco duro ha estado encendida perpetuamente en mi computadora, que no he usado para nada más que compartir archivos a través de la red y la web ligera. navegando, mientras esto se ha estado ejecutando.

Mi computadora tiene 16 GB de RAM y ejecuta Windows 7 Pro x64. ¿Por qué chkdsk ocupa el 90% de eso? Mantiene ese nivel estable, y lo ha estado durante días, yendo entre 90% y 91%, ya que libera y llena la memoria constantemente. El uso de la CPU es muy bajo (lo cual espero ya que esta es una operación muy pesada de E / S).

No parece que esté sucediendo nada malo, pero tengo curiosidad. ¿Por qué chkdsk ocupa tanta memoria? Al menos me alegro de que parece estar haciendo esto de manera inteligente, ya que mantiene un alto nivel sin comenzar a golpear el HDD principal por paginación.

¿Alguien sabe? ¿Esto es normal?

Ben Richards
fuente

Respuestas:

19

Si ha estado funcionando durante varios días, supongo que corriste chkdskcon la /rbandera.

Con Windows 7, usar tanta RAM es normal. Fuente

El equipo del sistema de archivos inmediatamente comenzó a investigar el problema. [...] [Desde su perspectiva, el uso de la memoria fue por diseño y fue un cambio específico de Windows 7 para este escenario (el indicador / r toma un bloqueo exclusivo y repara un disco, por lo que suponemos que realmente le gustaría el disco se reparará antes de hacer más cosas en la máquina [...]).

afrazier
fuente
Estoy usando la GUI, pero marqué la casilla de verificación para buscar e intentar reparar sectores defectuosos, que es el equivalente. Gracias por el enlace!
Ben Richards
No es solo Windows 7; Windows 2008 R2 también entra en este estado inimaginable. Me derribar un solo disco para comprobar, y ChkDsk absolutamente necesaria a consumir de 20 GB de RAM para que solo disco y ralentizar el resto del servidor mínimo. Eso no es un error, 20 GB de memoria.
icelava
@icelava: Teniendo en cuenta que 2008 R2 es una continuación de la base de código de Windows 7, eso no es sorprendente. Esto probablemente afectará también a todos los sistemas operativos más nuevos.
Afrazier
Revisé mi disco NTFS externo de 2TB sin los modificadores / r (o cualquier otro) y todavía consumía casi toda la RAM (tengo 5 GB). Windows 7 de 64 bits.
David Balažic
Interesante. Simplemente lo ejecuté contra un disco de 1.5 TB y ni siquiera llegó a 1 GB en un sistema de 8 GB. Esperaría que una verificación de solo lectura use solo la RAM necesaria.
Afrazier
8

En este momento estoy ejecutando CHKDSK /runa unidad Seagate de 1TB SATA y 3GBs: Windows 7 x64 Ultimate, CHKDSK consume 31GB de mi RAM de 32GB. Sin embargo, si carga otro programa como After Effects, CHKDSK libera RAM para permitir que el programa se ejecute bastante bien.

Ricardo
fuente
5

Si tiene más de 4 GB de RAM, puede limitar el uso de RAM de chkdsk a 4 GB utilizando la versión de 32 bits de chkdsk. Se encuentra en C: \ Windows \ SysWow64 \ chkdsk.exe

Esto puede ser una ventaja, porque otros programas ya cargados no se intercambiarán al disco y no se vaciará la memoria caché del disco. Por lo tanto, ejecutar chkdsk en paralelo con otros programas no perjudica el rendimiento de otros programas, excepto si usan el mismo disco.

informatorius
fuente
Gran consejo! Mi máquina de desarrollo tiene 48 GB por una razón y noté una gran caída en el rendimiento con nuevos procesos (y como desarrollador, los nuevos procesos se inician muy, muy a menudo). Debido a que se ejecuta chkdsken segundo plano, consumiendo casi todo. Esto salvó el día;)
Abel
3

Como ya se publicó, esto es por diseño en Windows 7. El "diseño" se corrige comenzando con Windows 8 y ahora chkdsk usa menos RAM. Si desea la forma Win7 de utilizar toda la RAM para mejorar el rendimiento, ejecute chkdskcon el parámetro /perf.

/ perf NTFS solamente: (Debe usarse con "/ scan") Utiliza más recursos del sistema para completar un análisis lo más rápido posible. Esto puede tener un impacto negativo en el rendimiento de otras tareas que se ejecutan en el sistema.

magicandre1981
fuente
2

Esto parece ser por diseño. La RAM no utilizada es un recurso desperdiciado. No hay ninguna razón para minimizar el uso de RAM y mantener la RAM en "reserva" cuando puede ser reutilizada casi instantáneamente según sea necesario. Windows 8 usará ram para cualquier cosa en lugar de dejarlo inactivo. Quizás esta filosofía comenzó en Windows 7 e involucró a CHKDSK. No sé qué beneficio obtiene CHKDSK del uso elevado de RAM, pero estoy dispuesto a creer que hay un beneficio. Aprendí hace mucho tiempo que solo porque no entiendo, no significa que no haya una buena razón. Mientras su uso de memoria disminuya a medida que otros programas necesiten memoria, esto no es un problema.

Nathan Brasil
fuente
2
El Ram no utilizado solo se desperdicia hasta que otro programa lo necesita. Si consume toda la RAM y luego desea iniciar otro programa, solo ha aumentado el tiempo de carga en órdenes de magnitud porque primero tiene que vaciar todo ese material en el disco, que es dolorosamente lento. Nadie habría notado este problema si esto no hubiera causado un problema. Siempre tener RAM en reserva para iniciar nuevos procesos es una buena idea. Me gustaría saber quién es la brillante idea de consumir toda la RAM.
horta
2
Algunos programas, como VMware, se negarán a iniciar máquinas virtuales a menos que haya una cantidad suficiente de RAM disponible (no intenta consumir RAM, simplemente se da por vencido sin intentarlo, lo que significa que chkdsk ni siquiera tiene la oportunidad de liberarse). Matar a chkdsk tiene efectos potencialmente dañinos, por lo que sus opciones son 1) esperar una cantidad de tiempo no razonable o 2) riesgo de pérdida de datos en la unidad que se está revisando. Yay Microsoft.
agregado1166877
0

Es un error He tenido este bloqueo de mi máquina al usar demasiada memoria, y eso es con 8 GB de RAM y un archivo de intercambio de 4 GB. No hay forma de que eso esté sucediendo. Pueden llamarlo 'por diseño', pero eso no tiene sentido. Es claramente un error. No hay una única base válida para que un programa chkdsk almacene esa cantidad de datos en RAM.

metamorfosis
fuente
2
El formato de preguntas y respuestas del sitio reserva respuestas para soluciones a la pregunta. Esta publicación es realmente un comentario en lugar de una respuesta. Siempre puedes comentar tus propias publicaciones, y una vez que tengas suficiente reputación podrás comentar cualquier publicación . Las no respuestas tienden a atraer votos negativos y están sujetas a eliminación.
Fixer1234
En mi opinión, es una respuesta a la pregunta que hizo el Cartel y, por lo tanto, es una solución, no un comentario.
metamorfosis