Должен ли я отключить файл подкачки, если у меня много ОЗУ или я должен переместить его на виртуальный RAM-диск?

Представьте, что у меня много ОЗУ. Скажем, 64 ГБ. Это много для даже игровых ПК. Теперь местоположение файла подкачки по умолчанию в Windows находится на главном диске ОС, будь то жесткий диск или SSD, которые быстрее в целом, но все же не так быстро, как оперативная память.

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

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

Будет ли это работать? Если нет, то почему?

92 голоса | спросил user1306322 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 12:34:47 +0400 2014, 12:34:47

12 ответов


133

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

Рассмотрим, например, если программа делает доступное для записи, личное запоминающее устройство памяти 4 ГБ файла. ОС должна резервировать 4 ГБ ОЗУ для этого сопоставления, потому что программа может, по-видимому, модифицировать каждый байт, и нет места, кроме ОЗУ для ее хранения. Итак, сразу 4 ГБ ОЗУ в основном теряются впустую (его можно использовать для кэширования чистых дисковых страниц, но это о нем).

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

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

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

ответил David Schwartz 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 19:43:35 +0400 2014, 19:43:35
30

Вы полностью правы в своем предположении.

Алгоритмы управления памятью очень сложны и ни в коем случае не идеальны. Таким образом, замена происходит даже тогда, когда имеется много резервной ОЗУ. В некоторых системах, таких как Linux, вы можете управлять swappiness , другими вы не можете. Поменяв данные, когда по-прежнему много ОЗУ, система по-своему готовится к ситуации, когда может закончиться ОЗУ.

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

Одна вещь, которую следует учитывать (и вы уже упоминали об этом) - вам нужно иметь достаточно ОЗУ для размещения всех исполняемых вами программ, иначе вы рискуете запустить из памяти . В этом случае производительность снизится, некоторые процессы могут быть прекращены ОС, и система может столкнуться с аварийным завершением /замораживанием. (подробнее об этом здесь )

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

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

Также читайте:

ответил Art Gertner 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 12:55:10 +0400 2014, 12:55:10
14

Можете ли вы безопасно отключить файл подкачки?

Если у вас закончилась свободная память, включая виртуальную память, система не может продолжать гарантировать детерминированное исполнение и заканчивается сама. Прежде чем это произойдет, операционная система будет выполнять различные другие функции, такие как убийство программ, которые используют слишком много памяти. Я хочу сказать, что память всегда конечна, и каждая ОС может справиться с этим. Поэтому ограничение общей доступной памяти до 64 ГБ не повредит Windows - многие системы не могут выходить за пределы 8 ГБ даже с файлом подкачки, потому что с 1 или 2 ГБ RAM файл подкачки обычно намного меньше 6 или 7 ГБ. Следует отметить, что до тех пор, пока у вас избыточное количество неиспользуемой ОЗУ, накладные расходы ОС, поддерживающие файл подкачки, не будут поддаваться измерению.

Имеет ли смысл разместить файл подкачки на ramdisk?

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

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

ответил Peter 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 12:52:05 +0400 2014, 12:52:05
8

Чтобы повторить то, что говорили другие, перемещение свопа на прямой RAM-диск довольно бессмысленно (в наиболее распространенном случае см. ниже). Он достигает того, что в определенный момент, когда система голодает для свободной памяти, некоторые данные перемещаются из ОЗУ в ОЗУ довольно неэффективно.

После замены на HDD /SSD достигается, что ОС может очистить некоторые полностью неиспользуемые страницы RAM и использовать свободное пространство, например. кеш файлов или другие системные буферы. Возможно, вы не понимаете, что система выделяет меньше этих буферов ОЗУ, поскольку у вас нет доступной виртуальной памяти без файла страницы; так что вы можете замедлить свою производительность, отключив обмен.

Однако, сжатый RAM-диск в качестве диска подкачки , диск ZSWAP, может быть полезен в случаях кросс (где вам может потребоваться только несколько дополнительных ОЗУ MB, чтобы избежать замены на HDD) что в некоторой степени улучшает пространственную эффективность сегмента ОЗУ.

ответил demonkoryu 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 19:42:08 +0400 2014, 19:42:08
4

Если у вас нет файла-страницы, тогда в случае BSOD (сбой) Windows не сможет записать файл дампа сбоя. Это означает, что вы не сможете проанализировать проблему, используя соответствующие инструменты.

Наличие файла страницы в ОЗУ рядом с бесполезным, поскольку оно может быть потеряно при сбое.

Дополнительные сведения см. в статье Microsoft Общие сведения о файлах дампа сбоев .

ответил harrymc 7 FebruaryEurope/MoscowbSat, 07 Feb 2015 23:55:55 +0300000000pmSat, 07 Feb 2015 23:55:55 +030015 2015, 23:55:55
4

