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