любая выгода или ущерб от удаления файла подкачки на 8 гб ram машине?

<p>я использую windows 7 на двухъядерном процессоре x64 amd с 8 гб оперативной памяти.</p><p>мне даже нужен файл подкачки?</p><p>поможет ли это удалить или ухудшить производительность?</p><p>будет ли иметь значение, если это сервер или рабочий стол?</p><p>есть ли разница между windows 7 и windows 2008 с файлом подкачки?</p>

<p><em> tl; dr версия: пусть windows обрабатывает ваши настройки памяти/файла подкачки. люди в ms потратили <strong> много </strong> больше часов на размышления над этими вопросами, чем большинство из нас, сисадминов.</em></p><p>многие люди, кажется, предполагают, что windows помещает данные в файл подкачки по требованию. eg: что-то требует много памяти, и не хватает ram, чтобы удовлетворить потребность, поэтому windows начинает безумно записывать данные с ram на диск в этом в последнюю минуту, так что он может освободить ram для новых требований.</p><p>это неверно там больше происходит под капотом. вообще говоря, windows поддерживает <strong> резервное хранилище </strong>, что означает, что она хочет видеть все, что находится в памяти, также где-то на диске. теперь, когда что-то приходит и требует много памяти, windows может очистить ram) очень быстро, потому что эти данные уже <strong> </strong> на диске, готовый к переносу обратно в ram, если это необходимо. поэтому можно сказать, что большая часть того, что находится в файле подкачки, <em> также</em> в ram; данные были <strong> предварительно </strong> помещены в файл подкачки для ускорения <em> new</em> требования к выделению памяти.</p><p>для описания конкретных задействованных механизмов потребуется много страниц (см. главу 7 из <a href="http://rads.stackoverflow.com/amzn/click/0735619174">windows internals</a> и обратите внимание, что <a href="http://rads.stackoverflow.com/amzn/click/0735625301">новая редакция</a> скоро будет доступна), но есть несколько приятных вещей отметить. во-первых, многое из того, что находится в ram по сути уже находится на диске - программный код извлекается из исполняемого файла или, например, dll). необходимо записать в файл подкачки; windows может просто отслеживать, откуда изначально были получены биты. во-вторых, windows отслеживает, какие данные в ram наиболее часто используются, и поэтому очищается от ram те данные, которые дольше всех остались без доступа.</p><p>полное удаление файла подкачки может привести к перегрузке диска. представьте себе простой сценарий, когда некоторые приложения запускаются и требуют 80% существующей оперативной памяти. это вынудит текущий исполняемый код из ram - возможно, даже кода ос. теперь каждый раз, когда этим другим приложениям - или самой ос (!!) требуется доступ к этим данным, ос должна просматривать их из резервного хранилища на диске, что приводит к значительному перерасходу, поскольку без файла подкачки, служащего резервным хранилищем для переходных данных, единственными вещами, которые могут быть выгружены, являются исполняемые файлы и библиотеки dll, для которых изначально были созданы собственные резервные хранилища.</p><p>конечно, существует множество сценариев использования ресурсов. не исключено, что у вас есть один из сценариев, при котором не будет побочных эффектов от удаления файла подкачки, но это меньшинство. в большинстве случаев удаление или уменьшение файла подкачки приведет к снижению производительности в сценариях пикового использования ресурсов.</p><p>некоторые ссылки:</p><ul> <li>книга (ы) windows internals ( <a href="http://rads.stackoverflow.com/amzn/click/0735619174">4-е издание</a> и <a href="http://rads.stackoverflow.com/amzn/click/0735625301">5-е издание</a> )</li> <li> <a href="http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx">раздвигая границы windows: физическая память</a> </li> <li> <a href="http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx">раздвигая границы windows: виртуальная память</a> </li> <li> <a href="http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx">внутри ядра windows vista: часть 1</a> </li> <li> <a href="http://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx">внутри ядра windows vista: часть 2</a> </li> <li> <a href="http://technet.microsoft.com/en-us/magazine/2007.04.vistakernel.aspx">внутри ядра windows vista: часть</a> </li> <li> <a href="http://www.tweakhound.com/xp/virtualmemory.htm">понимание виртуальной памяти</a> </li> <li> <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;555223&sd=tech">ram, виртуальная память, pagefile и все такое</a> (вот <a href="http://members.shaw.ca/bsanders/windowsgeneralweb/ramvirtualmemorypagefileetc.htm">более длинная версия</a> )</li> <li> <a href="http://azius.com/blog/pagefile-yes1/">синдром нехватки памяти, или: почему мне все еще нужен файл подкачки?</a> </li> </ul><p> <a href="https://serverfault.com/a/31218/25092">отметил dmo</a> недавний <a href="http://blogs.msdn.com/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx">пост эрика липперта</a> , который помогает в понимании виртуальной памяти (хотя и менее связан с вопросом). я помещаю это здесь, потому что я подозреваю, что некоторые люди не будут прокручивать вниз к другим ответам - но если вы находите это ценным, вы должны <strong> dmo </strong> голосовать так что используйте <a href="https://serverfault.com/a/31218/25092">ссылка</a> чтобы попасть туда!</p>

