Что не так с отключением файла подкачки Windows?

Люди говорят, что вам всегда нужен файл подкачки, и это повысит производительность, но моя Windows 7 настроена на работу без файла подкачки. Я просто не понимаю, почему люди так говорят - у меня 6 ГБ ОЗУ, и единственный раз, когда я почти подошел к нехватке ОЗУ, было, когда я компилировал Chromium, для чего я временно включил файл подкачки.

Мне действительно нужен файл подкачки * для повышения скорости в типичных ситуациях? Зачем?

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

5 ответов

Решение

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

Если ваша ОС не особенно плохо справляется с управлением памятью, файл подкачки с 6 ГБ памяти не должен использоваться. Нельзя сказать, что это не будет иметь никакого смысла вообще; IIRC MS Windows немного сумасшедший, когда дело доходит до подкачки страниц, даже когда есть много доступной памяти. (Почему, я никогда не узнаю.)

Однако то, что происходит, когда у вас нет используемого файла подкачки, может быть достаточной причиной для его включения: серьезные сбои. Большинство приложений ожидают получения памяти, которую они запрашивают. Когда они этого не делают, они терпят крах. (Ах, но старые добрые времена существования в нескольких тысячах байтов ушли в прошлое ... и слишком много разработчиков, так же как и практика управления памятью.)

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

Дело из собственного опыта. Windows XP, 4GiB, нет файла подкачки. Перф был великолепен. Пока мы не начали приближаться к пределу 4GiB. Потом все стало плохо: приложения зависали, пункты меню появлялись только частично (или не появлялись вообще), кнопки не делали ничего и т. Д. Я переключился обратно на файл подкачки, даже несмотря на то, что производительность была хуже - общая стабильность была просто лучше и важнее.

Теперь, возможно, вы не используете какие-либо приложения или работаете в своих приложениях, которые бы выдвигали 6 ГБ, но я могу вспомнить несколько ситуаций, в которых вы могли бы приблизиться: редактирование видео, редактирование фотографий, микширование звука и производство и т. Д. - практически все, где вы имеете дело с большим количеством данных (либо с работой, либо с потоковой передачей). Когда эти данные превысят ваши возможности памяти, велика вероятность, что ваше приложение просто "пойдет".

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

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

Во всяком случае, прочитайте статью. Это даст вам хорошие рекомендации по настройке файла подкачки. Как говорит @Sandeep Bansal, может быть случайная игра, которая требует, чтобы вы провели ее как часть "проверки требований" для запуска (но я не знаю ни одной).

РЕДАКТИРОВАТЬ: Этот пример может помочь вам понять роль файла подкачки:

Допустим, у вас есть 512 МБ оперативной памяти. У вас открыто несколько программ, в том числе свернутый браузер, потребляющий 250 МБ ОЗУ, а общее использование оперативной памяти всего, что работает в данный момент, составляет 500 МБ.

Итак, вы запускаете другую программу (скажем, текстовый процессор), которая хочет выделить 150 МБ ОЗУ. Недостаточно памяти. Однако, если у нас есть система подкачки страниц, страницы памяти, содержащие ваш свернутый браузер, могут быть выгружены на диск. Тогда новая программа может загрузиться.

Теперь допустим, что вы хотите вернуться к браузеру через некоторое время. Ну, для этого нужно "вставить в" то, что он только что отправил на диск. Если в этот момент достаточно свободной оперативной памяти, это можно сделать без проблем. Если нет, сначала нужно выложить что-то еще. Если есть много программ, конкурирующих за процессор, и существует постоянное разбиение на страницы, то все идет медленно, и у вас возникает состояние, известное как "перебивание". Весь этот постраничный ввод и вывод приводит к снижению производительности, но позволяет избежать "жесткого" сбоя программ из-за ошибок нехватки памяти. Это цель файла подкачки. Слишком много пейджинга, т. Е. "Перебивание", вероятно, не лучше, чем просто отказ программы, поскольку большую часть времени она не может получить больше оперативной памяти.

