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

4598
Steve Rowe

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

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

14
** Внимание: ** Существует только ограниченный объем памяти, выделяемый драйверам, который называется разделами памяти [`non-paged` и` paged`] (http://bit.ly/rttIee). Файл подкачки необходим, когда заполненный раздел загружается, как игрок, я видел, как игра жаловалась на память выгружаемого пула только потому, что у меня был отключен файл подкачки в системе объемом 8 ГБ. Вывод: ** Файлы страниц необходимы, они предотвращают истощение выгружаемого пула и фактически [делают ускорение] (http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/dont-throw-those-paging-files-away .html) ваша система. ** Tom Wijsman 12 лет назад 1

6 ответов на вопрос

10
Ram

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

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

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

+1 для справки Марка Руссиновича. Всегда отлично читаю. mrduclaw 14 лет назад 0
9
foraidt

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

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

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

Мне придется выкопать статью на сайте MS, но MS говорит, что у вас всегда должен быть файл подкачки. Даже в системах с большим объемом памяти отсутствие машины может замедлить работу вашей машины. Keltari 11 лет назад 0
3
MartW

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

3
Zoran

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

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

Благодарю. Приятно слышать реальные результаты, а не только предположения. Steve Rowe 14 лет назад 0
0
gnibbler

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

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

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

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

-2
Tyler Durden

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

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

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

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

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

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