У вас может быть слишком много свопа?

16

Мне просто интересно, если у вас может быть раздел подкачки, который является слишком большим. Если да, то когда раздел подкачки слишком большой? Каковы недостатки / негативные последствия наличия слишком большого раздела подкачки (даже если у меня достаточно места на диске)?

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

An0n
источник
5
Очевидным недостатком является то, что вы тратите место на диске. OTOH: если у вас «слишком большой» обмен (скажем, 30 ГБ в системе 4 ГБ), то неправильно работающие приложения получат нехватку памяти намного позже, и это замедлит работу вашей системы. Упорядоченные приложения (без утечек памяти) просто не будут его использовать. (Я признаю, это упрощенное представление.)
PerlDuck
Я согласен с @PerlDuck - «слишком много обмена» просто использует дисковое пространство. Ваша система будет работать медленно, если она начнет использовать своп, в этом случае либо запустите меньше приложений, приложения с меньшим весом, либо получите больше оперативной памяти
Panther
Я знаю, так что если у вас достаточно оперативной памяти, кроме использования слишком большого дискового пространства, есть ли недостатки? За исключением неподходящих "плохих" приложений, как сказал PerlDuck.
An0n
1
VTD Все вопросы в Редактировании оправдывают изменение причины закрытия с дубликата на не по теме как слишком широкий. ОП явно недоволен, но мета или чат - лучшее место для обсуждения.
WinEunuuchs2Unix
3
В случае, если люди не уверены в том, о чем говорит @PerlDuck (и Panther), учтите, что даже если бы у вас было фактически неограниченное дисковое пространство, наличие большего пространства для перестановки сделает процессы, которые должны быть просто завершены, и которые в противном случае были бы быстрыми прервано автоматически, сначала замедлите систему до сканирования . Я думаю, что комментарий PerlDuck также будет работать как ответ. Если в итоге мы вновь откроем этот вопрос, возможно, можно будет добавить ответ о недостатках, связанных с наличием гораздо большего количества свопов, чем необходимо. Потому что есть недостатки.
Элия ​​Каган

Ответы:

8

нет

На первый взгляд у вас не может быть слишком большого объема подкачки, потому что вы можете рассматривать своп как способ увеличения оперативной памяти. На самом деле это не увеличивает ОЗУ, а только притворяется: если у вас 8 ГБ реальной ОЗУ и пространство подкачки, скажем, 24 ГБ, то ваши программы могут выделять и использовать до 8 + 24 = 32 ГБ памяти это звучит хорошо на первый взгляд.

Но

Если вы запускаете приложения, которые имеют утечки памяти или на самом деле не предназначены для работы с 8 ГБ памяти (например, для редактирования видео), то эти приложения начнут использовать это пространство подкачки, и обмен будет медленным. Чем больше пространства подкачки активно используется этими приложениями, тем больше система занята просто перемещением памяти на диск и с него. Это резко замедлит общую отзывчивость системы и приведет к плохому пользовательскому опыту.

В конце концов - когда пространство подкачки исчерпано - некоторые приложения столкнутся с нехваткой памяти и будут убиты OOM_Killer ядра .

Из вики :

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

Вывод

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

Другим очевидным недостатком, конечно, является растрата дискового пространства, но в наше время это не так важно.

PerlDuck
источник
+1 за рассмотрение краевого случая. Лично я не большой поклонник свопинга, потому что спячка предназначена для медведей, и мои системы слишком заняты для этого. ;-) Приветствия.
Старейшина Гик
@ElderGeek LOL. На самом деле Элия ​​Каган заставила меня превратить мой простой комментарий в ответ. Он убедил меня в том, что вышеупомянутый недостаток слишком большого объема свопа является критически важным и может быть важным для других. Я с вами, и у меня настроен небольшой своп (2 ГБ с 8 ГБ ОЗУ), и он почти никогда не затрагивается.
PerlDuck
У меня были похожие результаты с похожими настройками, я бы хотел, чтобы слух о 2x обмене наконец умер.
Старейшина Гик
5

Нет прямого недостатка в большом пространстве подкачки. Благодаря тому, как оно управляется ядром, увеличение объема пространства подкачки сверх того, что достаточно, не оказывает или оказывает незначительное влияние на производительность.

Единственным недостатком «слишком большого» пространства подкачки является то, что вы не можете использовать это пространство для хранения.

Дэвид Фёрстер
источник
1
@ An0n: Я думаю, что было бы довольно большим недостатком выделить все ~ 6 ТБ, которые в настоящее время подключены к моей машине, как пространство подкачки. Где бы я положил всю свою музыку ...?
Дэвид Фёрстер
2
@ An0n: Что хорошего в компьютере, если все, что он может сделать, это загрузить, а затем не хранить полезные данные? Это больше похоже на дорогой обогреватель.
Дэвид Фёрстер
1
@ An0n: Конечно, я так и предполагал, но вы упускаете суть. Я думаю, что мы можем согласиться с тем, что для того, чтобы быть полезным, компьютер должен быть в состоянии достичь работоспособного состояния системы (включая возможность загрузки) и иметь доступ к хранилищу, которое пользователь может использовать для своих личных данных. Это требует, чтобы он не был занят подкачкой.
Дэвид Фёрстер
2
Конечно это относительно. Также как «слишком много» является относительным. Если у меня есть загрузочная система, и я выделяю все свое свободное пространство как пространство подкачки, то это больше не полезно для меня из-за недостатка свободного места, пока я не изменю конфигурацию своей системы так, чтобы это заканчивалось большим количеством свободного пространства. В этом смысле пространство подкачки будет «слишком большим» в течение этого времени, что делает систему бесполезной в течение этого времени. Во всяком случае, я здесь не для того, чтобы спорить с вами о семантике слов.
Дэвид Фёрстер
1
@ An0n Чтобы подчеркнуть здесь, пространство подкачки - это пространство, которое вы не можете использовать ни для чего другого. Дисковое пространство стоит денег. Если ваше дисковое пространство ограничено (у меня всего 32 ГБ), вы хотите оставить как можно больше свободного места для установки программ и записи файлов с вашими материалами, например музыкой. Люди обычно стараются своп свести к минимуму по этой причине, а не по другой причине. Своп - это то, что может потребоваться для эффективной работы системы, в противном случае это не имеет значения для пользователя. В целом, мы хотим, чтобы наша система использовала только необходимые ресурсы, и у нас было много возможностей для игры.
Занна
4

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

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

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

Хорошего дня!

Zurg
источник
2
Я вообще не использую swap, если оперативная память> 2-4 Гб на однопользовательском рабочем столе.
Пантера
1
@ Пантера Почему бы и нет? И дело не в том, как или когда вы его используете. Речь идет о размере и использовании.
An
2
Рассматривали ли вы влияние утечек памяти?
Старейшина Гик
@ ElderGeek Привет, нет, я не учел это. Мне нравится ваш ответ, я не знал о проблеме утечки памяти!
Цург
2

Сколько SWAP действительно нужно для гибернации?

Это ошибочное мнение, что вам нужен RAM x 2 для размера SWAP, когда вы используете спящий режим. Размер подкачки должен быть размером используемой оперативной памяти, а не установленной оперативной памяти . Обычно размер подкачки должен составлять 2/5 от установленной оперативной памяти. Чтобы узнать минимальный объем оперативной памяти, необходимый для использования:

$ cat /sys/power/image_size
3153907712

На этой 8 ГБ оперативной памяти для перехода в спящий режим требуется минимум 3 ГБ.

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

Ссылка: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


16 МБ ОЗУ в 1995 году, различные правила для 16 ГБ ОЗУ в 2018 году

В те дни, когда у вас было 16 МБ ОЗУ, x 2 для 32 МБ на жестком диске имело смысл. Немного истории RAM и HDD в этой статье 1995 года в Washington Post .

Спустя 23 года некоторые технические статьи 1995 года (хотя я их не нашел) могут ввести в заблуждение новых пользователей. Однако я нашел статью 2007 года, в которой рекомендуется SWAP = RAM x 2 .

В 1995 году 32 МБ жесткого диска из 760 МБ составляли 4% жесткого диска. Действительно, раздел подкачки, возможно, много использовался в 1995 году. Сегодня в 2018 году 16 ГБ ОЗУ x 2 для 32 ГБ SWAP на 256 ГБ SSD не имеет такого же смысла, как использование 13% SSD. Сегодня мой SWAP-раздел объемом 8 ГБ вообще не используется, если я не заставлю его заполнить его при тестировании OOM-Killer: Google Chrome поднимет мою память до такой степени, что мой компьютер практически остановится. Что я могу сделать, чтобы предотвратить это? ,

WinEunuuchs2Unix
источник
+1 за указание на неправильное представление о часто рекламируемом правиле 2x, которое является полной койкой.
Старейшина Гик
@ElderGeek Спасибо. Я добавил раздел истории, когда 16 МБ ОЗУ раз 2 для 32 МБ SWAP могли иметь смысл.
WinEunuuchs2Unix
Еще одна вещь, которую следует учитывать, это SSD против HDD. Нужно ли нам много чтения / записи на SSD, чтобы быстрее привести к сбою в этой части SSD (или это миф)? В моей системе 32 ГБ ОЗУ я использовал 2 ГБ велоцираптора для SWAP, но без намерения перейти в спящий режим, все еще не уверен, что это нормально, возможно, у меня не было свопа ??? Но если бы я находился в спящем режиме, возможно, 4 ГБ было бы достаточно, но есть вероятность, что я использовал бы 20 ГБ браузера, и тогда 4 ГБ было бы недостаточно?
NZ Dev
@NZDev У меня своп на SSD, но он редко используется. В прошлый раз, когда я проверял, все еще осталось 100% жизни после 1 года использования. Чтобы увидеть процент оставшейся жизни: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix
1

Что такое своп:

Пространство подкачки в Linux используется, когда объем физической памяти (RAM) заполнен. Если системе требуется больше ресурсов памяти и ОЗУ заполнено, неактивные страницы в памяти перемещаются в пространство подкачки. Хотя пространство подкачки может помочь компьютерам с небольшим объемом оперативной памяти, его не следует считать заменой большего объема оперативной памяти. Пространство подкачки находится на жестких дисках, которые имеют более медленное время доступа, чем физическая память.

Пространство подкачки может быть выделенным разделом подкачки (рекомендуется), файлом подкачки или комбинацией разделов подкачки и файлов подкачки.

Обмен должен быть равен 2x физической памяти.


Преимущества:

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

Недостатки:

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


Когда SWAP-разделы «Не помогают», как в «не стоит сравнивать с дополнительным хранилищем»:

Если ваш жесткий диск имеет только 5400 об / мин, а у вас мало оперативной памяти, допустим, что> 2 ГБ. Почему ? Поскольку система постоянно хотела получить доступ к разделу SWAP, она в конечном итоге станет очень медленной. Несмотря на то, что теперь у вас есть место в памяти, все в разделе SWAP необходимо переместить обратно. Поскольку система будет работать медленно, выделение останется в разделе SWAP. Это можно исправить только перезагрузкой. Что в любом случае займет некоторое время, потому что система должна удалить все из раздела SWAP перед выключением.


** Заключение: **

Если вы хотите иметь возможность переводить компьютер в спящий режим , у вас должен быть раздел SWAP. Размер этого раздела должен соответствовать размеру установленной памяти, плюс дополнительные 10-25%, чтобы оставить место для любых элементов, которые уже были перенесены в раздел SWAP.

Если вам просто нужно небольшое повышение производительности (и у вас есть как минимум 7200 об / мин жесткого диска), тогда вы можете добавить раздел SWAP, если хотите, но он не нужен, если у вас не менее 4 ГБ установленной памяти. Размер этого может быть любым, что вы хотите. Однако я рекомендую в 2 раза больше оперативной памяти. Если у вас есть достаточно места для хранения.

Если у вас жесткий диск 5400 об / мин, вам не следует создавать раздел SWAP просто потому, что узкое место ухудшит работу вашего компьютера. Однако, если вы абсолютно хотите иметь SWAP, вы все равно можете создать раздел, используя те же рекомендации по размеру, как описано выше, - но измените значение подкачки на что-то намного меньшее.



Мое мнение:

Однако в любом случае, если вы используете Ubuntu в качестве основной ОС для ежедневного использования, я рекомендую 2 раза больше оперативной памяти. Потому что вы не устанавливаете Ubuntu только потому, что у вас старый компьютер. Но потому что вы хотите использовать систему в качестве основной ОС.

Вместо этого купите дополнительное оборудование, если необходимо, вместо того, чтобы настраивать системные разделы, чтобы он работал. Если вы покупаете игру, вы также убедитесь, что ваша система «обновлена», а не настраиваете ее, чтобы сделать ее «играбельной».

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

An0n
источник
Re: ваше заключение Это просто не имеет смысла, или другой способ выразить это, где мы проводим черту. например, 8 ГБ ОЗУ плюс 16 ГБ подкачки. Что делать, если я использую 8 ГБ ОЗУ и 9 ГБ подкачки, тогда для спящего режима еще недостаточно места. Так что же дает? Другими словами, независимо от того, какого размера вы его делаете, вы все равно можете использовать его все больше и больше. Так почему же в файле подкачки не выделено 2 выделенных пространства: 1 в качестве виртуальной памяти, а другое - в качестве спящего пространства, которое будет суммой или другим 2. Это просто не складывается для меня, и никто никогда не отвечал на этот вопрос.
NZ Dev
0

Действительно, накладные расходы очень малы; для каждой "страницы" на диске есть счетчик ссылок, и есть пара структур, связанных с каждой областью подкачки; это находится в памяти ядра, поэтому не может быть выгружено. Это от 2 до 16 МБ каждые 4 ГБ, в зависимости от архитектуры. Остальное довольно динамично, поэтому зависит от использования.

Таким образом, вы можете иметь много, но имейте в виду, что само адресное пространство с постраничными адресами накладывает некоторые накладные расходы на ОЗУ, и, в дополнение к этому, происходит некоторое отслеживание для подкачанных страниц, поэтому оно не масштабируется слишком далеко; даже если накладывать значительные накладные расходы, файловые системы гораздо более эффективны, чем области подкачки, когда дело доходит до обработки больших областей, поскольку vfs может выгружать структурную информацию на диск (обычно, по крайней мере, таблицы страниц не могут быть обменены из-за аппаратных ограничений, и vmm, вероятно, использует не заменяемую память для всей своей бухгалтерии).

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

Обмен, как правило, является последним ресурсом (за исключением гибернации), поэтому вам, вероятно, не выгодно иметь больше места подкачки, чем ОЗУ, особенно если у вас более 4 ГБ ОЗУ, а иногда даже если объем ОЗУ слишком велик (например, 64 ГБ) ,

Исмаэль Лучено
источник
Извините, ваше последнее утверждение / предложение сбивает с толку, в противном случае хорошее дополнение к вышесказанному.
NZ Dev
@NZDev теперь лучше?
Исмаэль