Windows Swap (файл подкачки): включить или отключить?

28

Исходя из своего личного опыта, я заметил, что отключение файла подкачки в Windows XP дало мне, в общем-то, наибольшую выгоду от любых других изменений программного обеспечения, которые я могу сделать. Очевидно, это должно быть сделано, когда доступно значительное количество оперативной памяти. Обычно я нахожу, что он хорошо работает с + 2 ГБ оперативной памяти. Единственные проблемы, с которыми я когда-либо сталкивался, - это загрузка Adobe Photoshop.

Это действительно улучшение скорости или я это представляю?

Примечание. Чтобы действительно отключить его, вы должны не просто установить его на 0 МБ, а отключить его. В противном случае Windows просто расширит его, когда это необходимо для удовлетворения своих потребностей.

Джо Филлипс
источник
9
Внимание: драйверам выделяется только ограниченный объем памяти, называемый разделами памяти non-pagedи pagedпула . Файл подкачки необходим, когда заполненный раздел загружается, как геймер, я видел, как игра жаловалась на память выгружаемого пула только потому, что у меня был отключен файл подкачки в системе объемом 8 ГБ. Вывод: файлы подкачки необходимы, они предотвращают истощение выгружаемого пула и фактически ускоряют работу вашей системы.
Тамара Вийсман

Ответы:

18

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

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

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

Лично, когда у меня много оперативной памяти, я предпочитаю обходиться без файла подкачки.

Zidar
источник
Я без файла подкачки на WinXP, так как я задал этот вопрос, и это было здорово. Я еще не пробовал его на Win7, поэтому не могу сказать, стоило ли оно того для более новых версий Windows.
Джо Филлипс
Я попробовал это на Win7 и не имел большого опыта. Поскольку SSD недоступны, имеет смысл просто иметь файл подкачки
Джо Филлипс
Наличие файла подкачки или нет не имеет прямого отношения к поведению кэширования файла.
Джейми Ханрахан
25

Не связывайтесь с этим, пусть Windows сама разберется.

Этот ответ ServerFault является самым превосходным объяснением того, почему:

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

Это неверно

Изюминка:

Полное удаление файла подкачки может привести к перегрузке диска.

Фактор Мистик
источник
12
Как удаление файла подкачки приведет к ЛЮБОЙ поломке диска? Во всяком случае, это должно прекратить побеждать. Windows выдаст ошибку, если у нее не хватит оперативной памяти - она ​​не решит использовать swap, если она отключена.
Джо Филлипс
2
d03boy, почитай пост SF. Если вам нужно вывести активную память процесса из оперативной памяти, это вызовет ОЧЕНЬ большую активность диска.
Фактор Мистик
3
@ d03boy: Ответ в связанном посте. По сути, если вы используете слишком много оперативной памяти, HD будет использоваться каким-то образом. Если вы удалите файл подкачки, жесткий диск все еще используется для того, чтобы потенциально сохранить программный код (просто считывая его из исходных файлов по требованию), когда необходимо выделить больше ОЗУ.
Шон
1
@ Фактор, Windows просто выдает ошибку, если использует слишком много физической оперативной памяти. Это ничего не удалит из ОЗУ AFAIK @Darth, связанный пост заставляет это звучать так, будто он делает это независимо от того, включена или нет подкачка страниц
Джо Филлипс
2
Это не относится к Windows XP, однако Windows XP имеет ужасное управление памятью. Прочитайте мой ответ.
Зидар
7

из майкрософт ответ "отключить файл подкачки"

http://social.answers.microsoft.com/Forums/en-US/w7performance/thread/0bd8a75c-2607-4468-8342-c35ea82ea670

Кен Блейк, Microsoft MVP

есть ли прирост производительности от этого? Спасибо.

Ты можешь? Да. Вы должны? Нет, определенно нет.

Есть ли прирост производительности от этого? Нет, и возможна потеря производительности.

Прежде всего, 2 ГБ - это не много ОЗУ, это минимальный объем, который должен иметь большинство людей.

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

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

Кен Блейк, Microsoft MVP (Windows Desktop Experience) с 2003 года Кен Блейк

