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

48839
Joe Phillips

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

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

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

28
** Внимание: ** Существует только ограниченный объем памяти, выделяемый драйверам, который называется разделами памяти [`non-paged` и` paged`] (http://bit.ly/rttIee). Файл подкачки необходим, когда заполненный раздел загружается, как игрок, я видел, как игра жаловалась на память выгружаемого пула только потому, что у меня был отключен файл подкачки в системе объемом 8 ГБ. Вывод: ** Файлы страниц необходимы, они предотвращают истощение выгружаемого пула и фактически [делают ускорение] (http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/dont-throw-those-paging-files-away .html) ваша система. ** Tom Wijsman 12 лет назад 9

9 ответов на вопрос

25
Factor Mystic

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

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

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

Это неверно

Изюминка:

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

Как удаление файла подкачки может привести к поломке ЛЮБОГО диска? Во всяком случае это должно прекратить побеждать Windows выдаст ошибку, если у нее закончится ОЗУ - она ​​не решит использовать swap, если она отключена. Joe Phillips 14 лет назад 12
d03boy, почитай пост SF. Если вам нужно вывести активную память процесса из оперативной памяти, это вызовет ОЧЕНЬ большую активность диска. Factor Mystic 14 лет назад 2
@ d03boy: Ответ в связанном посте. По сути, если вы используете слишком много оперативной памяти, HD будет использоваться каким-то образом. Если вы удалите файл подкачки, жесткий диск все еще используется для того, чтобы потенциально сохранить программный код (просто считывая его из исходных файлов по требованию), когда необходимо выделить больше ОЗУ. Sean 14 лет назад 3
@ Фактор, Windows просто выдает ошибку, если она использует слишком много физической оперативной памяти. Это ничего не удалит из ОЗУ AFAIK @Darth, связанный пост заставляет звучать так, будто он делает это независимо от того, включена или нет подкачка Joe Phillips 14 лет назад 1
@ d03boy: Да, но когда подкачка включена, поведение является оптимизацией, чтобы пропустить запись в файл страницы, когда она должна быть записана. Когда пейджинг выключен, он будет использовать физическую оперативную память для как можно большего количества вещей, то есть он будет отдавать как можно больше инструкций из оперативной памяти. Это означает, что каждый раз, когда ему нужен код, которого нет в ОЗУ, ему нужно будет обращаться к диску, и это будет происходить чаще без подкачки страниц. Sean 14 лет назад 0
«он будет использовать физическую оперативную память для максимально возможного количества вещей, то есть он будет отдавать как можно больше инструкций из оперативной памяти». - чтобы уточнить, чтобы избежать появления ошибок из-за нехватки ОЗУ, он будет выгружать как можно больше кода и других вещей, которые все еще находятся на жестком диске, чтобы освободить место для вещей, которые теперь не имеют HD-эквивалента (например, текущего состояние программы). Sean 14 лет назад 0
Вы уверены, что он будет выгружать избыточные данные, прежде чем это абсолютно необходимо? Joe Phillips 14 лет назад 0
Это не относится к Windows XP, однако Windows XP имеет ужасное управление памятью. Прочитайте мой ответ. zidar 14 лет назад 2
Мой опыт работы с Vista Home Premium с точностью до наоборот; Отключение файла подкачки привело к значительному улучшению общей отзывчивости системы и почти полному отсутствию необъяснимого перебивания диска, что было проблемой для медиацентра гостиной. Возможно, в моей системе были некоторые ограничения, которые означали, что отключение файла подкачки дало такой заметный результат, читайте здесь http://superuser.com/questions/41789/how-to-suppress-low-memory-warnings-in-vista- дом премиум-когда-обкатки без Lunatik 14 лет назад 0
@JoePhilllips: удаление файла подкачки приводит к перегрузке диска - это уменьшает возможности, доступные для Windows, чтобы избежать перегрузки. Например, Windows может записывать страницы данных, которые никогда не будут снова считываться в файл подкачки, чтобы освободить больше физической памяти, что позволит избежать перегрузки. Без файла подкачки у него нет этой опции. Точно так же, без файла подкачки, Windows может отбрасывать только чистые страницы, поэтому, если спрос на чистые страницы самый высокий, чистые страницы будут зависать, потому что Windows не может убрать грязные страницы с пути. Вы не можете сделать вещи кардинально лучше, забрав варианты. David Schwartz 11 лет назад 1
Есть ли способ изменить это поведение? В Linux HD гораздо тише, он порхает, возможно, раз в 5 минут, в то время как в Windows HD бьется и гремит весь день. Calmarius 11 лет назад 0
19
zidar

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

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

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

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

Я без файла подкачки на WinXP, так как я задал этот вопрос, и это было здорово. Я еще не пробовал его на Win7, поэтому не могу сказать, стоило ли оно того для более новых версий Windows. Joe Phillips 10 лет назад 0
Я попробовал это на Win7 и не имел большого опыта. Поскольку SSD недоступны, имеет смысл просто иметь файл подкачки Joe Phillips 8 лет назад 0
Наличие файла подкачки или нет не имеет прямого отношения к поведению кэширования файлов. Jamie Hanrahan 6 лет назад 0
7
miki

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

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 Joe Phillips 13 лет назад 0
Я не думаю, что MVP является правильным, учитывая достаточную память, вы можете отключить файл подкачки; просто убедитесь, что у вас не хватает памяти. Tom Wijsman 13 лет назад 0
@JoePhilllips - Нет, проще говоря, если память данных + память программ превышает системную память без файла подкачки, тогда пространство, доступное для программ, сокращается, чтобы освободить место для данных, поскольку программы всегда можно выбрать из исходных файлов программы. Таким образом, если у вас 8 ГБ памяти, 6 ГБ данных и 4 ГБ приложений, ваша ОС имеет только 2 ГБ, которые можно разделить между этими 4 ГБ программ. Было бы постоянно читать в коде и молотить диск. Если на самом деле требуется только 4 ГБ данных, а у вас есть файл подкачки объемом 2 ГБ для замены остальных, то ОС сможет использовать остальные 4 ГБ для программ, так что не надо тратить! Mark Booth 12 лет назад 1
6
Sean

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

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

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

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

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

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

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

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

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

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

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

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

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

2
ojosch

Шон Найман ранее говорил, что «особенно те, которые сильно загружают память, такие как 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 даже использует файл подкачки, но какой вред оставить его включенным?

Независимо от того, сколько у вас памяти, Windows почему-то любит использовать файл подкачки Joe Phillips 14 лет назад 0
0
Axxmasterr

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

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

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

Просто мои $ 0,02

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