Вопрос: Сколько пространства SWAP на системе 2-4 ГБ?


Как я могу решить, какой размер сделать мой обмен на новой Linux-машине (Debian) с 2-4 ГБ ОЗУ? Мне действительно нужно место подкачки?


52
2018-05-07 15:15


Источник


2-4 ГБ не очень большая память больше 5 лет спустя. - guaka
@ KasperSouren Нет, это не так. В то время это была справедливая сумма. - C. Ross


Ответы:


Есть много способов узнать, сколько подкачки используется в машине. В общих предложениях используются формулы на основе ОЗУ, такие как 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), тогда вы всегда хотите, по крайней мере, столько же, сколько у вас есть память. Пространство подкачки будет использоваться для хранения содержимого ОЗУ на компьютере, пока он «спит».


54
2018-05-07 16:07



Отличный ответ, но ты забыл только одно. Если это настольный компьютер или ноутбук, убедитесь, что своп по крайней мере такой же большой, как у ОЗУ, чтобы вы могли спящий режим спящего режима. Это экономит оперативную память для обмена. - Sander Marechal
Отличный пост. Сандер избил меня до единственного, что я собирался добавить к нему. Хотя я имею в виду один дополнительный элемент, если у вас несколько дисков, перенос вашего свопа на диск, который не содержит остальных активных файловых систем, может повысить производительность, поскольку в нем не будет столько конфликтов. - GreenKiwi
Насколько я выяснил это прошлое лето, вам нужно иметь существенное пространство подкачки, если вы используете Java - warren
Если у пользователя есть объем оперативной памяти, который намного больше, чем тот, который они фактически будут использовать (16 ГБ / 32 ГБ) на 100% рабочем столе без работы (без спящего режима), вы все же предлагаете запрашивать процессы для SWAP? Мне кажется, что было бы выгодно оставить все в ОЗУ, если вы не приблизились к его способности. - earthmeLon
@earthmeLon - Я бы предложил еще немного обмена. Диски в наши дни большие и дешевые, поэтому потеря нескольких дисков на диске для обмена является незначительной. Наличие некоторого пространства подкачки дает вам страховой полис в случае, если что-то съедает больше оперативной памяти, чем вы ожидаете. - Christopher Cashell


Красная Шапка рекомендует следующую формулу для серверов с большим количеством бара:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

Если ваша система имеет 1 ГБ оперативной памяти, ваш обмен будет 2 ГБ, для 16 ГБ - 18 ГБ.


17
2017-07-09 13:13



Соответствующая ссылка из руководства по хранению RHEL6: docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/... - Ophidian
Сервер будет довольно заторможен, если он будет последовательно использовать 1Gb свопа, потому что он будет полным. - user2284570


Поздний ответ, и я думаю, что это было в значительной степени затронуто в выбранном ответе, но есть хорошая и легко удобоваримая информация в ответе @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 

12
2018-03-29 15:38





Это зависит от того, что вы с ним делаете. С соответствующей рабочей нагрузке, на самом деле вам не требуется какое-либо место подкачки, независимо от того, у вас есть 16 МБ или 16384 МБ ОЗУ; действительно, большинство встроенных Linux-устройств без каких-либо (что бы они поменяли?)

Учитывая цены на RAM, вы, вероятно, не собираетесь использовать swap для активных вычисление. Итак, что осталось?

  1. На рабочих столах пространство подкачки используется для приостановки на диск. Это пространство подкачки должно быть около 1 × ОЗУ, в зависимости от того, насколько хорошо содержимое памяти компресс.
  2. Разрешить удаление неактивных задач из ОЗУ, чтобы сделать больше возможностей для дисковый кэш
  3. То же самое, но чтобы активные процессы могли использовать его вместо heap / stack

(2) и (3) сильно зависят от рабочей нагрузки. На моих настольных компьютерах я могу легко использовать 4GB + on (2), от выхода vims, xterms и т. Д., Работающих на других настольные компьютеры.

На большинстве серверов, которые я запускаю, почти ничего не поменялось и 1-2 ГБ подкачки (независимо от объема ОЗУ), кажется, ОК.


