TL; DR версия: пусть Windows обрабатывает ваши настройки памяти / файла подкачки. Люди из MS потратили гораздо больше времени на размышления над этими вопросами, чем большинство из нас, сисадминов.
Многие люди, похоже, предполагают, что Windows помещает данные в файл подкачки по требованию. Например: что-то требует много памяти, и не хватает оперативной памяти, чтобы удовлетворить потребность, поэтому Windows начинает безумно записывать данные из оперативной памяти на диск в эту последнюю минуту, чтобы освободить оперативную память для новых требований.
Это неверно Там больше происходит под капотом. Вообще говоря, Windows поддерживает резервное хранилище , а это означает, что она хочет видеть все, что находится в памяти, также где-то на диске. Теперь, когда что-то приходит и требует много памяти, Windows может очень быстро очистить ОЗУ, потому что эти данные уже находятся на диске и готовы к переносу обратно в ОЗУ, если это необходимо. Таким образом, можно сказать, что большая часть того, что находится в файле подкачки, также находится в ОЗУ; данные были предварительно помещены в файл подкачки, чтобы ускорить новые требования к выделению памяти.
Описание конкретных задействованных механизмов займет много страниц (см. Главу 7 « Внутренние компоненты Windows» и обратите внимание, что скоро будет доступна новая редакция ), но есть несколько приятных моментов, на которые следует обратить внимание. Во-первых, большая часть того, что находится в ОЗУ, уже находится на диске - например, программный код, извлекаемый из исполняемого файла или DLL. Так что это не нужно записывать в файл подкачки; Windows может просто отслеживать, откуда изначально были получены биты. Во-вторых, Windows отслеживает, какие данные в ОЗУ используются наиболее часто, и таким образом удаляет из ОЗУ те данные, которые остались самыми длинными без доступа.
Полное удаление файла подкачки может привести к перегрузке диска. Представьте себе простой сценарий, когда некоторые приложения запускаются и требуют 80% существующей оперативной памяти. Это вынудит текущий исполняемый код из ОЗУ - возможно, даже код ОС. Теперь каждый раз, когда другие приложения - или сама ОС (!!) нуждаются в доступе к этим данным, ОС должна извлекать их из резервного хранилища на диске, что приводит к значительным сбоям. Поскольку без файла подкачки, служащего резервным хранилищем для переходных данных, единственное, что может быть разбито на страницы, - это исполняемые файлы и библиотеки DLL, в которых изначально были встроенные резервные хранилища.
Конечно, существует множество сценариев использования ресурсов. Не исключено, что у вас есть один из сценариев, при котором не будет побочных эффектов от удаления файла подкачки, но это меньшинство. В большинстве случаев удаление или уменьшение файла подкачки приведет к снижению производительности в сценариях пикового использования ресурсов.
Некоторые ссылки:
dmo отметил недавний пост Эрика Липперта, который помогает в понимании виртуальной памяти (хотя и менее связан с вопросом). Я помещаю это здесь, потому что я подозреваю, что некоторые люди не будут прокручивать вниз к другим ответам - но если вы находите это ценным, вы должны сделать голосование, так что используйте ссылку, чтобы попасть туда!
Эрик Липперт недавно написал запись в блоге, описывающую, как Windows управляет памятью. Короче говоря, модель памяти Windows можно рассматривать как хранилище дисков, где ОЗУ выступает в качестве кеша для повышения производительности.
источник
Как я вижу из других ответов, я единственный, кто отключил файл подкачки и никогда не сожалел об этом. Большой :-)
И дома, и на работе у меня Vista 64-битная с 8 ГБ оперативной памяти. У обоих файл подкачки отключен. На работе для меня нет ничего необычного в том, чтобы иметь несколько экземпляров Visual Studio 2008, Virtual PC с Windows XP, 2 экземпляра SQL Server и Internet Explorer 8 с множеством вкладок, работающих вместе. Я редко достигаю 80% памяти.
Я также использую гибридный сон каждый день (спячка со сном) без каких-либо проблем.
Я начал экспериментировать с ним, когда у меня была Windows XP с 2 ГБ оперативной памяти, и я действительно увидел разницу. Классический пример был, когда значки на панели управления перестали показывать себя один за другим, но все сразу. Также значительно увеличилось время запуска Firefox / Thunderbird. Все начало работать сразу после того, как я что-то нажал. К сожалению, 2 ГБ было слишком мало для использования моих приложений (Visual Studio 2008, Virtual PC и SQL Server), поэтому я включил его снова.
Но сейчас с 8 ГБ я никогда не хочу возвращаться и включать файл подкачки.
Для тех, кто говорит о крайних случаях, возьмите это из моих времен Windows XP.
Когда вы пытаетесь загрузить большую сводную таблицу в Excel из запроса SQL, Excel 2000 довольно быстро увеличивает использование памяти.
Когда у вас отключен файл подкачки - подождите немного, а затем Excel взорвется, и система очистит всю память после него.
Когда у вас включен файл подкачки - вы ждете некоторое время, и когда вы заметите, что что-то не так, вы почти ничего не можете сделать с вашей системой. Ваш жесткий диск работает как ад, и даже если вам как-то удастся запустить диспетчер задач (после нескольких минут ожидания) и убить,
excel.exe
вы должны подождать минуту или около того, пока система не загрузит все обратно из файла подкачки.Как я увидел позже, Excel 2003 обрабатывает одну и ту же сводную таблицу без каких-либо проблем с отключенным файлом подкачки, так что это не было «слишком большой проблемой набора данных».
Так что, на мой взгляд, отключенный файл подкачки даже иногда защищает вас от плохо написанных приложений.
Коротко: если вам известно об использовании памяти - вы можете безопасно отключить ее.
Изменить: я просто хочу добавить, что я установил Windows Vista SP2 без каких-либо проблем.
источник
Вы можете сделать некоторые измерения, чтобы понять, как ваша собственная система использует память, прежде чем вносить изменения в файл подкачки. Или (если вы все еще хотите внести коррективы) до и после указанных корректировок.
Perfmon является инструментом для этого; не диспетчер задач. Ключевой счетчик - Память - Ввод страниц / сек . Это будет специально отображать ошибки на жестких страницах, те, где требуется чтение с диска, прежде чем процесс может быть продолжен. Мягкие страничные ошибки (которые большинство элементов на диаграмме в по умолчанию Page Отказы / с прилавка;! Я рекомендую игнорируя , что счетчик) на самом деле не является проблемой; они просто показывают элементы, считываемые из ОЗУ нормально.
Граф Perfmon http://g.imagehost.org/0383/perfmon-paging.png
Выше приведен пример системы без забот о памяти. Очень редко наблюдается резкий сбой - их нельзя избежать, поскольку жесткие диски всегда больше оперативной памяти. Но график в основном плоский на нуле. Таким образом, ОС редко загружает данные из резервного хранилища.
Если вы видите график Memory - Pages Input / sec, который намного шире, чем этот, правильный ответ - либо уменьшить использование памяти (запустить меньше программ), либо добавить RAM. Изменение настроек вашего файла подкачки не изменит того факта, что от системы требуется больше памяти, чем на самом деле.
Удобный дополнительный счетчик для мониторинга - PhysicalDisk - Avg. Длина очереди (все экземпляры). Это покажет, насколько ваши изменения влияют на использование самого диска. Система с хорошим поведением покажет среднее значение этого счетчика на уровне 4 или менее на шпиндель .
источник
Я годами запускаю свою 8 ГБ Vista x64 без файла подкачки, без каких-либо проблем.
Проблемы действительно возникали, когда я действительно использовал свою память!
Три недели назад я начал редактировать действительно большие файлы изображений (~ 2 ГБ) в Photoshop. Один сеанс редактирования съел всю мою память. Проблема: я не смог сохранить свою работу, так как Photoshop требуется больше памяти для сохранения файла!
И поскольку это был сам Photoshop, который поглощал всю память, я не мог даже освободить память, закрывая программы (ну, я сделал, но это было слишком мало, чтобы помочь).
Все, что я мог сделать, это отказаться от своей работы, включить файл подкачки и повторить всю свою работу - из-за этого я потерял много работы и не могу рекомендовать отключение файла подкачки.
Да, это будет прекрасно работать большую часть времени. Но в тот момент, когда он сломается, может быть больно.
источник
Несмотря на то, что ответы здесь достаточно хорошо охватили тему, я все же рекомендую прочитать это:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
Он говорит о размере ПФ почти в конце:
Мне очень нравятся статьи Марка.
источник
Лучший ответ, который я могу придумать, заключается в том, что при нормальной загрузке вы не можете использовать 8 ГБ, но это неожиданные нагрузки, которые могут привести к проблемам.
С файлом подкачки система будет по крайней мере работать медленно, как только она начнет попадать на страницу. Но если вы удалите файл подкачки, он просто умрет (насколько я знаю).
Кроме того, 8 ГБ сейчас кажутся большими, но через несколько лет это можно считать минимальным объемом памяти для большого количества программного обеспечения.
В любом случае - я бы порекомендовал сохранить хотя бы небольшой файл подкачки; но другие, пожалуйста, поправьте меня, если я вне базы.
источник
Вы не упомянули, является ли это 64-битной версией Windows, но я думаю, что да.
Файл подкачки служит многим вещам, включая генерацию дампа памяти в случае BSoD (Blue Screen of Death).
Если у вас нет файла подкачки, Windows не сможет вывести страницу на диск, если не хватит памяти. Вы можете подумать, что с 8 ГБ вы не достигнете этого предела. Но у вас могут быть плохие программы с утечкой памяти со временем.
Я думаю, что это не позволит вам перейти в спящий / ждущий режим без файла подкачки (но я еще не пробовал).
Windows 7/2008 / Vista не меняет использование файла подкачки.
Я видел одно объяснение от Марка Руссиновича (Microsoft Fellow), объясняющего, что Windows может работать медленнее без файла подкачки, чем с файлом подкачки (даже с большим количеством оперативной памяти). Но я не могу найти основную причину.
Вам не хватает места на диске? Я бы оставил минимум 1 ГБ, чтобы иметь возможность получить дамп ядра в случае BSoD.
источник
Я отключил файл подкачки (8 ГБ на ноутбуке с архитектурой x86), и у меня возникли две проблемы даже с 2500 МБ свободной:
Ошибка ASP.NET при попытке активировать службу WCF : не удалось проверить ворота памяти, поскольку свободная память (399 556 608 байт) занимает менее 5% от общего объема памяти. В результате сервис не будет доступен для входящих запросов. Чтобы решить эту проблему, уменьшите нагрузку на компьютер или измените значение minFreeMemoryPercentageToActivateService в элементе конфигурации serviceHostingEnvironment.
Сколько 3,7 ГБ меньше, чем 5% от 8 ГБ, я никогда не узнаю !!
Открытие программ закрытия программ для предотвращения потери информации . Когда используется 75% ОЗУ, появляется диалоговое окно с предложением закрыть программы. Вы можете отключить это с помощью изменения реестра (или, возможно , отключив «Службу политики диагностики»).
В конце концов я решил снова включить его. Windows просто-напросто никогда не была разработана для использования без файла подкачки. Он оптимизирован для работы с пейджингом, а не без. Если вы планируете использовать более 75% памяти и не хотите связываться с реестром - тогда это может быть не для вас.
источник
Единственный человек, который может сказать вам, если вашим серверам или рабочим станциям «нужен» файл подкачки, - это вы , с осторожным использованием системного монитора или того, как он называется в наши дни. Какие приложения вы используете, какую пользу они видят, и что самое высокое возможно использование памяти потенциально вы можете увидеть?
Стоит ли рисковать стабильностью ради экономии небольшого количества денег на маленьких жестких дисках?
Что происходит, когда вы загружаете очень большой патч, скажем, пакет обновления. Если служба установки решит, что ей нужно больше памяти, чем вы предполагали, чтобы распаковать патч, что тогда? Если ваш антивирусный сканер (по праву) решит сканировать этот очень большой пакет, какое использование памяти ему понадобится, пока он распаковывает и сканирует этот файл исправлений - я надеюсь, что файл архива исправлений не содержит никаких архивов, потому что это абсолютно убийство цифра использование памяти.
Что я могу вам сказать, так это то, что удаление вашего файла подкачки имеет гораздо большую вероятность причинить вред, чем помощь. Я не вижу причины, по которой у вас такого не будет - я уверен, что может быть несколько случаев, когда я ошибаюсь, но это совсем другая область.
источник
Ваша общая доступная память - ваш файл подкачки + фактическая память.
Ключевой вопрос заключается в том, приближается ли ожидаемое суммарное использование памяти для всех приложений и операционной системы к 8 ГБ. Если ваше среднее использование памяти составляет 2 ГБ, а максимальное использование памяти - всего 4 ГБ, тогда файл подкачки не имеет смысла. Если ваше максимальное использование памяти ближе к 6-7 Гб или больше, лучше иметь файл подкачки.
PS: не забудьте учесть рост в будущем!
источник
Похоже, что многие сильно ограниченные люди имеют мнение по этому вопросу, но на самом деле никогда не пытались запустить свой компьютер без файла подкачки.
Мало, если не почти, пытались. Кажется, еще меньше знают, как Windows обрабатывает файл подкачки. Он не «просто» заполняется, когда у вас заканчивается физическая память. Бьюсь об заклад, большинство из вас даже не знали, что ваша «свободная» оперативная память используется в качестве файлового кэша!
Вы МОЖЕТЕ получить значительные улучшения производительности, отключив файл подкачки. Ваша система будет более восприимчива к ошибкам нехватки памяти (и знаете ли вы, как ваши приложения реагируют в этом сценарии - по большей части ОС просто завершает работу приложения). Время запуска из режима ожидания или длительных периодов простоя будет намного быстрее.
Если бы Microsoft фактически разрешила вам установить опцию, при которой файл подкачки будет использоваться ТОЛЬКО при отсутствии физической памяти (и все файловые буферы были отброшены), то я думаю, что отключение файла подкачки принесет мало пользы.
источник
Это противоядие, но мы используем сервер терминалов Windows Server 2003 для примерно 20 пользователей, при этом 10-15 подключаются одновременно и имеют 8 ГБ ОЗУ. Мы не работаем с файлом подкачки, и наш сервер работает быстрее, чем раньше. Это, очевидно, не решение для всего, но мы работаем вот так вот уже два года, и у меня не было проблем, о которых я знаю.
источник