Я читал во многих местах, что эмпирическое правило для пространства подкачки заключается в удвоении объема физической оперативной памяти. Тем не менее, 32 ГБ действительно кажутся слишком БОЛЬШИМИ. Нужно ли мне так много? Нужно ли мне это вообще с таким большим объемом физической оперативной памяти?
Вот очень хорошая рекомендация от Red Hat: Рекомендуемое Системное Пространство подкачки
Выдержка из той же ссылки:
В прошлые годы рекомендуемый объем пространства подкачки увеличивался линейно с объемом оперативной памяти в системе. Однако современные системы часто включают в себя сотни гигабайт оперативной памяти. Как следствие, рекомендуемое пространство подкачки считается функцией загруженности системной памяти, а не системной памяти.
И еще один отрывок из более старая версия страницы:
Однако, учитывая, что пространство подкачки обычно назначается во время установки и что может быть трудно заранее определить нагрузку на память системы, мы рекомендуем определить системную подкачку, используя следующую таблицу.
Таблица RHEL 8:
Amount of RAM Recommended swap space Recommended swap space in the system if allowing for hibernation-------------- -------------------------- ---------------------------⩽ 2 GB 2 times the amount of RAM 3 times the amount of RAM> 2 GB – 8 GB Equal to the amount of RAM 2 times the amount of RAM> 8 GB – 64 GB At least 4 GB 1.5 times the amount of RAM> 64 GB At least 4 GB Hibernation not recommended
На границе между каждым диапазоном, перечисленным в таблице выше, например, в системе с 2 ГБ, 8 ГБ или 64 ГБ системной оперативной памяти, можно по своему усмотрению выбирать пространство подкачки и поддержку гибернации. Если это позволяют ваши системные ресурсы, увеличение пространства подкачки может привести к повышению производительности. Для систем с более чем 140 логическими процессорами или более чем 3 ТБ оперативной памяти рекомендуется использовать пространство подкачки объемом не менее 100 ГБ.
Оригинальная таблица RHEL 5:
Amount of RAM in the System Recommended Amount of Swap Space4GB of RAM or less a minimum of 2GB of swap space4GB to 16GB of RAM a minimum of 4GB of swap space16GB to 64GB of RAM a minimum of 8GB of swap space64GB to 256GB of RAM a minimum of 16GB of swap space256GB to 512GB of RAM a minimum of 32GB of swap space
Это полностью зависит от того, что вы планируете делать с машиной. Например, если бы это был сервер Sap, то да, я бы добавил 32 Гб подкачки (у нас есть коробки на работе с 128 Гб оперативной памяти и 32 Гб подкачки). Если вы манипулировали большими изображениями и видео, то имеет смысл сделать небольшую замену. 32 гб - это, вероятно, перебор.
Однако я бы не сказал, что нулевой обмен.
В маловероятном случае, если у вас закончится оперативная память - возможно, вы откроете большой файл, возможно, долго работающую вкладку в firefox, это не имеет значения, в этом случае ваш kernel OOM killer включится и начнет убивать приложения, чтобы вернуть память. При таких обстоятельствах вполне возможно, что вы потеряете данные из-за того, что приложения будут уничтожены. Однако, если у вас есть немного подкачки, система продолжит работу, захватывая подкачку и позволяя системе продолжить. Система замедляется, когда происходит интенсивная замена, вы замечаете это и проводите расследование до того, как вся замена будет исчерпана. Кроме того, диск очень дешевый, так почему бы не использовать swap?
Любой, кто говорит: "Вам не нужен swap", не спрашивая вас, что вы на самом деле делаете со своим компьютером, делает предположения. Хотя вы вполне можете сделать очень мало с вашим компьютером, который потребляет оперативную память, все же лучше задать вопросы о том, что вы планируете с ним делать, прежде чем принимать поспешное решение о том, что вам "не нужен" swap. По моему скромному мнению
Ага. Ответы в этом посте очень неправильны, и это появляется как один из первых результатов в поиске Google по запросу "Сколько свопов?"
Во-первых, хорошей отправной точкой является Часто ЗАДАВАЕМЫЕ вопросы по Ubuntu Swap
В этом часто задаваемом вопросе содержится важный момент, о котором здесь никто не упоминает, и это (курсив мой)
Иногда из-за большой программы (например, OpenOffice, Neverwinter Nights или видеоредактора) всей системе требуется дополнительная память. Значительное количество страниц, используемых этими большими программами во время их запуска, может использоваться только для инициализации, а затем никогда не использоваться снова. Система может поменять местами эти страницы и освободить память для других программ или даже для дискового кэша. В этих случаях swap будет использоваться, чтобы помочь системе справиться с любой дополнительной нагрузкой.
Так, swap предназначен не только для гибернации! Это действие, замена неиспользуемых страниц, может быть полезным в одних сценариях и вредным в других. Полезно, потому что это может освободить память для использования системой в другом месте, но вредно, когда эта замена слишком агрессивна и заменяет страницы, которые вам действительно нужны. Это особенно верно для настольных систем, где приложения могут простаивать в течение длительных периодов времени, но пользователь все равно ожидает немедленной производительности при их возвращении к жизни. Контроль за тем, насколько это агрессивно, называется сменяемость
В часто задаваемых вопросах Ubuntu Swap этот вопрос обсуждается в разделе Что такое swappiness и как я могу его изменить? Значение по умолчанию в системе Ubuntu равно 60, в то время как часто задаваемые вопросы рекомендуют значение 10 для настольного компьютера.
Итак, я бы сказал, что это обычно очень важно не иметь системы с абсолютно отсутствующим пространством подкачки, как рекомендовали некоторые люди по этому вопросу, если только вы не знаете определенных очень специфических сценариев использования вашей системы и не очень хорошо осведомлены о последствиях, которые это может иметь. (Лично у меня нет ситуации, когда я бы запускал систему без подкачки) В сценарии нехватки памяти без подкачки система начнет уничтожать процессы (как правило, те, которые вызвали ООМ).
Скорее всего, нет. Если вы планируете перевести свой компьютер в спящий режим (приостановка работы на диске), то вам потребуется не менее 16 ГБ. Если вы не хотите переходить в спящий режим, достаточно выделить несколько гигабайт для подкачки (максимум 4-8).
По собственному опыту я могу сказать следующее:
Из того, что я видел, используя 4 ГБ оперативной памяти в течение 3 лет, Ubuntu использовала подкачку около 60 МБ, но только при выполнении некоторых очень интенсивных задач. Пару недель назад я начал использовать компьютер с 16 ГБ оперативной памяти, и использование подкачки навсегда осталось на уровне 0%. Я выполнил несколько компиляций, рендеринг видео и другие интенсивные задачи. В swap никогда не было никаких изменений. Даже 1 КБ не изменилось.
По сути, в Ubuntu, чем больше у вас оперативной памяти, тем меньше вероятность того, что вы будете использовать или нуждаться в подкачке для какой-либо задачи. 16 ГБ оперативной памяти или даже 8 ГБ оперативной памяти более чем достаточно. Я сделал с 16-гигабайтным ПК 8 компьютеров Virtualbox (каждый от 1 ГБ до 2 ГБ оперативной памяти). Я скомпилировал и отрисовал видео с разрешением 720p, и даже в этих условиях подкачка не изменилась.
С учетом сказанного, правило удвоения объема оперативной памяти не должно применяться в системах на базе Linux, тем более, если у вас больше памяти. Однако у вас должен быть такой же размер подкачки, равный размеру вашей оперативной памяти, или если вы планируете перейти в спящий режим, поскольку процесс гибернации захватывает все, что находится в оперативной памяти, и помещает его в подкачку, поэтому вам нужен минимальный размер, равный размеру вашей оперативной памяти для подкачки.
Другая деталь заключается в том, что некоторые приложения (не все) по-прежнему будут принудительно считывать данные из swap. Так что немного выпить - это хорошо. Полное отключение его очень плохо в том случае, если вы дойдете до точки нехватки памяти или ООМ. На данный момент, если у вас нет swap, ядро никак не может переключаться между различными приложениями ram и в конечном итоге начнет уничтожать менее используемые приложения.
Если это поможет в принятии решений на домашнем рабочем столе, то после обновления этого ответа более чем за 4 года я использовал ПК с 16 Гб, 32 Гб, а теперь и 64 Гб оперативной памяти. Тестирование с объемом подкачки всего 128 МБ показало, что у меня не было необходимости в большем объеме подкачки, за исключением случаев, когда я хотел перейти в спящий режим. Я использовал облачные среды для них, lxc, virtualbox, wine, вы называете это. Я отрисовывал видео с помощью openshot, kazam, handbrake, audacity. Я использовал gimp, blender, Inkscape и даже полный пакет LibreOffice. Я даже играл в steam, и ни в одном из этих сценариев обмен не использовался. Конечно, он в конечном итоге привыкнет, если вы так или иначе будете использовать весь объем оперативной памяти, но в целом, чем больше у вас оперативной памяти, тем меньше подкачки вам понадобится.
Только мои 2 цента.
Нет, вам не нужно 32 ГБ, если вы не используете такие функции, как приостановка записи на диск.
В большинстве случаев я бы сказал, что вам вообще ничего не нужно. Возможно, если вы редактируете очень большие файлы изображений или какое-то другое приложение, которому требуется много оперативной памяти, вам может понадобиться немного.
Я никогда не видел, чтобы они вообще использовались в моей системе, подобной вашей. На самом деле, в свое время я случайно отключил его на неделю или две и никогда не замечал никаких проблем. Но я по-прежнему сохраняю около 5 ГБ для своего накопителя подкачки, главным образом потому, что у меня доступно более 1 ТБ, и я не использую все пространство как есть.
Если вы используете режим гибернации, безопасно иметь столько подкачки, сколько у вас есть оперативной памяти.
Общее эмпирическое правило о том, какой объем свопа необходимо иметь, читайте здесь:
https://help.ubuntu.com/community/SwapFaq
В вашем случае я бы сказал, что 4 ГБ будет достаточно, чтобы соответствовать вашей оперативной памяти.
Если объем вашей оперативной памяти превышает 1 ГБ, обычно этого достаточно для ubuntu. Правило "Swap = RAM x2" предназначено для старых компьютеров с 256 или 128 Мб оперативной памяти.
Таким образом, 1 ГБ подкачки обычно достаточно для 4 ГБ оперативной памяти. 8 ГБ было бы слишком много.
Вам нужен swap только в том случае, если вы хотите использовать гибернацию, в остальном на вашем жестком диске много места.
чтобы быть здесь до конца честным… вам даже не нужна подкачка, у вас уже есть 16 ГБ оперативной памяти, если вы всерьез не думаете, что у вас когда-нибудь закончится оперативная память, вам это не нужно.
Это “эмпирическое правило” возникло в то время, когда большинство КОМПЬЮТЕРОВ имели ОЗУ в однозначных мегабайтах. Это не имело смысла уже более 10 лет, но это просто… не… умрет!
@TheX: может быть, через несколько лет, когда люди увидят ваш комментарий, они будут смеяться
Хотя эти 2 вопроса похожи, в другом нет упоминания о гибернации…
на самом деле я понял, что это не так уж плохо, его swap = RAM, а не swap = 2 x RAM
@dn-ʞɔɐqɹw Не стесняйтесь. Я провожу дальнейшие исследования и тестирование относительно использования zram для подкачки (что выбрасывает все предыдущие вычисления в окно), но изменения делают жизнь интересной. Я провел сравнительный анализ накопителя zram (они отображаются на дисках) и получил 1 ГБ / сек. К этому нельзя прикоснуться твердотельным накопителем, не говоря уже о тарелке…
Спасибо, Ури, я думаю, вы можете добавить это в качестве ответа, так что я могу принять его, если только кто-нибудь не придет и не докажет обратное :). Это то, что я думал, я просто хотел быть уверенным.
@Николас, абсолютно верно
как насчет “vm.swappines=0” в /etc /sysctl.conf эта опция будет меняться только в случае нехватки памяти. Кстати, подкачка должна быть не более 8G, чтобы не тратить впустую ваше пространство, и если вы используете SSD, 4G должно быть в порядке. Спасибо.