Имеет ли значение размер области подкачки в системе Linux
Имеет ли значение, что объем области подкачки в Linux был установлен слишком маленьким (скажем, 1 ГБ), а основной объем ОЗУ 128Gb
?
Должны ли мы всегда устанавливать размер области подкачки, равный удвоенному объему оперативной памяти?
ОБНОВЛЕНО:
Привет, спасибо всем за ответ на этот вопрос. На самом деле, у меня есть этот вопрос, потому что мы столкнулись с некоторыми проблемами при использовании небольшой кластерной системы. Проблемы размещены здесь. На следующем рисунке представлена некоторая информация о некоторых компьютерах в этом небольшом кластере.
MEMTOT
это общий объем оперативной памяти этой машины, SWAPTO
это общая площадь области AP AP этой машины, а SWAPUS
Используемое количество площади SW
AP. Как показано на рисунке, использование SW
AP действительно мало.
При попытке решить эти проблемы, опубликованные здесь, мы не уверены, слишком ли мала область SW
AP, а это просто 1Gb
относительно 128Gb
, как показано на рисунке. Таким образом, у меня есть этот вопрос. Извините, я не опубликовал всю исходную информацию в оригинальной версии этого поста. До этого мы также думали, что, если объем ОЗУ велик, мы могли бы установить количество SW
AP маленьким. Мы попытались установить SW
AP c0148
быть 16Gb
проблема, похоже, отсутствует (возможно, нам следует сделать такой вывод после длительного наблюдения за их статусами).
Мы не профессионалы в системе Linux, и мы не могли объяснить, почему это произошло. It is a probability that this is a cluster system, and the SGE is managing the resources of each machine, and it needs to have a relative large amount of SWAP because that machine may be used by many jobs submitted by many users.
In addition, if we just set the amount of SWAP too large, what other problems it would cause is also worthy considering.
3 ответа
Ядро Linux имеет настройку для контроля частоты использования свопа, которая называется swappiness
, описано по адресу https://unix.stackexchange.com/questions/88693/why-is-swappiness-set-to-60-by-default.
Нулевой обмен означает, что обмен будет использоваться только в том случае, если в системе не хватает памяти. Подкачка 100 заставляет программы использовать своп мгновенно.
Настройте свою систему так, как вам нравится, но наличие 128 ГБ ОЗУ маловероятно, что в вашей системе будет просто не хватать памяти, поэтому вам может хватить 2 / 4 ГБ подкачки. Не рекомендуется, но возможно запускать систему без раздела подкачки.
Я думаю, что правило области подкачки, состоящей в том, чтобы вдвое превышать объем оперативной памяти, устарело и полезно только в системах с объемом оперативной памяти около 1 ГБ, которые всегда находятся на грани полного использования ОЗУ.
Я полагаю, что эмпирическое правило 2х устарело. Наши рабочие станции имеют 16 ГБ оперативной памяти, мы обычно используем только около 25% от этого и вряд ли использовать более 50%. Поэтому для наших целей мы не используем своп.
Так как вы должны решить, сколько свопа создать, и теоретически, что любое выбранное вами число не будет достаточно в какой-то момент, то почему бы не выбрать 0? Или - почему бы просто не установить больше оперативной памяти?
Я считаю, что это очень личное решение, основанное на том, как будет использоваться ваш компьютер и сколько у него оперативной памяти.
Если вы не собираетесь выполнять какие-то вычисления, занимающие много памяти, вам вообще не нужен обмен (но лучше иметь небольшой раздел подкачки). Но наличие swap > ram необходимо, когда вы собираетесь использовать suspend to disk.