<p>эрик липперт недавно написал <a href="http://blogs.msdn.com/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx">запись в блоге</a> о том, как windows управляет памятью. короче говоря, модель памяти windows можно рассматривать как хранилище дисков, где ram действует как кэш, повышающий производительность).</p>

<p><strong>как видно из других ответов, я единственный, кто отключил файл подкачки и никогда не сожалел об этом. отлично: -)</strong></p><p>и дома, и на работе у меня vista 64-битная с 8 гб оперативной памяти. у обоих файл подкачки отключен. на работе для меня нет ничего необычного в том, чтобы иметь несколько экземпляров visual studio 2008, virtual pc с windows xp, 2 экземпляра sql server и internet explorer 8 с множеством вкладок, работающих вместе. я редко достигаю 80% памяти.</p><p>я также использую гибридный сон каждый день (спячка со сном) без каких-либо проблем.</p><p>я начал экспериментировать с ним, когда у меня была windows xp с 2 гб ram), и я действительно увидел разницу. классический пример был, когда перестали отображаться значки в панели управления сам по себе, один за другим, но сразу. также резко возросло время запуска firefox/thunderbird. все стало работать сразу после того, как я нажал на что-то. к сожалению, 2 гб было слишком мало для моих приложений (visual studio 2008, virtual pc и sql server ), поэтому я включил его обратно.</p><p>но сейчас с 8 гб я никогда не хочу возвращаться и включать файл подкачки.</p><p>для тех, кто говорит о крайних случаях, возьмите это из моего windows xp раз).<br> когда вы пытаетесь загрузить большую сводную таблицу в excel из запроса sql, excel 2000 довольно быстро увеличивает потребление памяти.<br> если у вас отключен файл подкачки - подождите немного, а затем excel взорвется, и система очистит всю память после него.<br> когда у вас включен файл подкачки - вы ждете некоторое время, и когда вы заметите, что что-то не так, вы почти ничего не можете сделать с вашей системой. ваш жесткий диск работает как ад, и даже если вам как-то удастся запустить диспетчер задач (после нескольких минут ожидания) и убить <code>excel.exe</code> вы должны подождать минуту или около того, пока система не загрузит все обратно из файла подкачки.<br> как я увидел позже, excel 2003 обрабатывает одну и ту же сводную таблицу без каких-либо проблем с отключенным файлом подкачки - так что это не было "слишком большой проблемой набора данных".</p><p>так что, на мой взгляд, отключенный файл подкачки даже иногда защищает вас от плохо написанных приложений.</p><p><strong>коротко: если вам известно об использовании памяти - вы можете безопасно отключить ее.</strong></p><p><strong>edit:</strong> я просто хочу добавить, что я установил windows vista sp2 без проблем.</p>

<p>вы можете сделать некоторые измерения, чтобы понять, как ваша собственная система использует память, прежде чем вносить изменения в файл подкачки. или (если вы все еще хотите внести коррективы), до <em> и после</em> упомянутых корректировок.</p><p>perfmon является инструментом для этого; <em> нет</em> диспетчер задач. счетчик клавиш <em> память - ввод страниц/сек</em>. это, в частности, будет отображать <strong> жесткие </strong> сбои страниц, на которых требуется чтение с диска, прежде чем процесс может быть продолжен. <strong> мягкие </strong> сбои страницы (которые представляют собой большинство элементов, отображаемых по умолчанию <em> page faults/sec</em> counter; я рекомендую игнорировать этот счетчик!) на самом деле не проблема; они просто показывают элементы, считываемые из ram нормально.</p><p> <a href="http://g.imagehost.org/0383/perfmon-paging.png">граф perfmon http://g.imagehost.org/0383/perfmon-paging.png</a> </p><p>выше приведен пример системы без забот о памяти. очень редко наблюдается резкий сбой - их нельзя избежать, так как жесткие диски всегда больше оперативной памяти. но график в значительной степени плоский в нуле. таким образом, ос редко загружает данные из резервного хранилища.</p><p>если вы видите график <em> memory - pages input/sec</em>, который намного шире, чем этот, правильный ответ - либо уменьшить использование памяти (запустить меньше программ), либо добавить ram. изменение настроек вашего файла подкачки не изменит того факта, что от системы требуется больше памяти, чем на самом деле.</p><p>удобный дополнительный счетчик для мониторинга: <em> physicaldisk - avg. длина очереди</em> (все экземпляры). это покажет, насколько ваши изменения влияют на использование самого диска. система с хорошим поведением покажет среднее значение этого счетчика на уровне 4 или меньше <em> на шпиндель</em>.</p>

