Как уменьшить перегрузку диска (подкачки)?

11

У меня есть 4 ГБ оперативной памяти, но Windows все еще иногда перебивает диск (особенно часто, когда приложение сворачивается в течение некоторого времени, а затем я снова активирую его). Совершенно глупо, потому что диспетчер задач показывает 2 ГБ оперативной памяти бесплатно. Есть ли способ предотвратить выгрузку памяти программ Windows?

Я попытался настроить Superfetch для кэширования только файлов запуска (это немного помогло) и отключить файл подкачки (это очень помогло и хорошо работало для меня в Windows XP, но Windows Vista / Windows 7 не позволяют этого - оно показывает «низкий уровень» в памяти », даже когда у меня 1 ГБ ОЗУ свободно.)

Что вы можете посоветовать мне сделать?

skevar7
источник
6
Вы не хотите отключать SuperFetch с 4 ГБ оперативной памяти, но вы можете отключить индексирование. Оставьте файл подкачки в покое, Windows знает об этом больше, чем любой из нас. Я не могу помочь с поиском, хотя.
Фоши
2
Нет, я конечно хочу выключить это. Проклятая вещь слишком плохо продумана. Однажды я обнаружил, что он загружает все файлы какой-либо игры при каждой загрузке (я играл по вечерам), и это занимало половину моей оперативной памяти, и это был последний день, когда Superfetch работал на моем ПК с неограниченными настройками.
skevar7
1
Термин «перегрузка» обычно относится к ситуации, когда физическая память заполнена или почти заполнена, и происходят постоянные перестановки страниц. Это не относится к обычной активности подкачки страниц. То, что вы видите, не бьется, а просто как был разработан алгоритм управления памятью. Оставьте пространство доступным для вновь порожденных процессов, примите во внимание, что процесс, у которого свернуто окно, не используется и должен перенести свою память на диск и тому подобное.
spowers
2
Это худшее решение когда-либо предполагать, что, поскольку окно свернуто, оно не используется. Если он минимизирован, это потому, что на экране не хватает места во время многозадачности. Мне так надоело возвращаться к своему компьютеру, и, несмотря на то, что у меня запущено несколько программ, будет очень трудно вернуть данные из файла подкачки, когда я восстановлю некоторые окна из свернутого состояния, несмотря на наличие GIG свободной оперативной памяти. Файл подкачки НИКОГДА не следует трогать, если у меня не хватает ОЗУ Если Windows хочет сделать предположения о свернутых программах, делайте это, когда на самом деле недостаточно ОЗУ.
Трийнко

Ответы:

7

Марк Русович написал хорошую длинную статью о виртуальной памяти,
расширяющей границы Windows: виртуальная память

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

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

Это очень хорошее чтение.

Насколько большой я должен сделать файл подкачки?
Возможно, один из наиболее часто задаваемых вопросов, связанных с виртуальной памятью, заключается в том, насколько большим должен быть файл подкачки? Нет конца нелепым советам в Интернете и в газетных киосках, посвященных Windows, и даже Microsoft опубликовала вводящие в заблуждение рекомендации. Почти все предложения основаны на умножении размера ОЗУ на некоторый коэффициент, с общими значениями 1,2, 1,5 и 2. Теперь, когда вы понимаете роль файла подкачки в определении предела фиксации системы и того, как процессы вносят вклад в плату за фиксацию, у вас хорошие возможности, чтобы увидеть, насколько бесполезны такие формулы.


Предыдущая статья: Расширение границ Windows: физическая память

Вы можете увидеть план физической памяти с помощью инструмента Meminfo Алекса Ионеску .

Nik
источник
5
Ничего нового для меня там нет. И это совсем не ответ на мой вопрос.
skevar7
2
@ skevar7: Возможно, это не ответ для вас, но хорошие ссылки на объяснения всего этого для тех, кто найдет эту тему и у которых не будет столько знаний, как у вас.
Gnoupi
1
Эмпирическое правило: даже не упоминайте пейджинг, если он не имеет абсолютной уверенности, связанной с вашей проблемой, или если вы просто хотите зажечь бесконечную дискуссию о том, что можно и нельзя делать ... То же самое касается веб-браузеров и антивирусного программного обеспечения: )
1
Я абсолютно уверен, что пейджинг виноват, потому что coz perfmon показывает серьезные сбои, когда диск работает. Я, конечно, знаю, что отключение файла подкачки значительно повышает производительность. Это объективный факт, и его можно измерить. Единственная проблема заключается в том, что Windows, так как Vista больше не хочет работать в такой конфигурации.
skevar7
3
@ skevar7: А может быть, просто, может быть, в Microsoft думают компетентные люди, и они подумали и решили, что файл подкачки нужен. Они не сделали это просто чтобы побеспокоить вас.
Gnoupi
4

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

У О'Рейли есть интересная статья о производительности NTFS .

С аппаратной стороны: лучший жесткий диск с более высокой скоростью вращения и большим кешем тоже поможет.

