Почему chkdsk использует 90% моей оперативной памяти?

24

Когда я строил свой новый компьютер, я отдал свой старый родителям, которые остро нуждались в обновлении, после очистки всего, конечно, от него, оставив только ОС и несколько программ. Некоторое время он работал нормально, пока не начал загружаться Windows (он просто застрял). После изучения этого поведения и расспросов я решил, что это может быть неисправный жесткий диск, поэтому я вытащил его и подключил к своему собственному компьютеру, чтобы запустить на нем chkdsk (сначала я сделал это, чтобы попытаться загрузиться с диска, но Так как мой компьютер настроен на RAID, и в этой установке Windows не было драйверов RAID, я просто загрузился в свою собственную установку Windows 7 и запустил на ней chkdsk).

Я сделал это в прошлую пятницу вечером, и он работает с тех пор (что составляет около 6 дней). Я не удивлен, так как он может быть медленным, это жесткий диск емкостью 1 ТБ и «зеленый» Western Western, так что, скорее всего, он все равно работает на более медленных оборотах. Я вижу, что он прогрессирует, поэтому я знаю, что он не застрял, и на моем компьютере постоянно горит индикатор жесткого диска, который я не использовал ни для чего другого, кроме обмена файлами по сети и облегченной сети. просмотра, пока это работает.

Мой компьютер имеет 16 ГБ оперативной памяти и работает под управлением Windows 7 Pro x64. Почему chkdsk занимает 90% этого? Он поддерживает этот уровень стабильно, и в течение нескольких дней он колебался от 90% до 91%, поскольку он постоянно освобождает и заполняет память. Загрузка ЦП очень низкая (что я ожидаю, так как это очень тяжелая операция ввода-вывода).

Не похоже, что происходит что-то плохое, но мне любопытно. Почему chkdsk занимает столько памяти? Я, по крайней мере, рад, что он, кажется, делает это разумно, поскольку он поддерживает высокий уровень, не начиная перебивать основной жесткий диск подкачкой.

Кто-нибудь знает? Это нормально?

Бен Ричардс
источник

Ответы:

19

Если он работал несколько дней, я предполагаю, что вы бежали chkdskс /rфлагом.

В Windows 7 использование такого объема ОЗУ - это нормально. Источник

Команда файловой системы немедленно начала изучать проблему. [...] [F] с их точки зрения, использование памяти было разработано и было определенным изменением Windows 7 для этого сценария (флаг / r захватывает эксклюзивную блокировку и восстанавливает диск, и поэтому мы предполагаем, что вам действительно понравится диск, который нужно починить, прежде чем делать что-то еще на машине [...]).

afrazier
источник
Я использую графический интерфейс, но я установил флажок для сканирования и восстановления поврежденных секторов, что эквивалентно. Спасибо за ссылку!
Бен Ричардс
Это не просто Windows 7; Windows 2008 R2 также входит в это невообразимое состояние. Я проверил один диск для проверки, и chkdsk абсолютно необходимо было использовать 20 ГБ ОЗУ для этого одного диска и замедлить работу остальной части сервера. Это не ошибка, 20 ГБ памяти.
исллава
@icelava: Учитывая, что 2008 R2 является продолжением базы кода Windows 7, это не удивительно. Это, вероятно, повлияет на все более новые ОС.
afrazier
Я проверил свой внешний NTFS диск объемом 2 ТБ без ключей / r (или любых других), и он по-прежнему занимал почти всю оперативную память (у меня 5 ГБ). Windows 7 64bit.
Давид Балажич
Интересный. Я просто запустил его на диск объемом 1,5 ТБ, а в системе 8 ГБ он даже не достиг 1 ГБ. Я ожидаю, что проверка только для чтения использует только столько оперативной памяти, сколько требуется.
afrazier
8

В CHKDSK /rнастоящий момент я работаю на жестком диске Seagate 1 ТБ SATA 3 ГБ - Windows 7 x64 Ultimate, CHKDSK потребляет 31 ГБ моей 32 ГБ ОЗУ. Однако, если вы загружаете другую программу, например After Effects, CHKDSK освобождает ОЗУ, чтобы программа работала достаточно хорошо.

