24

Многие люди знают, как работает кэширование диспетчера памяти Windows, читая официальные документы Microsoft и т.д. Однако имеется относительно немного документов, в которых описываются реальные проблемы с производительностью (медлительность), связанные с очень большими / растущими сопоставленными файлами и резервными списками.

У меня есть Win7 64bit (8Gb RAM) ПК, который выступает в качестве сервера. Я не могу добавить больше памяти к нему. Он имеет множество ТВ-тюнеров, которые записывают / записывают несколько гигантских файлов mpeg2 (по крайней мере 3-8 ГБ каждый) на жесткий диск 24/7. В зависимости от того, насколько мой компьютер записывает телепередачи, через 1-3 дня мой компьютер становится вялым.

Глядя на диспетчер задач Windows, кажется, что у меня не так много открытых приложений; и много "доступной памяти". Даже если я закрою все активные процессы, компьютер останется вялым. Однако при использовании RamMap я вижу, что эти большие файлы mpeg2 становятся сопоставленными файлами в активном резервном списке; что со временем делает мой компьютер очень вялым. Если я выберу "Пустой список ожидания" в RamMap, мой компьютер сразу станет очень отзывчивым; как будто я просто перезагрузил его. Я ничего не могу поделать с медлительностью. На самом деле, ПК никогда не оправится от этой медлительности, если я не опустошу список ожидания или не перезагрузлюсь.

У меня есть утилита командной строки, EmptyStandbyList.exe, которая, как я обнаружил, тихо очищает резервный список вместо того, чтобы делать это в графическом интерфейсе RamMap. Однако, к сожалению, он также удаляет мелкие элементы в резервном списке, которые очень полезны для повышения производительности, чтобы оставаться в резервном списке.

При поиске в Google я нашел других людей, у которых точно такая же проблема, как и у меня. Однако большинство их вопросов остаются без ответа; без реального объяснения того, почему это происходит; и нет определенного способа решения проблемы, кроме метода "Пустой резервный список".

Я видел упоминания об утилите / сервисе MS под названием "Dynamic Cache"; но не уверен, что это лечит именно то, что я хочу. Кроме того, версия Win7 / Win2008 R2, кажется, доступна только через поддержку MS. Я также видел несколько утилит, которые устанавливают «минимальный / максимальный пределы NT-кэша»; но они выглядят так, как будто они специфичны для рабочих наборов процессов, а не для резервных списков.

Я надеюсь, что кто-то, кто может мыслить нестандартно, может подумать о более изящном лекарстве для меня, вместо того, чтобы мне приходилось регулярно использовать жестоко пустой список ожидания; и, надеюсь, у меня будет четкое объяснение симптома, который я (и другие люди) наблюдаем. Причина, по которой я упомянул "нестандартно", заключается в том, что уже есть множество людей, которым нравится просто повторять, как сопоставленные файлы и приоритеты резервного списка "должны" работать на бумаге; что не очень полезно для меня.

2 ответа2

2

Список Standby - это кэш Superfetch, а "Dynamic Cache" устраняет другую проблему. Служба исправляет проблему, когда кэш метаданных NTFS слишком высок. Но Stadnbylist и этот Cache - это две разные вещи. Кэш-память NTFS отображается как используемая память, в то время как резервный кэш содержит данные, но может быть очищен очень быстро, если вы действительно обновите эту память для хранения данных в ней.

На форуме sysinternals пользователь wj32, автор Process Hacker, создал инструмент командной строки, который делает то, что вы хотите:

http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769

Попробуйте, если это "исправит" вашу проблему.

1

Может ли быть так, что медлительность происходит из-за того, что Windows заставляет загружать / сохранять данные с диска подкачки, что с каждым записанным на пленку видео список ожидания увеличивается, а с большим диском подкачки другие (фоновые) программы теперь выталкиваются на диск подкачки, тормозит машину.

Если этот ПК используется только для записи телепередач, возможно, может быть решение сделать диск подкачки настолько маленьким, насколько позволяет его установка Windows, что, я считаю, составляет 16 МБ. Не выключайте диск подкачки полностью, потому что тогда Windows сделает диск подкачки в тайне.

Некоторые, как я не могу себе представить, что Windows стала бы вялой, если бы она просто читала данные из ОЗУ, в то время как новые программы не загружались с диска.

Цитата из документа MS http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/MemorySizingGuidanceWin7.docx :

«Windows 7 SuperFetch ™ работает с диспетчером памяти для установки приоритетов для страниц в списке ожидания. Страницы, которые недавно были помещены в список ожидания, начинаются с высокого приоритета, который постепенно уменьшается со временем.

Если в системе слишком мало памяти для обработки рабочей нагрузки, только небольшой процент страниц в списке ожидания имеет низкий приоритет. Отслеживая количество страниц с разными приоритетами, вы можете определить, выиграет ли система от увеличения объема установленной оперативной памяти ».

В целом, цель состоит в том, чтобы система могла поддерживать страницы, на которые недавно ссылались, в памяти и при этом иметь достаточно доступной памяти для удовлетворения любых непосредственных потребностей в памяти ".

Может быть, также программа записи ТВ, поскольку она продолжает работать и не останавливается, каждая страница, которая попадает в список ожидания, помечается как высший приоритет, выталкивая другие вещи, что обычно ускоряет работу Windows. Однако вы можете подумать, что эти вещи освобождаются, когда памяти становится мало, и / или когда нет файла подкачки, который Windows не может тайно начать интенсивно использовать подкачку, что замедляет процесс. Это при условии, что данные в списке ожидания не будут загружены на диск подкачки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .