Нужно ли нам менять разделы на серверах?

37

Я прочитал этот вопрос , но он был задан в контексте серверов, а не настольных компьютеров или ноутбуков.

Если на ноутбуке установлено достаточное количество оперативной памяти, скажем, 8 ГБ, нам все еще нужно место подкачки?

детская коляска
источник

Ответы:

33

Существует распространенное заблуждение, что наличие пространства подкачки негативно влияет на производительность системы. Это неверно Пока у вас достаточно оперативной памяти, наличие области подкачки независимо от ее размера никак не влияет на производительность. На производительность влияет нехватка оперативной памяти и эффективное использование пространства подкачки.

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

  2. Если у вас есть место подкачки и не хватает оперативной памяти, ядро ​​выберет менее использованные страницы памяти и поместит их в область подкачки для освобождения оперативной памяти. Это замедлит работу системы, но иначе ваши приложения не будут затронуты.

Я всегда предпочитаю вариант 2., поскольку мне неудобно терять части или всю мою работу, потому что ядро ​​считает, что мои приложения стоит убивать. Более того, при текущем размере среднего диска в диапазоне ТБ резервирование нескольких процентов для подкачки обычно не является проблемой.

jlliagre
источник
Ваша первая точка зрения действительно верна? Ядро будет убивать запущенные процессы, чтобы освободить оперативную память? Почему ядро ​​не использовало бы дисковое пространство вместо того, чтобы убивать живые процессы?
Донато
4
@ Донато Да, моя первая мысль верна. Если не настроено пространство подкачки (т. Е. Диск), ядру не предоставляется выбор использования дискового пространства для освобождения оперативной памяти.
Jlliagre
и что происходит, когда я заканчиваю пространство подкачки? Отступить в случае 1?
Зак
@Zac Да, если только вы действительно не отключили чрезмерное использование памяти, в этом случае первый процесс, не выделивший память, будет поврежден. Обратите внимание, что если у вас настроена (значительная) область пространства подкачки и вы используете ее большую часть, у вас, вероятно, будут серьезные проблемы с производительностью.
Jlliagre
1
@Zac Если вы исчерпали пространство подкачки, вы, по сути, находитесь в той же ситуации, что и вначале без пространства подкачки. Один или несколько процессов умрут. Они могут быть выбраны убийцей или просто не в том месте и не в то время. Обычно должным образом контролируемая производственная система должна иметь предупреждение, а затем реакцию администратора, прежде чем произойдет исчерпание свопа.
Jlliagre
9

Если у вас есть оперативная память 3 ГБ или выше, Ubuntu автоматически НЕ ИСПОЛЬЗУЕТ пространство подкачки, так как этого более чем достаточно для ОС.

Теперь вам действительно нужен раздел подкачки?

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

Для получения дополнительной информации о необходимости замены или ее замене см. Ubuntu Swap Faq или Требования к обмену

Митч
источник
У вас есть ссылка, подтверждающая ваше первое заявление?
Jlliagre
@jlliagre Посмотрите на mygeekopinions.blogspot.com/2011/03/… , который ведет к askubuntu.com/questions/23676/…
Митчу
1
В сообщении блога неправильно цитируется ответ аскунбуту. Нет никаких доказательств того, что user4124 является разработчиком Ubuntu. «будет (как правило) не использовать» совершенно отличается от «автоматически отключить». На самом деле, Ubuntu никогда не отключает своп и будет использовать его при необходимости, даже если у вас 8 ГБ ОЗУ или больше.
Jlliagre
@jlliagre Это означает, что пространство подкачки есть, но не используется. Когда я установил Xubuntu 14.04, он создал подкачку на 16 ГБ, и он еще никогда не использовался. см. изображение
Митч
1
Рад, что вы исправили свой ответ. «Не использовать», безусловно, не то же самое, что «отключить». Ubuntu не отключает своп и будет использовать его при необходимости, независимо от его размера.
Jlliagre
4

Последние 6 лет я использовал настольные системы с оперативной памятью не менее 8 ГБ. Я не помню случая, когда система заменяла память при обычном использовании, и я довольно часто отслеживаю использование ресурсов с помощью htop. Даже в тех случаях, когда я запускал 4 виртуальных машины (сервера) одновременно для целей разработки, не происходил обмен.

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

hmayag
источник
2

Наличие пространства подкачки всегда хорошо.

Здесь я цитирую руководство по сертификации RHCSA / RHCE Майкла Янга

Linux Swap Space

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

Для систем объемом до 2 ГБ размер пространства подкачки по умолчанию в два раза превышает объем установленной оперативной памяти. Выше 2 ГБ это объем оперативной памяти + 2 ГБ. Но это не «жесткие и быстрые» правила. Рабочие станции с несколькими ГБ ОЗУ часто используют очень мало места подкачки, но могут использоваться чаще в системах, которые не перезагружаются в течение нескольких месяцев или имеют большой спрос со стороны определенных служб.

Гаян Виракутти
источник
1
«Linux перемещает редко используемые программы и данные для замены пространства, даже если у вас есть гигабайты оперативной памяти». Я предполагаю, что здесь речь идет о коде и данных, загруженных в память. Если у вас 8 ГБ ОЗУ и вы просто запускаете обычные приложения, с какой стати любой код или страница данных будут выгружены для замены?
Тарик
1

Это зависит от того, что вы используете в своей системе.

Если вы создаете контент, вероятно, будет хорошей идеей выделять пространство подкачки, поэтому, если у вас заканчивается ОЗУ, ваши процессы замедляются, а не останавливаются и могут потерять работу.

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

Эрик Соколовский
источник
1

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

Grzegorz Żur
источник