У меня 16 ГБ ОЗУ. Нужен ли подкачка 32 ГБ?

Я читал во многих местах, что практическое правило для пространства подкачки - удваивать объем физической оперативной памяти. Тем не менее, 32 ГБ действительно много. Мне так нужно? Нужно ли вообще это с таким большим количеством физической памяти?

22 ответа

Решение

Это полностью зависит от того, что вы планируете делать с машиной. Например, если бы это был Sap-сервер, то да, я бы добавил 32-гигабайтный обмен (у нас есть боксы с 128-гигабайтным ОЗУ и 32-гигабайтным обменом). Если вы манипулировали большими изображениями и видео, тогда имеет смысл немного поменяться. 32 ГБ, вероятно, излишним.

Однако я бы не сказал, что нулевой своп.

В маловероятном случае, когда у вас заканчивается ОЗУ - возможно, при открытии большого файла, который может переместиться на давно работающую вкладку в Firefox, это не имеет значения, в этом случае ваш ядро ​​OOM Killer включится и начнет убивать приложения, чтобы вернуть память. При таких обстоятельствах вполне возможно, что вы потеряете данные, поскольку приложения будут убиты. Однако, если у вас есть небольшой своп, система продолжит работу, захватывая своп и позволяя системе продолжить работу. Система замедляется, так как происходит тяжелый обмен, вы замечаете и исследуете, прежде чем весь обмен исчерпан. Также диск очень дешевый, так почему бы не иметь своп?

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

Вот очень хорошая рекомендация от RedHat: Рекомендуемое пространство подкачки

Выдержка из той же ссылки:

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

Текущая таблица (по состоянию на декабрь 2017 года):

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            At least 4 GB                  1.5 times the amount of RAM
64GB of RAM or more           At least 4 GB                  Hibernation not recommended

Оригинальный стол:

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 

Argh. Ответы на этот пост очень ошибочны, и это один из первых результатов поиска в Google по запросу "Сколько обменять?"

Во-первых, хорошим ориентиром является Ubuntu Swap FAQ

Этот FAQ подчеркивает, что никто здесь не упоминает, и это (выделение мое)

Иногда большая программа (например, OpenOffice, Neverwinter Nights или видеоредактор) заставляет всю систему нуждаться в дополнительной памяти. Значительное количество страниц, используемых этими большими программами во время запуска, может использоваться только для инициализации, а затем никогда не использоваться снова. Система может поменять эти страницы и освободить память для других программ или даже для дискового кэша. В этих случаях используется своп, чтобы помочь системе справиться с любой дополнительной нагрузкой.

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

В разделе часто задаваемых вопросов по Ubuntu Swap обсуждается этот вопрос в разделе Что такое подкачка и как мне его изменить? По умолчанию в системе Ubuntu установлено значение 60, а в разделе часто задаваемых вопросов рекомендуется значение 10 для настольного компьютера.

Итак, я бы сказал, что, как правило, очень важно не иметь систему, в которой абсолютно нет места подкачки, как некоторые люди рекомендовали бы по этому вопросу, если вы не знаете определенных очень специфических сценариев использования для вашей системы и очень хорошо осведомлены о последствиях. это могло бы иметь. (Лично у меня нет ситуации, когда я бы запускал систему без подкачки) В сценарии "Недостаточно памяти" без подкачки система начнет уничтожать процессы (обычно тот, который вызвал OOM)

Возможно нет. Если вы планируете перевести компьютер в режим гибернации (приостановить на диск), вам потребуется как минимум 16 ГБ. Если вы не впадаете в спящий режим, достаточно выделить несколько гигабайт для обмена (максимум 4-8).

По опыту могу сказать следующее:

Для того, что я видел, используя 4 ГБ оперативной памяти в течение 3 лет, Ubuntu использовал подкачку около 60 МБ, но только при выполнении очень интенсивных задач. Пару недель назад я начал использовать ПК с 16 ГБ оперативной памяти, а использование свопа навсегда осталось на уровне 0%. Я сделал несколько компиляций, рендеринг видео и другие интенсивные задачи. Там никогда не было изменений в свопе. Даже не 1 КБ изменения.