Мики
источник
Что насчет побоев? Меньше ли используется HD, если он отключен? Это не похоже на весь ответ. Чтобы не упомянуть, этот вопрос о XP, и этот ответ о Win7
Джо Филлипс
Я не думаю, что MVP является правильным, при наличии достаточного объема памяти вы можете отключить файл подкачки; просто убедитесь, что у вас не хватает памяти.
Тамара Вийсман
1
@JoePhilllips - Нет, проще говоря, если память данных + программная память превышает системную память без файла подкачки, тогда пространство, доступное для программ, уменьшается, чтобы освободить место для данных, поскольку программы всегда могут быть извлечены из исходных программных файлов. Таким образом, если у вас 8 ГБ памяти, 6 ГБ данных и 4 ГБ приложений, ваша ОС имеет только 2 ГБ, которые можно разделить между этими 4 ГБ программ. Было бы постоянно читать в коде и молотить диск. Если на самом деле нужны были только 4 ГБ данных, а у вас был файл подкачки объемом 2 ГБ, чтобы заменить остальные, то ОС могла бы использовать другие 4 ГБ для программ, так что без перебоев!
Марк Бут
6

Я бы сказал, включить .

Независимо от того, сколько у вас ОЗУ, будут сценарии, когда файл подкачки, по крайней мере, полезен. Кроме того, следует отметить, что при наличии файла подкачки большая часть времени выполнения Windows выгружается там большую часть времени. Причина? Хотя это нужно в памяти, в данный момент это не нужно . Помещение его в файл подкачки может означать, что доступ к нему занимает больше времени, но при этом остается больше свободной оперативной памяти для программ, которые вы фактически используете.

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

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

* «В этом абзаце было немало спекуляций» / отказ от ответственности;)

Шон
источник
У меня сейчас 4 ГБ оперативной памяти, так как я недавно обновился (хотя winxp видит только около 3.5), и у меня был файл подкачки на несколько месяцев без каких-либо проблем и только одна или две перезагрузки. Я до сих пор использую довольно тяжелые программы (включая фотошоп) без каких-либо проблем.
Джо Филлипс
В этом случае не стесняйтесь игнорировать мой совет и делайте то, что вам подходит. Хотя пост Фактора Мистика имеет гораздо лучший аргумент для того же заключения, так что, по крайней мере, помните, что он говорит;)
Шон
Может быть, я включу его снова и посмотрю, поможет ли это. Я просто не могу себе представить, что запись в swap хороша для моего жесткого диска.
Джо Филлипс
5

Я бы сказал, что разрешить, но перенести его на второй диск, предпочтительно тот, который не используется каким-либо другим кабелем ввода / вывода. Это часто дает мне лучшую скорость, чем полное отключение файла подкачки. Конечно, увеличение оперативной памяти - это хорошая параллельная оптимизация.

romandas
источник
1
Если вы это сделаете, убедитесь, что вы перемещаете файл подкачки на другое физическое устройство. Перемещение его в другой раздел на том же устройстве - пустая трата времени, если у вас нет жесткого диска промышленного уровня (например, SCSI).
Павел Полевич,
3

Я отключаю файл подкачки в 32-разрядных системах Windows с 4 ГБ физической памяти. Включение виртуальной памяти не приведет к добавлению дополнительных адресов в систему, а отключение означает, что мне никогда не придется ждать, пока Windows включится или выключится .

kquinn
источник
6
Какие временные тесты вы проводили и под какими нагрузками?
Майкл Кохн
2
Нет достоверных данных == все еще субъективный анекдот
romandas
4
Конечно, это субъективный анекдот - я когда-либо утверждал иначе? Я не уверен, почему люди запрашивают данные о времени: я не запускаю серверы в Windows (если не обязан!), Я запускаю на нем свой персональный компьютер и игровой компьютер. И для такой машины субъективный ответ - все, что имеет значение.
Kquinn
1
И я полагаю, вы никогда не запускали больше, чем процесс? Даже в 32-битной системе в любой момент времени может быть выделено более 4 ГБ физической ОЗУ. Вы можете даже выделить более 4 ГБ ОЗУ одному процессу, используя API виртуальной памяти для переназначения разделов вашего адресного пространства.
Затмение
1
Э-э, вы имели в виду, что можно выделить более 4 ГБ виртуальной памяти? Когда вся физическая оперативная память израсходована, вы начнете получать сообщения об ошибках подкачки из MMU, что приведет к обмену. Без файла подкачки, это будет замена любых данных DLL / EXE, которые были выброшены. С файлом подкачки все будет записано в файл подкачки.
Дж.Б. Уилкинсон
3