Для Windows, из уст лошадей:

  

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

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • полезная память - поэтому, хотя она рекомендует иметь виртуальную память, она также предполагает, что вам действительно нужны большие объемы оперативной памяти, чтобы получить выгоду от отсутствия файла /виртуальной памяти. У меня 4 ГБ оперативной памяти 128 ГБ без файла страницы, но я использую его для просмотра веб-страниц и ввода текстовых документов.
ответил user127379 4 MarpmFri, 04 Mar 2016 14:32:35 +03002016-03-04T14:32:35+03:0002 2016, 14:32:35
3

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

Вы можете уменьшить его до примерно 2 /3rds объема памяти, если у вас больше, чем около 4 ГБ, потому что он сохраняет сжатое изображение памяти. Вы можете поместить его на свой медленный жесткий диск, к которому не подключается другой доступ к жесткому диску, если у вас нет места на SSD. Но это выгодно иметь где-то.

См. этот ответ для получения дополнительной информации о том, почему. https://superuser.com/a/286476/4236

ответил JamesRyan 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 11 Sep 2014 19:28:22 +0400 2014, 19:28:22
3

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

Однако на практике ошибочный дизайн и философия могут превратиться даже в ядро ​​Windows, а управление памятью Microsoft не обязательно идеально. Многие обнаружили, что размещение файла подкачки в Ramdisk действительно приводит к увеличению производительности , если у вас есть приличный объем памяти.

Я собрал сообщение, которое показывает коллекцию таких пользователей из потока одного форума, который обнаружил, что, несмотря на то, что у вас огромное количество RAM, файл подкачки все еще используется:

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290 # post_23508589

ответил Dan W 7 FebruaryEurope/MoscowbSat, 07 Feb 2015 18:07:41 +0300000000pmSat, 07 Feb 2015 18:07:41 +030015 2015, 18:07:41
2

Преобразование ОС, которая была разработана в самом ядре, чтобы не использовать swap, намного сложнее, чем кажется.

Современные Mac имеют раздел восстановления - часть основного диска с усеченной ОС, которая может восстановить или восстановить основную систему. В дни установки DVD они запускали собственный процесс, теперь система создает RAMdisk для раздела подкачки, поскольку установщик не может гарантировать наличие рабочего дискового пространства. ОС включает в себя необходимые фреймворки для запуска прилагаемого программного обеспечения для обслуживания, которое идентично утилитам, доступным после установки. Намного меньше работы для всех.

Ограничение системы на одно приложение за раз означает, что ramdisk-swap в принципе никогда не используется, но ОС ожидает, что он будет там.

ответил peter 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 13 Sep 2014 03:35:35 +0400 2014, 03:35:35
2

Если у вас достаточно памяти, ответ будет да, вы можете отключить своп. Swap был создан, чтобы преодолеть ограничения ОЗУ и сделать его использование более эффективным.

Вопрос в том, сколько ОЗУ достаточно ОЗУ? Для этого нет универсального ответа, и по природе системы остаются в памяти. Поэтому, если вы не работаете в очень конкретной и контролируемой среде, не выключайте swap.

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

ответил nsn 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 15 Sep 2014 14:47:05 +0400 2014, 14:47:05
1

Моя система имеет 24 ГБ ОЗУ, поэтому я отключил файл подкачки, чтобы предотвратить износ моего SSD без каких-либо проблем. Недавно я создал RAM-диск, используя 4 ГБ моей памяти для хранения файлов Google Chrome Cache, чтобы убедиться, что это увеличит производительность онлайн-игр Flash Player и общий веб-серфинг. Я вижу заметное увеличение производительности в этом эксперименте. Поскольку на моем RAM-диске было больше свободного места, я включил свой файл подкачки и установил минимальный и максимальный размер в 1 ГБ и переместил его на RAM-диск. Хотя, я не могу сказать, что было повышение производительности, моя система работает стабильнее.

ответил Michael 8 FebruaryEurope/MoscowbSun, 08 Feb 2015 01:48:12 +0300000000amSun, 08 Feb 2015 01:48:12 +030015 2015, 01:48:12
1

Перемещение файла подкачки в ОЗУ - это смешное понятие. Просто выключите его и увеличьте объем оперативной памяти. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

Управление памятью обрабатывается ЦП и включен или выключен файл подкачки, что не влияет на то, как обрабатываются страницы. Он прозрачен для Windows.

Приоритет страницы не изменяется, страницы будут отброшены одинаково. Страница-файлы используются ЦП в качестве вторичного хранилища, а не ОС. Это не что иное, как кеш второго уровня, когда заканчивается один уровень (ОЗУ).

