Как я могу решить, какой размер сделать мой обмен на новой Linux-машине (Debian) с 2-4 ГБ ОЗУ? Мне действительно нужно место подкачки?
Как я могу решить, какой размер сделать мой обмен на новой Linux-машине (Debian) с 2-4 ГБ ОЗУ? Мне действительно нужно место подкачки?
Есть много способов узнать, сколько подкачки используется в машине. В общих предложениях используются формулы на основе ОЗУ, такие как 2 x RAM, 1,5 x RAM, 1 x RAM, .75 x RAM и .5 x RAM. Много раз формулы варьируются в зависимости от объема оперативной памяти (поэтому ящик с 1 ГБ ОЗУ может использовать 2 x RAM-обмен (2 ГБ), в то время как ящик с 16 ГБ оперативной памяти может использовать .5 x RAM swap (8 ГБ).
Еще одна вещь, которую следует учитывать, - это то, для чего будет использоваться коробка. Если у вас будет огромное количество одновременно запущенных процессов, запущенных в поле, но значительное количество из них будет простаивать в течение периодов времени, тогда добавление дополнительного обмена имеет смысл. Если вы собираетесь выполнять небольшое количество критических процессов, то добавление дополнительного обмена имеет смысл (это может показаться противоречивым, но я объясню через минуту). Если вы используете ящик как рабочий стол, то добавление дополнительного обмена имеет смысл.
Что касается того, следует ли включать swap, да, вы должны. Вы должны всегда включать пространство подкачки, если только вы действительно знайте, что вы делаете, и у вас действительно есть веская причина для этого.
Смотрите, как работает ядро Linux, swap не только используется, когда вы исчерпали всю физическую память. Ядро Linux будет принимать приложения, которые не являются активными (спящими), и через какое-то время переместите приложение для обмена с реальной памятью. В результате вам понадобится мгновенная задержка (обычно только секунда или два), в то время как память приложения считывается из свопинга в оперативную память. И это обычно хорошо.
Это позволяет помещать неактивные приложения в «спящий режим», предоставляя своим активным приложениям доступ к дополнительной ОЗУ. Кроме того, Linux будет использовать любую доступную (нераспределенную) ОЗУ на компьютере в качестве дискового кеша, делая большую (медленную) активность диска более быстрой и более отзывчивой. Переключение неактивных процессов дает вам больше дискового кэша и делает вашу машину быстрее.
Наконец, давайте посмотрим правде в глаза, дисковое пространство дешево. Действительно дешево. На самом деле нет веской причины не протащить (относительно) небольшой кусок места для свопа. Если бы я работал с 2 ГБ - 4 ГБ ОЗУ на машине, я бы, вероятно, установил, что мое пространство подкачки будет по меньшей мере равно ОЗУ. Если бы это было менее 2 ГБ ОЗУ, тогда я по-прежнему имел бы по меньшей мере 2 ГБ свопа.
ОБНОВЛЕНИЕ: как замечательный комментарий, упомянутый (и я забыл включить), если вы используете ноутбук или рабочий стол, который вы, возможно, захотите включить в режим «спящий режим» (Suspend to Disk), тогда вы всегда хотите, по крайней мере, столько же, сколько у вас есть память. Пространство подкачки будет использоваться для хранения содержимого ОЗУ на компьютере, пока он «спит».
Красная Шапка рекомендует следующую формулу для серверов с большим количеством бара:
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-устройств без каких-либо (что бы они поменяли?)
Учитывая цены на RAM, вы, вероятно, не собираетесь использовать swap для активных вычисление. Итак, что осталось?
(2) и (3) сильно зависят от рабочей нагрузки. На моих настольных компьютерах я могу легко использовать 4GB + on (2), от выхода vims, xterms и т. Д., Работающих на других настольные компьютеры.
На большинстве серверов, которые я запускаю, почти ничего не поменялось и 1-2 ГБ подкачки (независимо от объема ОЗУ), кажется, ОК.
Ну, это зависит от того, какие услуги и приложения вы планируете запускать. Вы можете наблюдать за использованием вашей памяти с помощью свободный -m и отрегулируйте свой раздел подкачки соответственно со временем.
Вот интересная дискуссия на предмет. Лично (и после прочтения этого обсуждения) я все равно оставил бы около 1 ГБ для обмена.
Я не могу напрямую разговаривать с Debian, но я знаю, что когда вы поднимаетесь выше 2 ГБ ОЗУ, исходное уравнение 2xRAM меняется, как правило, до 1xRAM. Я думаю, что когда вы нажмете 16 ГБ оперативной памяти, предложение снова опустится до 0,75xRAM.
Конечно, я нашел это справедливым для Solaris и на самом деле является метрикой, используемой для установок Oracle, поэтому YMMV в зависимости от приложений, которые вы собираетесь использовать там.
Я всегда делаю так, чтобы поменять местами (по крайней мере) в качестве ОЗУ. На всякий случай я хочу спячки на машине. Может работать с меньшим, но может и нет.
В наши дни пространство на жестком диске дешево, поэтому я не стесняюсь раздавать пространство подкачки.
Место подкачки может служить «заполнением», когда вы в противном случае могли бы не работать сразу.
Когда процесс потребляет всю доступную оперативную память, а затем некоторые машины будут работать очень медленно, но вы, как правило, сможете восстановить. Также будет легче увидеть, какой процесс вызывает проблему.
На протяжении многих лет я следовал правилу, что для Windows-машин у вас столько свопов, сколько у вас есть RAM ... В Novell мы настроили бы swap выше, если бы у нас было больше принтеров ... Для Linux правило и практика для меня были 1 ГБ обмен на каждые 2 ГБ оперативной памяти. И вы поместите его на переднюю часть диска, чтобы получить доступ быстрее.
если это сервер LAMP, действует правило 1/2.
Пробег будет варьироваться в зависимости от приложения и использования графического интерфейса.
Я создаю обмен 1 ГБ и приобретаю больше ОЗУ, а второй - его. Вам не нужна свопа на современных компьютерах, оперативная память такая дешевая.