Я отключаю файл подкачки в 32-разрядных системах Windows с 4 ГБ физической памяти. Включение виртуальной памяти не приведет к добавлению дополнительных адресов в систему, а отключение означает, что мне никогда не придется ждать, пока Windows включится или выключится.

Нет. Адресное пространство выглядит следующим образом: каждый ПРОЦЕСС имеет свое собственное 31-разрядное адресное пространство (меньше 2 ГБ), а ядро ​​имеет свое собственное 31-разрядное адресное пространство (всегда одинаковое, независимо от того, какой процесс владеет текущим потоком). Это дает вам 2 ГБ * числа процессов доступного адресного пространства пользовательского режима. Без свопа пространство пользовательского режима ограничено объемом физической памяти минус размер памяти ядра (обычно около 200 МБ). Конечно, может быть какое-то искусственное ограничение на количество виртуальной памяти, которое может выделить ваша система, но я не эксперт в лицензионных политиках Microsoft.

Также обратите внимание, что отключение подкачки не обязательно означает, что не будет сбоев страниц, приводящих к доступу к диску. Файл подкачки - не единственный файл, в который отображается память. Каждый исполняемый файл (то есть .exe или .dll, кроме драйверов режима ядра) имеет собственную резервную копию диска, а именно exe-файл. Конечно, страницы, которые были изменены в памяти, такие как сегменты данных с возможностью записи, IAT или даже сегменты кода (например, в случае упакованных исполняемых файлов), нуждаются в отдельной поддержке подкачки, но подавляющее большинство кода / статических данных / ресурсов не требует подкачки и ... может быть удалена из памяти, когда в системе недостаточно ресурсов. Когда процессу требуется доступ к таким данным, происходит сбой страницы и доступ к диску, независимо от того, включен ли обмен или нет.

Kmode MZ
источник
2

Шон Найман ранее говорил, что «особенно те, которые сильно загружают память, такие как Firefox и ваш Photoshop, это улучшение будет происходить прямо сейчас».

Я просто хотел добавить, что в Firefox, если вы введете about:configв адресную строку, чтобы перейти к дополнительным настройкам в Firefox, вы можете добавить новую строку для browser.cache.disk.enableи установить логическое значение равным, falseи это заставит Firefox кэшировать только в ОЗУ. Вы также можете добавить строку browser.cache.disk.capacityи указать значение, чтобы контролировать, сколько места в оперативной памяти Firefox будет использовать для кэша браузера. Надеюсь, это поможет. Я установил кеш в ОЗУ, и Firefox всегда работает очень быстро.

У меня также есть SSD-диск для системного диска в этом ноутбуке, с вращающимся диском на 500 ГБ во вторичном отсеке для хранения, и я установил папки TMP, TEMP и Temporary Internet Files, чтобы они указывали на вращающийся диск в Windows 7 Pro, вместе с перемещением моего pagefile.sys на мой дисковод D: и моя система работает очень быстро, как молния. В любом случае, у меня 4 ГБ ОЗУ, поэтому я не думаю, что Windows 7 даже использует файл подкачки, но какой вред оставить его включенным?

ojosch
источник
Независимо от того, сколько у вас памяти, Windows почему-то любит использовать файл подкачки
Джо Филлипс
0

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

Чтение / запись ОЗУ происходит в наносекундах по сравнению с миллисекундами на физических магнитных дисках.

Теперь нужно учесть, что теперь стали доступны новые параметры файла подкачки. Если вы используете твердотельный диск или у вас есть окна для помещения файла подкачки на SD-карту, вы также значительно увеличите производительность.

Просто мои 0,02 доллара

Axxmasterr
источник
3
Отключение свопа не означает, что все остается в памяти. Это означает, что то, что извлекается из памяти, должно быть считано обратно из исходного местоположения на диске, когда это необходимо. Это означает, что ваша система будет работать медленнее. Смотрите сообщение SF, на которое я ссылаюсь в ответе
Фактор Мистик
3
Именно поэтому вы оптимизируете его, чтобы он никогда не попадал на диск. Я делал это раньше, и это работает.
Axxmasterr