8
2018-05-07 16:01



пространство подкачки также используется, если вы запускаете что-нибудь который использует JVM: не chintz и забыть выделять пространство подкачки, если вы используете Java! - warren
@warren: У меня есть экземпляры Tomcat, каждый из которых превышает 3GiB, но без использования swap (и один использует огромные страницы и, следовательно, не может быть заменен). Не уверен, о чем вы говорите. - derobert
в JVM есть полуполезная ошибка, связанная с минимальными и максимальными настройками памяти, которые я натолкнул на это прошлым летом (antipaucity.com/?p=984). TL; DR - каждый раз, когда JVM запрашивает больше памяти из ОС, он записывается для обмена, получает свой новый кусок памяти, затем считывает себя обратно в ОЗУ, чтобы его память была смежной - warren
@warren: Хорошо, я запускаю OpenJDK на 64-битном, с Xmx и Xms одинаково. Но я не уверен, каким образом java заставит себя поменяться местами, единственное закрытие syscall будет madvise, но это не подведет ... эта ошибка говорит о нехватке памяти во время сбора мусора. Разумеется, добавление swap предотвращает это, но так же добавляет RAM. Может быть, из-за 32-бит с PAE? - derobert
это происходит и с 64-разрядной JVM: если у вас есть Xms а также Xmx не установлены на одни и те же значения, это может сильно укусить вас: вызвало серьезные проблемы для нас в течение двух + недель, пока мы, наконец, не заметили его - warren


Ну, это зависит от того, какие услуги и приложения вы планируете запускать. Вы можете наблюдать за использованием вашей памяти с помощью свободный -m и отрегулируйте свой раздел подкачки соответственно со временем.

Вот интересная дискуссия на предмет. Лично (и после прочтения этого обсуждения) я все равно оставил бы около 1 ГБ для обмена.


4
2018-05-07 15:30





Я не могу напрямую разговаривать с Debian, но я знаю, что когда вы поднимаетесь выше 2 ГБ ОЗУ, исходное уравнение 2xRAM меняется, как правило, до 1xRAM. Я думаю, что когда вы нажмете 16 ГБ оперативной памяти, предложение снова опустится до 0,75xRAM.

Конечно, я нашел это справедливым для Solaris и на самом деле является метрикой, используемой для установок Oracle, поэтому YMMV в зависимости от приложений, которые вы собираетесь использовать там.


2
2018-05-07 15:24





Я всегда делаю так, чтобы поменять местами (по крайней мере) в качестве ОЗУ. На всякий случай я хочу спячки на машине. Может работать с меньшим, но может и нет.

В наши дни пространство на жестком диске дешево, поэтому я не стесняюсь раздавать пространство подкачки.


2
2018-05-07 16:12





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

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


2
2018-05-23 08:53



Это обоюдоострый меч: на моем домашнем ПК я удалил swap, когда использовал Firefox 2.x, потому что он медленно ел всю память, и когда машина поменялась, она стала совершенно непригодной; без обмена, процесс firefox был просто закрыт ядром :) - wazoox


На протяжении многих лет я следовал правилу, что для Windows-машин у вас столько свопов, сколько у вас есть RAM ... В Novell мы настроили бы swap выше, если бы у нас было больше принтеров ... Для Linux правило и практика для меня были 1 ГБ обмен на каждые 2 ГБ оперативной памяти. И вы поместите его на переднюю часть диска, чтобы получить доступ быстрее.

  • Если это почтовый / спам-шлюз, я использую двойной обмен в ОЗУ
  • Если это * сервер, я вообще не использую swap
  • если это сервер LAMP, действует правило 1/2.

  • Пробег будет варьироваться в зависимости от приложения и использования графического интерфейса.


1
2018-05-07 15:46



На самом деле, я думаю, что обмен в средний к диску будут доступны самые быстрые. - Eddie


Я создаю обмен 1 ГБ и приобретаю больше ОЗУ, а второй - его. Вам не нужна свопа на современных компьютерах, оперативная память такая дешевая.


0
2018-05-07 15:24