Ричард
источник
5

Если у вас больше 4 ГБ ОЗУ, вы можете ограничить использование оперативной памяти chkdsk до 4 ГБ, используя 32-битную версию chkdsk. Он находится в C: \ Windows \ SysWow64 \ chkdsk.exe

Это может быть преимуществом, поскольку другие уже загруженные программы не будут перенесены на диск, а кэш-память диска не будет очищена. Таким образом, запуск chkdsk параллельно с другими программами не снижает производительность других программ, за исключением случаев, когда они используют один и тот же диск.

informatorius
источник
Отличный совет! Моя машинная машина имеет 48 ГБ по какой-то причине, и я заметил большое падение производительности с новыми процессами (и, как разработчик, новые процессы запускаются очень и очень часто). Из-за работы chkdskв фоновом режиме, потребляя почти все из этого. Это спасло день;)
Авель
3

Как уже сообщалось, это сделано в Windows 7. «Дизайн» исправлен, начиная с Windows 8, и теперь chkdsk использует меньше оперативной памяти. Если вы хотите, чтобы Win7 использовал всю оперативную память для повышения производительности, запустите chkdskэтот параметр /perf.

/ perf только NTFS: (Должно использоваться с "/ scan"). Использует больше системных ресурсов для максимально быстрого сканирования. Это может оказать негативное влияние на производительность других задач, работающих в системе.

magicandre1981
источник
2

Похоже, что это по замыслу. Неиспользуемая ОЗУ является потраченным впустую ресурсом. Нет никаких оснований минимизировать использование оперативной памяти и держать оперативную память в «резерве», когда она может быть практически мгновенно переназначена по мере необходимости. Windows 8 будет использовать оперативную память для чего-либо, вместо того, чтобы сидеть без дела. Возможно, эта философия началась еще в Windows 7 и была связана с CHKDSK. Я не знаю, какую пользу получает CHKDSK от большого объема используемой оперативной памяти, но я готов поверить, что она есть. Я давно узнал, что просто потому, что я не понимаю, не значит, что нет веской причины. Пока использование памяти уменьшается, поскольку другим программам требуется память, это не проблема.

Натан Бразилия
источник
2
Неиспользованный Ram теряется только до тех пор, пока не будет использован другой программой, которая нуждается в этом. Если вы потребляете всю оперативную память, а затем хотите запустить другую программу, вы просто увеличили время загрузки на порядки, потому что сначала вам нужно выгрузить все эти файлы из памяти на диск, что мучительно медленно. Никто бы не заметил эту проблему, если бы она не вызывала проблемы. Хорошая идея всегда иметь резерв оперативной памяти для запуска новых процессов. Я хотел бы знать, кто является прекрасной идеей, что это потребляет всю оперативную память.
Орта
2
Некоторые программы, такие как VMware, откажутся запускать виртуальные машины, если не будет доступно достаточное количество оперативной памяти (она не пытается потреблять оперативную память, просто сдается без попыток, что означает, что chkdsk даже не имеет возможности освободить). Уничтожение chkdsk имеет потенциально вредные последствия, поэтому вы можете выбрать 1) подождать неоправданно много времени или 2) потерять данные о риске на проверяемом диске. Yay Microsoft.
aggregate1166877
0

Это ошибка. У меня случился сбой моей машины из-за использования слишком большого объема памяти, а это с оперативной памятью 8 ГБ и файлом подкачки 4 ГБ. Этого не должно быть. Они могут назвать это «по замыслу», но это бессмысленно. Это явно ошибка. Для программы chkdsk нет единой допустимой основы для хранения такого большого количества данных в оперативной памяти.

метаморфоза
источник
2
Формат вопросов и ответов сайта оставляет за собой ответы на вопросы. Этот пост действительно комментарий, а не ответ. Вы всегда можете комментировать свои собственные сообщения, и как только у вас будет достаточно репутации, вы сможете комментировать любые сообщения . Не отвечающие имеют тенденцию привлекать отрицательные голоса и подлежат удалению.
fixer1234
На мой взгляд, это ответ на вопрос, который задал плакат, и поэтому является решением, а не комментарием.
метаморфоза