Как мне решить, какой размер сделать подкачку на новой машине с Linux (Debian) с 2-4 ГБ ОЗУ? Мне действительно нужно пространство подкачки?
Как мне решить, какой размер сделать подкачку на новой машине с Linux (Debian) с 2-4 ГБ ОЗУ? Мне действительно нужно пространство подкачки?
Ответы:
Есть много способов выяснить, сколько свопа используется в машине. В общих предложениях используются формулы на основе ОЗУ, такие как 2 x ОЗУ, 1,5 x ОЗУ, 1 x ОЗУ, 0,75 x ОЗУ и. 5 x ОЗУ. Во многих случаях формулы меняются в зависимости от объема ОЗУ (таким образом, для блока с 1 ГБ ОЗУ может использоваться 2 х ОЗУ (2 ГБ), в то время как для блока с 16 ГБ ОЗУ может использоваться .5 х ОЗУ (8 ГБ).
Еще одна вещь, чтобы рассмотреть, для чего будет использоваться коробка. Если на вашем компьютере будет запущено огромное количество одновременно работающих процессов, но значительное количество из них будет простаивать в течение определенного периода времени, тогда добавление дополнительного свопа имеет смысл. Если вы собираетесь запустить небольшое количество критических процессов, тогда имеет смысл добавить дополнительный обмен (это может показаться нелогичным, но я объясню через минуту). Если вы используете коробку в качестве рабочего стола, тогда имеет смысл добавить дополнительный своп.
Что касается того, следует ли включать своп, да, вы должны. Вы всегда должны включать пространство подкачки, если вы действительно не знаете, что делаете, и у вас действительно есть для этого веские причины.
Видите, как работает ядро Linux, подкачка используется не только тогда, когда вы исчерпали всю физическую память. Ядро Linux будет принимать приложения, которые не активны (спят), и через некоторое время перемещает приложение для замены из реальной памяти. В результате, когда вам понадобится это приложение, будет кратковременная задержка (обычно всего одна или две секунды), когда память приложения будет считана обратно из раздела подкачки в ОЗУ. И это обычно хорошо.
Это позволяет переводить неактивные приложения в «спящий» режим, предоставляя активным приложениям доступ к дополнительной оперативной памяти. Кроме того, Linux будет использовать любую доступную (нераспределенную) оперативную память на компьютере в качестве дискового кэша, что сделает большую (медленную) активность диска более быстрой и более отзывчивой. Замена неактивных процессов дает вам больше дискового кэша и делает вашу машину в целом быстрее.
Наконец, давайте посмотрим правде в глаза, дисковое пространство дешево. Действительно дешево. На самом деле нет веской причины не использовать (относительно) небольшой кусок пространства для обмена. Если бы я работал с 2–4 ГБ ОЗУ в машине, я бы, вероятно, настроил пространство подкачки, по крайней мере, равное ОЗУ. Если бы это было менее 2 ГБ оперативной памяти, то я бы все равно пошел с не менее 2 ГБ подкачки.
ОБНОВЛЕНИЕ: В качестве отличного комментария упоминается (и я забыл включить), если вы используете ноутбук или настольный компьютер, который вы, возможно, захотите перевести в режим гибернации (Suspend to Disk), то вам всегда нужно как минимум столько же поменяй местами как у тебя память. Пространство подкачки будет использоваться для хранения содержимого оперативной памяти на компьютере, пока он «спит».
Red Hat рекомендует следующую формулу для серверов с большим количеством оперативной памяти:
if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB
Если в вашей системе имеется 1 ГБ оперативной памяти, объем подкачки составит 2 ГБ, а для 16 ГБ - 18 ГБ.
Поздний ответ, и я думаю, что это было в значительной степени отражено в выбранном ответе, но есть некоторая хорошая и легко усваиваемая информация в ответе, предоставленном @ssapkota здесь (скопировано / вставлено ниже).
Вот очень хорошая рекомендация от RedHat: Рекомендуемое пространство подкачки
Выдержка из той же ссылки:
В прошлые годы рекомендуемый объем пространства подкачки увеличивался линейно с объемом оперативной памяти в системе. Но поскольку объем памяти в современных системах увеличился до сотен гигабайт, в настоящее время признано, что объем пространства подкачки, который необходим системе, является функцией рабочей нагрузки памяти, выполняемой в этой системе. Однако, учитывая, что пространство подкачки обычно назначается во время установки, и что может быть сложно заранее определить нагрузку на память системы , мы рекомендуем определить подкачку системы, используя следующую таблицу.
Текущая таблица (по состоянию на декабрь 2012 года):
Amount of RAM in the system Recommended swap space Recommended swap space
if allowing for hibernation
--------------------------- ---------------------------- ---------------------------
2GB of RAM or less 2 times the amount of RAM 3 times the amount of RAM
2GB to 8GB of RAM Equal to the amount of RAM 2 times the amount of RAM
8GB to 64GB of RAM 0.5 times the amount of RAM 1.5 times the amount of RAM
64GB of RAM or more 4GB of swap space No extra space needed
Оригинальный стол:
Amount of RAM in the System Recommended Amount of Swap Space
4GB of RAM or less a minimum of 2GB of swap space
4GB to 16GB of RAM a minimum of 4GB of swap space
16GB to 64GB of RAM a minimum of 8GB of swap space
64GB to 256GB of RAM a minimum of 16GB of swap space
256GB to 512GB of RAM a minimum of 32GB of swap space
Это зависит от того, что вы делаете с этим. При соответствующей рабочей нагрузке вам на самом деле не требуется пространство подкачки, независимо от того, есть ли у вас 16 МБ или 16384 МБ ОЗУ; Действительно, большинство встроенных устройств Linux работают без каких-либо (к чему бы они поменялись?)
Учитывая стоимость оперативной памяти, вы, вероятно, не собираетесь использовать своп для активных вычислений. Итак, что осталось?
(2) и (3) сильно зависят от рабочей нагрузки. На моих рабочих столах я могу легко использовать 4 ГБ + (2), оставляя vims, xterms и т. Д. Запущенными на других рабочих столах.
На большинстве серверов, которые я запускаю, почти ничего не выгружается, и 1–2 ГБ подкачки (независимо от объема ОЗУ) кажется нормальным.
madvise
, но это не сработает ... эта ошибка говорит об исчерпании памяти во время сборки мусора. Конечно, добавление свопа предотвращает это, но также и добавление оперативной памяти. Может быть, это связано с 32-битной с PAE?
Xms
и Xmx
не установлены в одних и те же значения, он может укусить вас плохо: вызвал серьезные проблемы для нас в течение двух + недель пока мы , наконец , отслеживали его вниз
Ну, это зависит от того, какие сервисы и приложения вы планируете запускать. Вы можете следить за использованием памяти с помощью free -m и соответствующим образом корректировать раздел подкачки.
Вот интересная дискуссия на эту тему. Лично (и после прочтения этого обсуждения) я бы все равно оставил около 1 ГБ для обмена.
Я не могу напрямую общаться с Debian, но я знаю, что когда вы получаете более 2 ГБ ОЗУ, исходное уравнение 2xRAM изменяется, обычно до 1xRAM. Я думаю, что как только вы достигнете 16 ГБ ОЗУ, предложение снова снизится до .75xRAM.
Конечно, я нашел это верным для Solaris, и на самом деле это показатель, используемый для установок Oracle, поэтому YMMV зависит от приложений, которые вы собираетесь там запускать.
Я всегда делаю столько же обмена (как минимум), сколько оперативной памяти. На всякий случай я хочу когда-нибудь перевести машину в спящий режим. Может работать с меньшими затратами, но не может.
В наши дни место на жестком диске дешевое, поэтому я не стесняюсь отдавать пространство подкачки.
Пространство подкачки может служить «заполнением», если в противном случае вам сразу же не хватило бы памяти.
Когда процесс потребляет всю доступную оперативную память, а затем часть компьютера будет работать очень медленно, но вы, как правило, сможете восстановить. Также будет легче увидеть, какой процесс вызывает проблему.
На протяжении многих лет я следовал правилу, согласно которому для машин Windows у вас столько же свопов, сколько у вас есть ОЗУ ... На Novell мы настроили бы своп выше, если бы у нас было больше принтеров ... Для Linux правило и практика для меня составляли 1 ГБ поменяйте местами на каждые 2 ГБ ОЗУ. И вы помещаете его в переднюю часть диска, чтобы он был доступен быстрее.
если это сервер LAMP, действует правило 1/2.
Пробег будет варьироваться в зависимости от приложения и использования графического интерфейса.
Я создаю 1 ГБ подкачки и покупаю больше оперативной памяти, когда она используется. Вам не нужно менять своп на современных компьютерах, оперативная память такая дешевая.
Для чего вы используете систему? Лично я не использую своп. Если что-то использует токен 512 МБ или что-то другое, то все может быть помещено на диск, если оно постоянно, но неактивно в течение длительного времени.
Я просто использую небольшую замену токена (обычно 256 МБ, но я даже сделал 64 МБ), потому что настройка системы с нулевым обменом требует специальной настройки.
Дисковое пространство дешевое, но затооооооооо. Как только система начинает обмениваться, производительность равна нулю. И оперативная память уже не такая дорогая.
Поверьте мне, купите немного более медленный процессор и купите больше оперативной памяти. 2,8 ГГц вместо 3,0 ГГц сэкономят вам достаточно денег, чтобы купить еще 2 ГБ ОЗУ, по крайней мере.