В основном, в Ubuntu, чем больше оперативной памяти у вас есть, тем меньше вероятность того, что вы будете использовать или использовать подкачку для любой задачи. 16 ГБ ОЗУ или даже 8 ГБ ОЗУ более чем достаточно. Я сделал с 16 ГБ ПК 8 Virtualbox ПК (каждый от 1 ГБ до 2 ГБ оперативной памяти). Я скомпилировал и рендерил видео с разрешением 720p, и даже в этих условиях обмен не изменился.

С учетом вышесказанного правило увеличения памяти в два раза больше не должно применяться в системах на базе Linux, особенно если у вас больше памяти. Однако у вас должен быть тот же размер свопа, который равен размеру оперативной памяти, или если вы планируете переходить в спящий режим, так как процесс гибернации захватывает все в оперативной памяти и помещает его в своп, поэтому вам необходим минимальный размер, равный размеру вашей оперативной памяти. для обмена.

Другая деталь заключается в том, что некоторые приложения (не все) будут по-прежнему заставлять читать из свопа. Так что иметь немного хорошо. Его полное отключение очень плохо, если вы попадаете в состояние нехватки памяти или OOM. В этот момент, если у вас нет свопа, ядро ​​не сможет поменять местами различные приложения ram и в конечном итоге начнет убивать менее используемые.

Если это поможет с принятием решений в домашних настольных системах, после обновления этого ответа более чем за 4 года я использовал 16 ГБ, 32 ГБ, а теперь и 64 ГБ оперативной памяти. Тестирование с использованием только 128 МБ подкачки показало, что мне не нужно больше подкачки, кроме случаев, когда я хочу перейти в спящий режим. Я использовал облачные среды на них, lxc, virtualbox, wine, вы называете это. Я сделал видео с openshot, kazam, ручным тормозом, смелостью. Я использовал 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 ГБ было бы слишком много.

Если вы используете спящий режим, у вашего свопа должно быть по крайней мере столько же, сколько у вашего физического барана.

Из Ubuntu SwapFaq:

Зачем мне нужен своп?

Программы, потребляющие память Иногда, большие программы (такие как LibreOffice, Neverwinter Nights или видеоредактор) заставляют всю систему нуждаться в дополнительной памяти. Значительное количество страниц, используемых этими большими программами во время запуска, может использоваться только для инициализации, а затем никогда не использоваться снова. Система может поменять эти страницы и освободить память для других программ или даже для дискового кэша. В этих случаях используется своп, чтобы помочь системе справиться с любой дополнительной нагрузкой.

Режимгибернации (приостановка на диск) Функция гибернации (приостановка на диск) записывает содержимое оперативной памяти в раздел подкачки перед выключением компьютера. Следовательно, ваш раздел подкачки должен быть не меньше размера вашей оперативной памяти. Реализация спящего режима, используемая в настоящее время в Ubuntu, swsusp, требует раздела подкачки или приостановки. Он не может использовать файл подкачки в активной файловой системе.

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

Оптимизация использования памяти Поскольку механические жесткие диски значительно медленнее ОЗУ (SSD - твердотельный накопитель - хранилище не такое медленное, как физические диски, но все же медленнее ОЗУ), когда вам нужен файл (будь то файл данных, такой как видео, такие исполняемые файлы, как Firefox или библиотеки), ядро ​​Linux считывает файл в ОЗУ и сохраняет его там, так что в следующий раз, когда он вам понадобится, он уже находится в ОЗУ, и доступ к данным намного быстрее. Части оперативной памяти, которые ускоряют чтение с диска, называются "кэшированной памятью". Вы заметите, что они имеют огромное значение с точки зрения отзывчивости. Ядро Linux автоматически перемещает оперативную память, зарезервированную программами - но на самом деле не используется - в раздел подкачки, так что это может служить лучшей цели расширения кэшированной памяти.

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

Сколько своп мне нужно?

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