И вот, как убить предупреждение о нехватке памяти, взять на себя ответственность и обнулить следующие ключи реестра.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {5EE64AFB-398D-4edb-AF71-3B830219ABF7}]

и

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}]

Это помешает службе диагностики загрузить RADAR. Это работает для меня в Windows Vista, ключи присутствуют в Windows 7. Хотя я не пробовал - просто сделайте резервную копию этих ключей, прежде чем удалять их.

Питер Мортенсен
источник
2

Я нашел единственный способ увеличить объем оперативной памяти до 8 ГБ и отключить подкачку, установив

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Диспетчер сеансов \ Управление памятью \ DisablePagingExecutive = 1

(требуется перезагрузка).

Это снизило активность диска почти до нуля.

skevar7
источник
Я подозреваю, что у вас было странное или медленное желание хотеть этого. У меня есть нечто подобное, и вопреки тому, что большинство здесь предполагает, то, что вы сделали, было бы хорошим решением. Увеличение объема ОЗУ и использование минимального разбиения по страницам или вообще без него может быть более разумным (и экономичным) решением, чем замена медленных носителей.
JVIV
Этот параметр реестра не «отключает подкачку страниц». Он отключает подкачку только для тех частей, которые в противном случае были бы доступными для просмотра, для ntoskrnl.exe и выгружаемого пула.
Джейми Ханрахан
Не знаю насчет Vista, но в Windows 7 я отключаю пейджинг и у меня нет проблем и предупреждений. Это с 8 или 16 ГБ оперативной памяти.
i486
1

Проверьте Панель управления \ Система и безопасность \ Система> Расширенные настройки системы> [Дополнительно]> Производительность: Настройки> [Дополнительно]

Планирование процессора связано с вашей проблемой, так же как и возможность отключить файл подкачки, что вам не следует делать. (Вы нуждаетесь в этом)

encore2097
источник
0

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

Система работает медленно или вы просто используете слово трэш, потому что видите мигающий индикатор HD?

UnderLoK
источник
Нет уборщиков. Иногда на выполнение простой операции (5-10 секунд) уходит гораздо больше времени, чем обычно, и диск трескается. Это обычно происходит после простоя приложения в течение некоторого времени. Очень простые операции - откройте новую вкладку в Opera, создайте новый файл в Visual Studio и т. Д. Поэтому я предполагаю, что алгоритм подкачки Windows далек от совершенства. Полное отключение файла подкачки хорошо работает для меня в WinXP, но, к сожалению, Vista и Win7 этого не позволяют.
skevar7
В отличие от многих ОС, Windows смирится с большим количеством аппаратных проблем без сбоев, и может случиться, что какое-то восстановление происходит в фоновом режиме, что вызывает задержку. Я знаю, что это отстой, но запустите тест HD, чтобы убедиться, что он не подключен, поскольку на самом деле это похоже на проблему ввода-вывода, поскольку проблема исчезает, если вы не разрешаете системе использовать своп. Проверьте наличие обновлений BIOS, связанных с вводом-выводом, контроллером HD и т. Д., Так как это может быть известной проблемой. Система загружается навсегда (XP, Vista или 7)? Если так, то это определенно проблема ввода / вывода.
UnderLoK
* Я должен был сказать, что «Windows
смирится с большим
0

Переходите на Linux, он этого не делает.

Люди будут говорить вам, что Windows умнее вас, и вы не должны возиться с настройками файла подкачки, и они правы. Но эта система в основном настроена так, чтобы выделять новую память для процесса практически мгновенно, и это приносит пользу. Одним из побочных эффектов является то, что он перемещает все, что у вас есть в памяти, на диск все время, поэтому, когда ему требуется новая часть памяти, он может просто стереть эту часть памяти и сразу же отдать ее, если она, конечно, не изменилась. Я считаю, что когда вы оставляете свои приложения работающими, все их данные сохраняются на диске, а затем в какой-то момент другие приложения или система кэширования начинают использовать эту память. Таким образом, приложение остается с минимальным объемом их данных в физической памяти, и когда вы начинаете использовать его снова, оно должно получить все обратно с диска.

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

Вава
источник
2
И снова «мои окна делают это, как я могу ...? -> Переместить в Linux» ответ. Однако остальная часть ответа верна, но вы могли бы обойтись без первого предложения.
Gnoupi
Хорошо, но если у вас 8 ГБ ОЗУ и реальная потребность в 3 ГБ - зачем делать какой-либо обмен на диск? С другой стороны, представьте, что у вас есть 2 ГБ физической ОЗУ + файл подкачки 2 ГБ - как эта система работает без «взрыва»? 4ГБ достаточно для всего, но с физической памятью 8ГБ + 0 подкачки «возможно» недостаточно памяти. Как? Я думаю, что алгоритм для виртуальной памяти неправильно в Windows 95 раз, и он не изменился в Windows 10.
i486