<p>я годами запускаю свою 8-гбайт vista x64 коробку без файла подкачки, без каких-либо проблем.</p><p>проблемы действительно возникали, когда я действительно использовал свою память!</p><p>три недели назад я начал редактировать действительно большие файлы изображений (~ 2 гб) в photoshop. один сеанс редактирования съел всю мою память. проблема: <strong>я не смог сохранить свою работу, поскольку photoshop требуется больше памяти для сохранения файла!</strong></p><p>и поскольку это был сам photoshop, который поглощал всю память, я даже не мог освободить память, закрывая программы (ну, я сделал, но это было слишком мало, чтобы помочь).</p><p>все, что я мог сделать, это отказаться от своей работы, включить файл подкачки и повторить всю свою работу - из-за этого я потерял много работы и не могу рекомендовать отключение файла подкачки.</p><p><strong>да, большую часть времени он будет отлично работать. но в тот момент, когда он сломается, может быть больно.</strong></p>

<p>несмотря на то, что ответы здесь достаточно хорошо охватили тему, я все же рекомендую прочитать это:</p><p> <a href="http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx">http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx</a> </p><p>он говорит о размере пф почти в конце:</p><blockquote> <p>некоторые считают, что отсутствие файла подкачки приводит к повышению производительности, но в целом наличие файла подкачки означает, что windows может записывать страницы в измененном списке (которые представляют страницы, к которым нет активного доступа, но которые не были сохранены на диск) на файл подкачки, что делает эту память доступной для более полезных целей (процессов или файлового кэша). таким образом, хотя могут быть некоторые рабочие нагрузки, которые работают лучше без файла подкачки, в общем, наличие одного из них будет означать, что системе будет доступно больше используемой памяти (не говоря уже о том, что windows не сможет записывать дампы ядра без большого размера файла подкачки). хватит их держать).</p> </blockquote><p>мне очень нравятся статьи марка.</p>

<p>лучший ответ, который я могу придумать, заключается в том, что при нормальной нагрузке вы не можете использовать 8 гб, но это неожиданные нагрузки, которые могут привести к проблемам.</p><p>с файлом подкачки система будет по крайней мере работать медленно, как только она начнет попадать на страницу. но если вы удалите файл подкачки, он просто умрет (насколько я знаю).</p><p>кроме того, 8 гб сейчас кажутся большими, но через несколько лет это можно считать минимальным объемом памяти для большого количества программного обеспечения.</p><p>в любом случае - я бы порекомендовал сохранить хотя бы небольшой файл подкачки; но другие, пожалуйста, поправьте меня, если я вне базы.</p>

<p>вы не упомянули, является ли это 64-битной версией windows, но я думаю, что да.</p><p>файл подкачки служит многим вещам, включая создание дампа памяти в случае <a href="http://en.wikipedia.org/wiki/blue\_screen\_of\_death">bsod</a> (синий экран смерти).</p><p>если у вас нет файла подкачки, windows не сможет вывести страницу на диск, если недостаточно памяти. вы можете подумать, что с 8 гб вы не достигнете этого предела. но у вас могут быть плохие программы с утечкой памяти со временем.</p><p>я думаю, что это не позволит вам перейти в спящий/ждущий режим без файла подкачки (но я еще не пробовал).</p><p>windows 7/2008/vista не меняет использование файла подкачки.</p><p>я видел одно объяснение марка руссиновича (microsoft fellow), объясняющего, что windows может работать медленнее без файла подкачки, чем с файлом подкачки (даже с большим количеством оперативной памяти). но я не могу найти основную причину.</p><p>вам не хватает места на диске? я бы оставил минимум 1 гб, чтобы иметь возможность получить дамп ядра в случае bsod.</p>