Быстрый и очень грязный пример: моя машина имеет 16 ГБ оперативной памяти и не файл подкачки. 5 минут назад с 13 ГБ в режиме ожидания и всего 2 Гб бесплатно, я загрузил Fallout 4. Страницы с низким приоритетом были отброшены при загрузке Fallout.

Btw на боковой ноте, блог Technet 2008 о том, что вы нажимаете ограничения памяти Windows, очень вводит в заблуждение - я бы сказал, что обман. https://i.stack.imgur.com/wXkmi.png Я сомневаюсь, что даже Марк написал это, но я надеюсь, что нет, поскольку это изменит мою точку зрения на него.

В статье есть зияющие дыры в статье, которые я ошарашен, никто не выбрал, как часто этот блог ссылался

  • Файл подкачки и его расположение обрабатываются Windows, захват доступа к памяти в местах, которые были выгружены на диск, будет улавливаться ЦП, но передается операционной системе для извлечения страницы с диска и загрузки ее в .

В любом случае, вот одно не очень смутное описание:

Windows не может достичь более высоких адресов, чем процессор - это невозможно.

Независимо от того, что ОС на него по-прежнему ограничено аппаратным обеспечением, на котором оно работает ... потому что ОС фактически является самим ЦП (внутренние регистры).

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

В сегментированной архитектуре x86 32bit, например, есть два сегмента памяти объемом 2 ГБ.

Один выделяется ядру. Другие 2 ГБ предназначены для пользовательского режима. Это все ОЗУ , который CPU может использовать с 32 выводами DRAM, но 32-битный процесс имеет 4 ГБ, поэтому, что нужно делать. К счастью, CPU может использовать вторичное хранилище AKA на жестком диске для хранения дополнительных 2 ГБ страниц. Поскольку у него есть внутренние регистры
Физические места, где виртуальные страницы, на которые ссылается процесс, не должны храниться в ОЗУ. Но они где-то хранятся у CPU.

Процессор не может предоставить все 4 ГБ оперативной памяти для приложения, но может дать ему 4 ГБ адреса, используя HDD в качестве вторичного кеша (на самом деле это жесткий диск)

Страницы перемещаются в и из ОЗУ через внутренний механизм подкачки, но это не то же самое, что и файл подкачки. Пейджинг всегда происходит ....

Суть действительно не такая сложная. За последние 15 лет многим конечным пользователям было дано впечатление, что файл подкачки является неотъемлемой частью операционной системы, этоне. Это никогда не было. Это заблуждение частично подпитывается такими корпорациями, как Intel и Microsoft.

RAM - это быстрое устройство хранения данных, жесткий диск - это более медленное запоминающее устройство, поэтому по существу RAM - кеш уровня 1, жесткий диск - это уровень 2 (без учета кэша процессора для этой аналогии). Доступ к ЦП может выполняться ЦП.

Если для ЦП для хранения требуемых страниц недостаточно ОЗУ, жесткий диск может использоваться как переполнение. Если имеется много ОЗУ, то PF является избыточным.

До Core 2 процессоры Intel имели 32-контактную DRAM-шину и 32 регистра, что означало, что процессор имел доступ к 4 ГБ ОЗУ и 4 ГБ пространства на жестком диске (файл подкачки). Это ограничение на архитектурное оборудование, а не ограничение Windows.

Общее количество доступных для процессов составило 3,5 ГБ, поскольку таблица страниц занимает 512 МБ. Именно поэтому 3.5 ГБ появляется в Windows с процессорами Intel (до Core 2). Добавьте графический процессор и еще меньше.

Xeon может получить доступ в общей сложности до 32 ГБ оперативной памяти, 64 ГБ физического пространства с включенным HDD (файл подкачки снова). ( Это ^ охватывает PAE, более того, чтобы добавить ссылки ).

 введите описание изображения здесь>> </a>
<a href= http://www.windowsdevcenter.com/pub/а /окна /2004/04/27 /pagefile.html

 введите описание изображения здесь>> </a> </p>

<p> <a href= введите описание изображения здесь>> </a> </p>

<p> <strong> 3-й источник снимка экрана: </strong>
 Бинарный интерфейс приложения System V
Архитектура процессора архитектуры AMD64 Проект версии 0.99.7  </p>

<p>  Я намерен продолжать улучшать этот ответ и добавлять исходный материал и соответствующую информацию. Я хотел бы достичь баланса между недостаточной информацией и слишком большой технической информацией.
Предложения приветствуются. Пожалуйста, не занимитесь только потому, что он не может быть написан так хорошо. </Em> </p></body></html>

ответил Robert Fischer 19 J0000006Europe/Moscow 2017, 05:17:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132