Для более современных систем (>1 ГБ) пространство подкачки должно быть как минимум равным размеру вашей физической памяти (ОЗУ) "если вы используете спящий режим", в противном случае вам потребуется минимум округления (sqrt(RAM)) и максимум в два раза больше оперативной памяти. Единственный недостаток наличия большего количества пространства подкачки, чем вы фактически используете, - это дисковое пространство, которое вы зарезервируете для него.

"Уменьшающаяся отдача" означает, что если вам требуется больше места подкачки, чем в два раза больше объема ОЗУ, лучше добавить больше ОЗУ, поскольку доступ к жесткому диску (HDD) примерно на 10³ медленнее, чем доступ к ОЗУ, так что это займет 1 секунду, вдруг занимает больше 15 минут! И еще более минуты на быстром твердотельном накопителе (SSD)...

Примеры сценариев

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256

Вам нужно только поменять местами, если вы хотите использовать hibernate для остальных, это пустая трата места на вашем жестком диске.

У меня есть ноутбук с 4 ГБ оперативной памяти и Ubuntu 16.04. После загрузки он занимает около 1 ГБ ОЗУ, и даже в этом случае Inkscape (например) не будет работать (системный монитор показывает более 50% свободной ОЗУ). Inkscape зависает После того, как я применяю файл подкачки, он запускается, как и ожидалось, даже без использования единственного байта подкачки). Поэтому я рекомендую раздел подкачки (или файл подкачки). О размере этого вы можете использовать правило david6.

Я не могу найти здесь ссылки на цитаты, но если вы собираетесь использовать приложение, в котором вам нужно выгружать все данные в ОЗУ, вам потребуется по крайней мере "объем ОЗУ +128 МБ" или "1,25 раз ОЗУ" (т.е. забыл какой был правильный) при условии, что у вас ОЗУ больше 2 ГБ. Если объем оперативной памяти составляет 2 ГБ или меньше, рекомендуется использовать объем подкачки в два раза больше. Я следовал этой рекомендации в моей предыдущей организации для IBM AIX на основе документа IBM. Я полагаю, что это верно для большинства * nix, поскольку использование swap - это безопасное перемещение данных из ОЗУ в случае, если ОЗУ недостаточно для обработки данных, загружаемых в память. Команда "free" может использоваться для оценки того, сколько swap используется в реальности.

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

Так что, если вы планируете оставить машину надолго, своп - это удобный способ освободить память от мусорного зомби. Конечно, это займет у вас больше времени, чтобы заполнить 16g, чем у меня 3gb, но это все еще приятно. Для этого подойдет 4Gb.

Имейте это в виду -

Как правило, размер пространства подкачки должен быть примерно равен 2x основной памяти для систем с объемом оперативной памяти менее 2 ГБ или примерно 1x основной памяти, если у вас больше

Так что если у вас 4 Гб оперативной памяти, вам никогда не понадобится своп
Требуется своп около 3 - 3,5 Гб, не более того.
Так что используйте свой здравый смысл и не тратьте дисковое пространство

Если вы создаете очень большие файлы, скажите, например, если вы строите системы машинного перевода на ноутбуке (да, хорошо, почему вы хотите это сделать? Я, например, могу сказать, что мои профессора делают меня;-)) ответ ясно да, на самом деле в этот момент я сожалею, что не сделал это подкачка 32 Гб....

При случайном использовании Ubuntu для работы в офисе и интернете вы никогда не будете использовать даже 2 ГБ подкачки, но на самом деле однозначного ответа нет, все зависит от того, что вы собираетесь делать на своем компьютере...

Слишком много информации и расхождение во мнениях.

Мои рекомендации по использованию Ubuntu на рабочем столе:

 amount of RAM      recommended swap    with hibernation
----------------    ----------------    ----------------
 less than 4GB        2x RAM size         3x RAM size
   up to 8GB              4GB             2x RAM size
   up to 16GB             4GB            1.5x RAM size
  16GB or more            4GB           No extra needed