<p>единственный человек, который может сказать вам, если ваш сервер или рабочая станция "нуждаются" в файле подкачки - это <strong>вы</strong>, с осторожным использованием системного монитора или того, как он называется в наши дни. какие приложения вы используете, какое использование они видят, и какое максимальное <em> возможное </em> использование памяти вы можете увидеть?</p><p>стоит ли рисковать стабильностью ради экономии небольшого количества денег на маленьких жестких дисках?</p><p>что происходит, когда вы загружаете очень большой патч, скажем, пакет обновления. если служба установки решит, что ей нужно больше памяти, чем вы предполагали, чтобы распаковать патч, что тогда? если ваш антивирусный сканер (по праву) решит сканировать этот очень большой пакет, какое использование памяти ему потребуется, пока он распаковывает и сканирует этот файл исправлений - я надеюсь, что файл архива исправлений не содержит никаких архивов сам по себе, потому что это абсолютно <em> убийство </em> использует цифры памяти.</p><p>то, что я <em> могу </em> сказать вам, это то, что удаление вашего файла подкачки имеет гораздо большую вероятность причинить вред, чем помочь. я не вижу причины, по которой у вас такого не будет - я уверен, что может быть несколько случаев, когда я ошибаюсь в этом, но это совсем другая область.</p>

<p>я отключил файл подкачки (8 гб на ноутбуке с архитектурой x86), и у меня возникли две проблемы, даже если на нем было 2500 мб:</p><ol> <li> <p><strong> ошибка asp.net при попытке активировать службу wcf </strong>: проверка шлюзов памяти не удалась, так как объем свободной памяти (399 556 608 байт) составляет менее 5% от общего объема памяти. в результате сервис не будет доступен для входящих запросов. чтобы решить эту проблему, либо уменьшите нагрузку на компьютер, либо измените значение minfreememorypercentagetoactivateservice в элементе конфигурации servicehostingenvironment.</p> <p>сколько 3,7 гб меньше, чем 5% от 8 гб, я никогда не узнаю !!</p> </li> <li> <p>получение <strong> закрытие программ для предотвращения потери информации </strong> диалоговое окно: когда используется 75% моего ram), я получаю диалоговое окно с сообщением мне закрыть программы. <a href="http://social.technet.microsoft.com/forums/en/itprovistasetup/thread/08ecb6b8-a5b6-445d-a71e-65eafa9692e4">вы можете отключить это с помощью изменения реестра</a> (или <em> возможно</em>, отключив "службу политики диагностики").</p> </li> </ol><p>в конце концов я решил снова включить его. windows просто-напросто никогда не была разработана для использования без файла подкачки. он оптимизирован для работы с пейджингом, а не без него. если вы планируете использовать более 75% памяти и не хотите связываться с реестром - тогда это может быть не для вас.</p>

<p>похоже, что многие сильно ограниченные люди имеют мнение по этому вопросу, но на самом деле никогда не пытались запустить свой компьютер без файла подкачки.</p><p>мало, если не почти, пытались. кажется, еще меньше знают, как windows обрабатывает файл подкачки. он не "просто" заполняется, когда у вас заканчивается физическая память. могу поспорить, что большинство из вас даже не знали, что ваше "свободное" ram используется в качестве файлового кэша!</p><p>вы можете получить значительные улучшения производительности, отключив файл подкачки. ваша система будет более восприимчива к ошибкам нехватки памяти (и знаете ли вы, как ваши приложения реагируют в этом сценарии - по большей части ос просто закрывает приложение). время запуска из режима ожидания или длительных периодов простоя будет намного быстрее.</p><p>если бы microsoft фактически разрешила вам установить опцию, в соответствии с которой файл подкачки будет использоваться только при отсутствии физического ram (и все файловые буферы были отброшены), тогда я думаю, что отключение было мало файл подкачки.</p>

<p>ваша общая доступная память - ваш файл подкачки + фактическая память.</p><p>ключевой вопрос заключается в том, приближается ли ожидаемое суммарное использование памяти для всех приложений и операционной системы к 8 гб. если ваше среднее использование памяти составляет 2 гб, а максимальное использование памяти - всего 4 гб, тогда файл подкачки не имеет смысла. если ваше максимальное использование памяти ближе к 6-7 гб или больше, лучше иметь файл подкачки.</p><p>ps: не забудьте учесть рост в будущем!</p>