9

Мне было интересно, так как я слышал, что подкачка используется, когда у вас нет оперативной памяти, а переполнение слишком много, это плохо, так как у меня много оперативной памяти (8 ГБ)....

Что делать, если я не создаю раздел подкачки?

Кроме того, мне нужно это для спячки или это не обязательно?

6 ответов6

12

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

Когда вы запускаете типичную систему, запускается большое количество сервисов. Программы запускают код инициализации и изменяют частные отображения памяти в процессе. Ряд этих сервисов больше никогда не будет работать. Многие из них не будут бегать часами. Без свопа у ОС нет иного выбора, кроме как навсегда сохранить измененные сопоставления частной памяти, связанные с этими сервисами, в ОЗУ. Это оперативная память, которая никогда не может быть использована в качестве дискового кэша.

Итак, вы хотите поменяться, нужно вам это или нет.

11

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

Одним из основных отличий является то, как система ведет себя, когда заканчивается память:

Если раздела подкачки нет, OOM killer запускается немедленно. Если у вас есть утечка памяти в программе, скорее всего, она будет убита. Это происходит, и вы восстанавливаете систему практически мгновенно.

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

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

5

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

2

Распространено заблуждение, что наличие области подкачки отрицательно влияет на производительность. То, что серьезно влияет на производительность, не имеет достаточно оперативной памяти. Сами по себе области подкачки не влияют на производительность, если вы не заботитесь о надежности. Это может оказать положительное влияние на производительность, даже если вы считаете, что у вас достаточно ОЗУ (и не сообщается о нехватке ОЗУ).

По сути, необходимо рассмотреть три случая:

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

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

  • 3: Недостаточно ОЗУ для хранения страниц приложений.

В случае 1, который должен быть нормой для рабочей машины, наличие области подкачки или нет ничего не меняет (по крайней мере, в ОС на базе Linux и других ОС, которые перерасходуют память).

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

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

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

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

0

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

В следующих статьях объясняется, как это сделать подробно:

0

Это немного опасно, но вы МОЖЕТЕ бежать без места подкачки. Но если вы, наконец, превысите объем памяти, ваша система почти сразу же выйдет из строя без уведомления.

То, что дает вам своп, это расширенная, но гораздо более медленная память. Если вы превысите, вы начнете обмениваться, это действительно унесет жизнь из вашей системы ....ОДНАКО, убивая ошибочные процессы, вы все равно можете сохранить свою систему.

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

Наконец, посмотрите, что SWAP - это ДЕШЕВЛЕ в том, что вам не нужно делать резервную копию области. (Я надеюсь, что вы один из этих замечательных выдающихся системных администраторов, которые выполняют резервное копирование своих систем).

Так что создай это.

Мое эмпирическое правило было 2 * объем памяти ..... но сейчас, во многих случаях, я в порядке с 1 * размер памяти, но обычно использую 1,5 *(размер памяти). Вам не нужно создавать это большое количество, но я бы ... особенно, если бы вы выполняли какую-либо производственную работу.

Ах, да, и для спящего режима ОБЯЗАТЕЛЬНО требуется обмен, чтобы хранить общее изображение памяти. И, таким образом, размер, если вы рассматриваете h8ibernation, должен быть как минимум (1 * объем памяти)+100 МБ ... 100 МБ предназначены для возможных издержек, необходимых в процессе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .