Имеет ли значение размер области подкачки в системе Linux


12

Имеет ли значение, что объем области подкачки в Linux был установлен слишком маленьким (скажем, 1 ГБ), а основной объем ОЗУ равен 128Gb?

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

ОБНОВЛЕНО:

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

Информация

Это MEMTOTобщий объем оперативной памяти этой машины, SWAPTOобщий объем области AP AP этой машины и SWAPUSиспользованный объем области SWAP. Как показано на рисунке, использование SWAP действительно мало.

При попытке решить эти проблемы, опубликованные здесь , мы не уверены, установлен ли слишком маленький объем области SWAP, что 1Gbотносительно 128Gb, как показано на рисунке. Таким образом, у меня есть этот вопрос. Извините, я не опубликовал всю исходную информацию в оригинальной версии этого поста. До этого мы также думали, что, если объем ОЗУ велик, мы могли бы установить количество SWAP маленьким. Мы попытались установить своп c0148быть 16Gb, проблема , кажется , нет ничего (Может быть , мы должны принять этот вывод после наблюдения их состояний в течение длительного времени).

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

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


1
Если у вас есть 128 Гб оперативной памяти, и вы начинаете обмениваться - эта система, вероятно, в любом случае выходит из-под контроля и мертва. Лично я, вероятно, запустил бы этот сервер без обмена вообще. OOMKiller должен позаботиться о любом запущенном процессе, прежде чем из-за нехватки памяти произойдет сбой - и сбой быстрее исправить в любом случае.
Райан Гулер

1
Что будет - что? Несколько мегапикселей от init? Какая-то кешированная память, которая будет отброшена, как только что-то на самом деле понадобится оперативной памяти? Если вашей машине НУЖНО поменять память на работоспособность, она перегружена и все равно нуждается в расширении.
Райан Гулер

1
@ Райан Гулер: Если вы занимаетесь научным моделированием, процессы, использующие 128 ГБ или более, не являются необоснованными.
jamesqf


1
@RyanGooler Правда достаточно. Моя точка зрения заключается в том, что увеличение свопа может позволить программам использовать больше физической памяти. Это всего лишь несколько МБ, но это лучше, чем ничего :)
Navin

Ответы:


19

Ядро Linux имеет настройку для контроля частоты использования свопа, которая называется swappiness , которая описана на /unix/88693/why-is-swappiness-set-to-60-by-default .

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

Настройте свою систему так, как вам нравится, но наличие 128 ГБ ОЗУ маловероятно, что в вашей системе будет недостаточно памяти, поэтому может потребоваться 2/4 ГБ подкачки. Не рекомендуется, но возможно запускать систему без раздела подкачки.

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


2
Хотя установка swappiness0 кажется логичной для большого объема ОЗУ, может быть лучше оставить его в качестве значения по умолчанию 60: http://unix.stackexchange.com/a/88820/50687 .
AL

1
Есть ли какой-нибудь график с формой перестановки от 0 до 100 на одной оси и чем-то еще на другой, чтобы продемонстрировать, как ... перестановка зависит от значения?
user1306322

Привет, @jcbermu, я обновил пост, если удобно, пожалуйста, проверьте его.
майнинг

5

Я полагаю, что эмпирическое правило 2х устарело. Наши рабочие станции имеют 16 ГБ оперативной памяти, мы обычно используем только около 25% от этого и едва ли используем более 50%. Поэтому для наших целей мы не используем своп.

Так как вы должны решить, сколько свопа создать, и теоретически, что любое выбранное вами число не будет достаточно в какой-то момент, то почему бы не выбрать 0? Или - почему бы просто не установить больше оперативной памяти?

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


Привет, @gjcamnn, спасибо за ответ. Я обновил пост, если удобно, пожалуйста, проверьте его.
майнинг

0

Если вы не собираетесь выполнять какие-то вычисления, занимающие много памяти, вам вообще не нужен обмен (но лучше иметь небольшой раздел подкачки). Но наличие swap> ram необходимо, когда вы собираетесь использовать suspend to disk.


Привет @ustp, спасибо за ответ. Я обновил пост, если удобно, пожалуйста, проверьте его.
майнинг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.