Теперь вы можете увидеть, как, если существуют алгоритмы, позволяющие предвидеть то, что не может быть использовано в данный момент, то операционная система может "предварительно подготовить" то, что, по ее мнению, не будет использовано сразу. Таким образом, это учитывает Windows, используя файл подкачки, где он существует, даже если у него достаточно ОЗУ. Он пытается сделать доступным как можно больше оперативной памяти. Windows похожа на Linux, где свободная оперативная память действует как дисковый кэш, поэтому, если балансирование выполняется правильно, это может повысить общую производительность. Все это является частью дизайна ОС, и поэтому требуется 10 лет, чтобы создать хорошую операционную систему из тысяч программистов.

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

Файл подкачки предназначен не только для сохранения аварийных дампов, но и не предназначен для этого.

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

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

Нет ничего плохого в создании файла подкачки размером 500 МБ, просто чтобы избежать проблем, если это требуется определенному процессу.

Первый шаг - понять, что такое Cache, или, скорее, для чего используются разные кэши.
Центральный процессор имеет небольшой внутренний кэш, который позволяет хранить результаты OP, состояния флагов и вычисленные адреса. На двухъядерном я считаю, что внутренний кэш составляет около 1 МБ. Он очень быстрый, доступен только внутренним частям ЦП и наиболее подвержен нагреву разогнанного ЦП.

Кэш уровня 2 действует как высокоскоростной буфер для транзакций ЦП в память, а также содержит потоки кода, собранные с помощью предварительной выборки. Я полагаю, что на двухъядерной установке обычная инсталляция будет иметь 6 Мб кеша lvl2. Он очень быстрый, хотя и медленнее, чем внутренняя кеш-память, доступен только контроллеру памяти и процессору и находится на выделенной линии на шине.

Файл подкачки действительно является кешем, в котором хранятся данные, которые могут присутствовать или не присутствовать в памяти. O/S может использовать файл подкачки для различных задач, одной из которых является сохранение текущего состояния файла данных, который еще не был записан на диск. Когда файл подкачки не существует, это зависит от стороннего приложения, чтобы обеспечить эту функцию внутренне. Проблема этого сценария заключается в том, что многие программы плохо себя ведут, когда дело доходит до сбора мусора, и на вашем диске остаются ложные файлы.temp. Эти остатки не являются частью манифеста установки и могут помешать удалению, а также снизить скорость доступа к диску.

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

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

Стивен Мальм, MCP.

Личный опыт

Прямо сейчас у моего ноутбука с 8 ГБ ОЗУ есть проблемы, препятствующие созданию / использованию файла подкачки. Моя жизнь - ад. Я постоянно получаю подсказки "Недостаточно памяти", сбой приложений и т. Д. Использование 3 программ, каждый из которых занимает 1–1,5 ГБ (например, веб-браузер, Visual Studio со специальными плагинами и т. Д.), Идет по тонкому льду.

Еще один аргумент

Использование данных из физической кэш-памяти очень быстро. Чем больше "свободного" физического ОЗУ у вас есть, тем больше кеш он может хранить. Чем больше неактивных данных ОС может перемещать из физической памяти в файл подкачки, тем больше физической памяти освобождается для кэшей часто используемых данных.

Предположим, вы играете в какую-то игру, которая загружает данные о местоположении, когда вы меняете местоположение. У вас также работает веб-браузер, который оставляет, скажем, 2 ГБ на игру, чего достаточно для одного места. Без файла подкачки, каждый раз, когда вы меняете местоположение, данные будут медленно загружаться с жесткого диска. При использовании файла подкачки ваши неиспользуемые данные веб-браузера будут отправлены в файл подкачки, а драгоценная физическая ОЗУ будет использована для хранения данных в нескольких местах, что приведет к гораздо более быстрой загрузке местоположения.

Другие вопросы по тегам