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

97

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

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

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

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

user1306322
источник
57
Наличие файла подкачки на RAM-диске никогда ничего не добьется. Вы забираете определенный объем доступной памяти и добавляете определенный объем виртуальной памяти. Null-сумма. Просто нет файла подкачки.
USR
14
В некоторых случаях имеет смысл сделать это в Linux, когда виртуальный диск, на котором находится файл подкачки, фактически сжат. Смотрите: en.wikipedia.org/wiki/Zram . Однако я не думаю, что в Windows есть такая возможность.
Мэтт H
2
Ответ - да, но есть много неверующих.
Мердад
14
@ user367257 создание оперативного диска для хранения файла подкачки - это все равно, что одолжить своему другу 10 фунтов, чтобы у него было достаточно денег, чтобы вы могли одолжить у него 10 фунтов. Это может быть технически возможно, но все, что вы сделали, - это излишне усложните путешествие в никуда.
Роб Мойр
2
Я бы (и делал) отключил его только для SSD, так как вы получаете только столько записей (даже если сейчас много) с 6 ГБ. Это работает хорошо.
Ry-

Ответы:

134

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

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

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

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

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

Дэвид Шварц
источник
9
Я противоречил понижению. Но к вашему последнему комментарию: я запускаю 2 разные машины без обмена. Это прекрасно, если вы точно знаете, как будет использоваться машина.
spudone
6
Я подозреваю, что файл подкачки в ramdrive начинался как «обходной путь» культового груза, потому что некоторое программное обеспечение откажется запускаться, если обнаружит, что файл подкачки отсутствует. (Мне сказали, что графические / видео инструменты Adobe делают это.)
Дэн Нили,
8
@DavidSchwartz Информация, которую вы предоставляете, технически верна, и это полезная информация. Но вывод о том, что у вас всегда должен быть файл подкачки, независимо от того, сколько у вас ОЗУ, неверен, и я подтверждаю, что это не должно быть принятым ответом.
Джейсон Уилер
5
Мне просто не нравится слышать, что «файлы подкачки - это волшебство, поэтому не выключайте их, или вы пожалеете», когда я знаю, что при многих распространенных обстоятельствах вы можете их отключить и безопасно видеть улучшение производительности, потому что вы больше не увеличивают дисковый ввод-вывод на 100% или выше, когда MMS-сообщение хочет что-то сделать. Все, что я хочу услышать от людей на другой стороне этой дискуссии, это «да, есть обстоятельства, когда вы можете отключить их и уменьшить дисковый ввод-вывод, что может привести к перегрузке». Я не говорю, что файлы подкачки всегда плохи, может быть, вы можете сказать, что они не всегда необходимы.
Фред Гамильтон
5
Я понял, что меня поразило во всем этом то, что одна сторона, кажется, говорит: «файлы подкачки никогда не делают ничего хорошего, а другая -« файлы подкачки ужасны », и тогда люди оказываются укорененными с одной или другой стороны. Истина заключается в том, что в некоторых случаях они очень полезны и даже предотвращают сбои, а в других случаях они не нужны и могут фактически привести к снижению производительности. Я доволен этим как моим последним утверждением. Живи долго и процветай, Дэвид Шварц.
Фред Гамильтон
32

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

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

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

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

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

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

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

Арт Гертнер
источник
2
@ChrisH Вы также, вероятно, не сможете загрузить базу данных sql в текстовый процессор, поскольку они полностью работают в ОЗУ :-)
TylerH
9
Этот ответ неверен и содержит много дезинформации. Но простой способ понять, почему это не так - люди, которые разработали поведение памяти вашей операционной системы, вероятно, являются одними из самых умных людей в мире. Зачем им разрабатывать такую ​​систему, чтобы дать ей больше возможностей (возможность поменять местами, если и только если она считает, что это лучше), что ухудшило бы ее производительность? Только идиот может разработать такую ​​систему.
Дэвид Шварц
17
@DavidSchwartz, я не вижу, как тот факт, что люди, которые разработали алгоритмы управления памятью, умны, имеет какое-либо значение для оригинальной темы. OP спросил, может ли отключение подкачки улучшить производительность, и я объяснил, что это может при определенных условиях и может привести к проблемам в других условиях. Отвечая на ваш вопрос, почему (?) - я могу сказать, потому что алгоритмы не идеальны, и пользователь должен их точно настроить. Вот почему в Linux есть параметр подкачки, и именно поэтому отключение подкачки вообще возможно.
Арт Гертнер,
11
@smc В сценарии использования ОП нет ничего необычного. Представление о том, что операционные системы не настроены должным образом для стандартных сценариев болот, является полной чушью. (См. Мой ответ для получения дополнительной информации о том, почему вы не хотите этого делать.)
Дэвид Шварц
4
Предположение, что данный алгоритм всегда будет принимать желаемое решение для пользователя, совершенно неверно. Они принимают решения на основе заданных параметров, которые, по мнению программистов, важны. Это вполне может противоречить тому, что должно произойти пользователю.
Анаксунаман,
14

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

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

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

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

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

Питер
источник
Но если файл подкачки находится на виртуальном ОЗУ, время, необходимое для копирования нескольких мегабайт из ОЗУ на виртуальный жесткий диск или обратно с него, будет сокращено. И если файл подкачки полностью отключен, на это не должно быть потрачено времени. Это верно?
user1306322
2
Верный. Копирование байтов из ОЗУ в файл подкачки, находящийся на виртуальном диске, является самым быстрым из возможных файлов подкачки. Но не копирование вообще умнее.
Питер
2
Файлы подкачки существуют, чтобы компенсировать недостаток оперативной памяти. Если есть много оперативной памяти, нет необходимости компенсировать. Ваша ОС по-прежнему будет использовать файл подкачки, поэтому в этом случае быстрее отключить его.
6
@Mast Это грубое упрощение. Также имеются файлы подкачки для эффективного использования оперативной памяти.
Дэвид Шварц
1
@DavidSchwartz Возможно, но это объяснение, которое объяснило мне это лучше всего. В большинстве случаев небольшое количество файла подкачки всегда выгоднее, чем файла подкачки. Однако у меня нет ресурсов, чтобы это подтвердить.
8

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

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

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

