Мне все еще нужно использовать виртуальную память?

14

Я бы подумал, что об этом уже спросили, но не могу его найти.

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

Стив Роу
источник
1
Внимание: драйверам выделяется ограниченный объем памяти, называемый разделами памяти non-pagedи pagedпула . Файл подкачки необходим, когда заполненный раздел загружается, как геймер, я видел, как игра жаловалась на память выгружаемого пула только потому, что у меня был отключен файл подкачки в системе объемом 8 ГБ. Вывод: файлы подкачки необходимы, они предотвращают истощение выгружаемого пула и фактически ускоряют работу вашей системы.
Тамара Вийсман

Ответы:

9

Поскольку память больше не является редким ресурсом на настольных ПК / ноутбуках, я сомневаюсь, что большинство программ могут корректно справляться с нехваткой памяти и вместо этого вылетают.
Итак: опасно? Да , если ваши 4 ГБ как-то израсходованы и у вас нет файла подкачки, приложения могут начать аварийно завершать работу.
И, как показано в примере Зорана, может быть трудно определить проблему позже.

В статье, на которую ссылается Рам, также говорится, что отключение обмена обычно не увеличивает скорость и может сделать наоборот :

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

foraidt
источник
Мне придется выкопать статью на сайте MS, но MS говорит, что у вас всегда должен быть файл подкачки. Даже в системах с высокой памятью отсутствие компьютера может замедлить работу вашей машины.
Келтари
10

См. Статью Марка Руссиновича о виртуальной памяти. Это должно дать вам хороший указатель о виртуальной памяти.

Вот полезный отрывок по ссылке

Итак, как вы узнаете, сколько коммитов требует ваша рабочая нагрузка? Вы могли заметить на скриншотах, что Windows отслеживает это число, а Process Explorer показывает его: Peak Commit Charge. Для оптимального размера файла подкачки вы должны запускать все приложения, которые вы запускаете одновременно, загружать типичные наборы данных, а затем отмечать пик фиксации оплаты (или посмотреть на это значение по истечении определенного периода времени, когда вы знаете, что была достигнута максимальная нагрузка). , Установите минимальное значение файла подкачки равным этому значению минус объем оперативной памяти в вашей системе (если значение отрицательное, выберите минимальный размер, чтобы разрешить тип аварийного дампа, для которого вы настроили). Если вы хотите иметь передышку для потенциально больших требований коммита, установите максимум, чтобы удвоить это число.

Прабху Р
источник
+1 для справки Марка Руссиновича. Всегда отлично читаю.
mrduclaw
3

Этот классический пост на ServerFault имеет несколько положительных моментов. Только для 4 ГБ я бы оставил файл подкачки в покое, а занимаемое на диске пространство в любом случае незначительно.

MartW
источник
3

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

Мне потребовалось довольно много времени, чтобы сопоставить 2, и у меня нет реальных доказательств того, что тот факт, что я отключил виртуальную память, вызвал BSOD, но мои машины стали более стабильными после того, как я снова включил их ...

Зоран
источник
Благодарю. Приятно слышать реальные результаты, а не только предположения.
Стив Роу
0

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

Я также использовал Windows (вероятно, 98) с 32 МБ и без файла подкачки - конечно, вы должны жить в этом пространстве памяти и ограничивать свои приложения в соответствии с ресурсами.

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

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

gnibbler
источник
-2

Ну, Стив, интересно, что ты должен это спросить.

Я расскажу вам маленький секрет: момент, когда вам нужна виртуальная память, никогда не был. Виртуальная память была безумно некомпетентной идеей, созданной группой ученых, которые ничего не знали о практических вычислительных системах, и ЛЮБОЙ компьютер будет работать намного лучше, если его можно будет запускать без ВМ.

Теперь вы можете спросить: если виртуальная машина бесполезна и вредна, почему ее используют большинство крупных современных операционных систем? Короткий ответ на этот вопрос заключается в том, что люди, решающие, использовать виртуальную машину или нет в Microsoft, Apple и IBM, были даже более глупыми и неопытными, чем ученые, которые изобрели виртуальную машину и хотели ее использовать, основываясь на тех же совершенно неверных предположениях, что академики имели, когда они это изобрели. Мы могли бы начать говорить об этих предположениях и заблуждениях, но, к сожалению, если бы их было легко понять и описать, у нас не было бы проблемы с ВМ.

Возвращаясь к вам. К сожалению, так же, как вышеупомянутые tardnoggins в Apple и Microsoft, у вас есть свои собственные заблуждения, а именно идея, что вы можете отключить виртуальную машину. Конечно, вы не можете выключить его, это лишило бы вас всякого смысла, если вы могли бы просто его выключить. Когда люди делают что-то действительно глупое, они всегда делают это необратимым. В конце концов, если бы все могли просто выключить ВМ, они бы это сделали, и это сделало бы бозо, которые его создали, довольно глупо, не так ли? Они предотвратили эту возможность, сделав ее неустранимой, подобно тому, как Microsoft сделала Internet Explorer неустранимым.

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

Тайлер Дурден
источник
Виртуальная память позволяет очень много хорошего. Если бы у вас не было виртуальной памяти, то у вас было бы достаточно оперативной памяти для хранения каждого байта кода и данных, которые определяет каждый процесс в вашей системе, независимо от того, на него когда-либо ссылались. Поскольку большинство программ тратят 90% своего времени, используя 10% своего кода и данных, это было бы огромной тратой. Вы также потеряете много других полезных вещей, которые здесь не дают возможности изложить в формате комментариев. Причина, по которой мы не отказались от виртуальной памяти, заключается в том, что это все еще очень хорошая идея. Даже в «практических вычислительных системах».
Джейми Ханрахан
@RickBrant Вы звучите как идиотские инженеры-электрики из Intel и IBM, которых я привык слушать в 1980-х, пытаясь объяснить, почему VM была хорошей идеей. Я помню, когда IBM выпустила OS / 2, которая была первой операционной системой, поврежденной виртуальной машиной, и мне пришлось послушать их, чтобы объяснить, почему это была отличная идея. Что ж, слава богу, OS / 2 умерла, но, к сожалению, VM продолжала работать, как зомби, так что сейчас 2017 год, и я все еще слушаю эту ерунду. Я поставлю доллары на пончики, у вас нет степени CS, ты? Это часть шутки. 99% парней, продвигающих VM, не являются программистами
Тайлер Дерден
Я был двойником по специальности, CS / EE, в одной из лучших технических школ на западном побережье. Сегодня я в основном программист, но я взаимодействую с типами оборудования. Теперь, у вас есть убедительное опровержение до такой степени, что было бы очень расточительно хранить каждый последний байт кода и данных, которые программа всегда определяет в ОЗУ, нужно это ей или нет? Потому что виртуальная память этого избегает. Или вы собираетесь продолжать личные атаки, которые равносильны «вы, должно быть, идиот»?
Джейми Ханрахан
Да, и «OS / 2, которая была первой операционной системой, поврежденной мозгом с помощью виртуальной машины», гм, нет, примерно через два десятилетия. Возможно, первая широко используемая ОС для ПК. (Но не первый для «персональных компьютеров».)
Джейми Ханрахан