Если это лэптоп, то оставьте как минимум объем подкачки, равный объему оперативной памяти, чтобы полностью разрешить спящий режим. Я бы по-прежнему держал количество, равное объему оперативной памяти, даже если настольный компьютер, но это только я; он будет мало полезен на рабочем столе.

Я думаю, что вы получили это наоборот. Рекомендация SWAP, вам потребуется ~16 ГБ. Таким образом, размер SWAP должен составлять 1/2 от фактического объема ОЗУ. Но это все еще МНОГО пространства. Зависит от того, что вам нужно. Я бы сказал, что если вы не используете "спящий режим", оставьте от ~4 до ~8 ГБ, если вы можете позволить себе дисковое пространство. Поскольку у вас есть 16 ГБ, я предполагаю, что вы, возможно, используете компьютер, который нуждается в мощных ресурсах... так что, возможно, было бы также полезно иметь SWAP от 16 ГБ до 32 ГБ.

У меня 2 ГБ оперативной памяти и 1 ГБ подкачки. Я прекрасно с этим справляюсь, но это только мое мнение. Посмотрите на другие комментарии / предложения и посмотрите, что они говорят.

Кажется, никто не упомянул еще одну причину значительного пространства подкачки, заключающуюся в том, что система заметно замедляется, а не запускает программы, когда у вас заканчивается нехватка памяти. Если у вас есть балансировщик нагрузки, который перенаправляет при сбое, вы можете сохранить небольшой размер подкачки (скажем, 1 ГБ). Если вы хотите, чтобы программы сначала замедлялись, то я бы рассмотрел 4 ГБ + квадратный корень из объема памяти, и если вы хотите их чтобы действительно замедлиться, прежде чем что-то умирает, затем удерживайте минимум 1,25 временного объема памяти (пока нетерпеливые люди не сдаются первыми - это было бы более подходящим для фоновых заданий).

Я настраиваю 1 ГБ для своих машин разработки и производства как стандарт, тогда не имеет значения, сколько у них или мало реальной памяти, их достаточно для компиляции всех программ, которые я хочу, и для замены практически никогда не используемых программ, чтобы использовать освободил память для буферизации диска.

Для сравнения, на моем 32-ГБ ноутбуке имеется подкачка 64 ГБ, что немного излишне, но я хотел убедиться, что он всегда продолжал работать, даже если медленно, и я знал, что собираюсь запускать несколько виртуальных машин, потребляющих много памяти. Неожиданный эффект - когда у вас есть 32 ГБ памяти + диапазон, то восстановление из режима гибернации (который перезагружает 32 ГБ памяти) заметно медленнее, чем холодная загрузка.

Нет, вам точно не нужно 32 ГБ. Как правило, для настольной системы я бы сказал, что ваш обмен должен быть где-то между 4 ГБ и физической ОЗУ + пара ГБ. Таким образом, для физической оперативной памяти 16 ГБ, своп может быть от 4 ГБ до 18 ГБ, возможно.

Материал, который вам понадобится для своппинга в пространство подкачки, будет примерно равен объему физической оперативной памяти, используемой приложениями, которые остаются резидентными, то есть системными службами и приложениями, которые остаются запущенными во время их использования (в отличие от задач, которые запускаются один раз). затем выйти) Допустим, в настольной системе вы можете оставить открытым браузер, текстовый процессор, почтовую программу и графический или видеоредактор, работая над чем-то другим. Те могут легко занимать более 2 ГБ, может быть, более 4 ГБ. Так что, возможно, уместно 6 ГБ подкачки.

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

Примечание: если вы хотите использовать спящий режим ОС, вам понадобятся все 16 ГБ, как уже упоминалось, но современные компьютеры не сильно выигрывают от спящего режима. Если у вас быстрый SSD, загрузка может быть такой же быстрой или быстрой, как и восстановление из спящего режима, и современные компьютеры потребляют незначительное количество энергии в спящем режиме, поэтому выигрыш в энергопотреблении из спящего режима не является значительным фактором.

Другие вопросы по тегам