demonkoryu
источник
1
+1 за упоминание ZSWAP. Он обычно используется в некоторых мобильных платформах, а также в OS X 10.9 (хотя в дополнение к свопу).
James_pic
Обратите внимание, что «сжатый RAM-диск как диск подкачки» по-прежнему имеет проблему, заключающуюся в том, что он ничего не делает для всех «файлов подкачки», кроме самого файла подкачки.
Джейми Ханрахан
5

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

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

Для получения дополнительной информации см. Статью Microsoft « Общие сведения о файлах аварийных дампов» .

harrymc
источник
4

Для Windows, изо рта лошади:

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

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

  • полезная память - поэтому, хотя рекомендуется использовать виртуальную память, она также предполагает, что вам необходим действительно большой объем оперативной памяти, чтобы быть уверенным в преимуществах отсутствия файла подкачки / виртуальной памяти. У меня 4 ГБ ОЗУ 128 ГБ SSD без файла подкачки, но я использую его для просмотра веб-страниц и ввода документов в формате Word.
user127379
источник
2
Из моих личных уроков и кое-чего, что я проповедую всем новым сотрудникам: есть только 2 правила. # 1: Никогда не доверяй Microsoft. # 2 .. вы не слушали правило 1, так что нет правила 2.
Ник
3

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

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

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

JamesRyan
источник
3

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

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

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

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

Дэн W
источник
Спасибо за составление этого списка. Это должно помочь привести некоторые доказательства того, что теория и практика отличаются в этом вопросе. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.Да, как будто: p
user1306322
этот вывод ошибочен. тот факт, что операционная система записывает данные в файл подкачки, даже несмотря на то, что она, по-видимому, имеет «огромное количество свободной оперативной памяти», ничего не доказывает о «некорректной конструкции и философии». Это означает, что у вас недостаточно информации для правильной оценки решений ОС. Просто для начала рассмотрим случай, когда есть много измененных страниц. Они записываются в файл подкачки и перемещаются в резервный список - теперь они являются частью «доступных». Ты понял? Оперативная память доступна, потому что ее содержимое записано в файл подкачки!
Джейми Ханрахан
@JamieHanrahan: Это не объясняет, почему у людей все еще есть проблемы, несмотря на то, что они редко используют больше, чем часть оперативной памяти. Комментарии в этой теме: «Я никогда не использовал больше половины», «Использование файла подкачки составляет около 2,7 ГБ, при этом использование ОЗУ составляет 3,23 ГБ из 16 ГБ». «У меня был резкий рост производительности при использовании Illustrator, когда Я создал и переместил свой файл подкачки в RAMDisk ".
Дан W
Большинство из этих комментариев из-за плохой информации. Проблемы с производительностью вряд ли будут решены путем хранения содержимого в оперативной памяти, к которому не часто обращаются. Файл подкачки - не единственный файл, участвующий в подкачке; Существуют сотни других, поэтому маловероятно, что выполнение чего-либо, затрагивающего только файл подкачки (и отнимающее ГБ ОЗУ от остальной части системы, тем самым увеличивая частоту сбоев страниц), будет иметь какой-либо «драматический» эффект. Такие отчеты обычно не поддерживаются, когда проводятся должным образом контролируемые тесты. Вы можете найти анекдоты в поддержку практически любого убеждения; Я нахожу их неубедительными.
Джейми Ханрахан
В частности, утверждение «файл подкачки используется» требует подтверждения. Наличие в файле подкачки ГБ содержимого еще не доказывает, что файл подкачки используется таким образом, что это ставит его на критический уровень производительности. Чтобы оценить это, изолируйте файл подкачки в отдельном разделе - или, по крайней мере, в том, который не используется активно ни для чего другого - и затем вы можете использовать PerfMon на этом «логическом диске» для мониторинга его скорости ввода-вывода. Если файл подкачки не читается часто, не имеет значения, сколько в него записано!
Джейми Ханрахан
2

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

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

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

Питер
источник
2

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

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

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

NSN
источник
2

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

Майкл
источник
Было бы намного лучше, если бы вы поместили файл подкачки на свой SSD. Windows не будет использовать его, если это не нужно. Поместить файл подкачки на RAM-диск просто смешно. Да, сбои страниц в этом «файле» будут устраняться быстрее, чем если бы они были на реальном диске, но, в первую очередь, назначая ОЗУ RAM-диску, вы увеличиваете количество сбоев страниц. Это похоже на заимствование денег у себя, начисление процентов и выбрасывание «процентов». Это даже не неправильно.
Джейми Ханрахан
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.

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

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

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

Во всяком случае, вот одно не очень расплывчатое описание:

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

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

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

Например, в 32-разрядной архитектуре x86 имеется два сегмента оперативной памяти по 2 ГБ.

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

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

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

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

ОЗУ - это быстрое запоминающее устройство, жесткий диск - более медленное запоминающее устройство, поэтому, по сути, ОЗУ - это кэш-память первого уровня, а жесткий диск - это уровень 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, - чтобы добавить ссылки ).

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

введите описание изображения здесь

введите описание изображения здесь

3-й снимок экрана: бинарный интерфейс приложения System V, добавление к архитектуре процессора AMD64, версия 0.99.7

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

Роберт Фишер
источник
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
DavidPostill