LINUX.ORG.RU

Сколько места отвести под swap если памяти много

 , ,


0

2

При установке нужно выбрать размер swap раздела.

В интернете рекомендуют умножить количество RAM на два и таким образом понять сколько места нужно под swap.

А у меня 128GB оперативной памяти. Долго жил с 8GB и в конце концов психанул и вставил максимум, который позволяет система.

И теперь получается, что на SSD размером в один терабайт нужно 256GB выделить только под свап. Который неизвестно, будет ли вообще использоваться в таких условиях ))

Может совсем отказаться от свапа? Или возникнут какие-то проблемы?

Я подумал, наверное гибернацию не получится сделать, если свапа не будет. Но, может под гибернацию хватит 64гига хотя бы? Может линукс сумеет не сохранять пустые куски оперативки?


Лет 10-15 живу без свопа, все живы, проблем нет. И рабочие машины и сервера.

Дефрагментировать память через своп? Ну такое. По крайней мере мне ни разу не требовалось. Аптаймы на серваках до полугода или чуть больше. (Перегружаются при регулярных обновлениях)

sergej ★★★★★
()
Ответ на: комментарий от sergej

Дефрагментировать память через своп

а вобще мне казалось, что фрагментируется пространство процесса.

ОС же пофиг в каком порядке у неё страницы лежат?

sergej ★★★★★
()
Ответ на: комментарий от DumLemming

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

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

Qui-Gon ★★★★★
()
Ответ на: комментарий от mrjaggers

384GB RAM на машинке - скорее обыденность.

для?

Я с серверами дело имею (backend dev по профессии). Стандартный setup у нас имеет 192GB на борту, часть машинок (там где это реально обосновано) - 384GB и больше, и таких довольно много.

bugfixer ★★★★★
()
Ответ на: комментарий от Qui-Gon

Но если реально пошел своп - то значит кто-то пожадничал на оперативке.

Вовсе не обязательно. Мы на железе не экономим, но пришлось довольно долго разбираться с RH почему после upgrade на RHEL8 неожиданно начался swap in/out под большими IO нагрузками. И они даже в одном из патчей на ядро это пофиксили. Но тем не менее - с тех пор на всех машинках выделенных под «мои» задачи swappiness выкручен в 1.

bugfixer ★★★★★
()
Ответ на: комментарий от Qui-Gon

Но если реально пошел своп - то значит кто-то пожадничал на оперативке.

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

alegz ★★★★
()
Ответ на: комментарий от alegz

У меня на 32 гигах на ноуте своп 0. Всегда. До того момента пока не воспользуюсь гибернацией. Swapiness выкручиваю патчем от Коливаса который еще вполне себе применим, не особо заморачиваясь что он там значит. Но работает таки.

Как я понимаю беда в том что память долгое время была супер-ценным ресурсом и своп использовался всегда. Сейчас увы производители ноутов с впаянной памятью поддерживают эту тенденцию - но на десктопах и серверах это уже не актуально. А «генетическая память» осталась Ну как с биологическим человеком - тысячи лет голода организм учился урывать любую капельку жратвы, отбирать у мышц и мозгов лишь бы сложить немного жира в пузо. И вот теперь в эпоху изобилия когда жратву выбрасывают в помойку только в путь ходят вернее катаются такие вот шарообразные организмы. Также и со свопом - памяти мало, диск медленный - давай освобождай килобайты, пищи своп заранее - и похрен что ты занял один гиг из 32 или даже 384. Мнение мое и не обязательно правильное - но своп надо мочить в сортире. Надо его иметь - хотя бы для гибернации и всяких пиковых критических моментов но на корню убивать все эти механизмы раннего свопа и крохоборского освобождения памяти когда ее у тебя вагон. Памяти полно - руки прочь от свопа.

Но опять же - мне вполне хватает патчика ок Кона Коливаса который просто выкручивает swapiness в минимум, своп при классическом размере в 2 оперативки (диска в ноуте 2 по 4тб, да на жри собака) почти всегда пустой.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

своп при классическом размере в 2 оперативки

Вот это уже точно устарело. Авторы ядра сами размер сжатого образа при гибернации по умолчанию устанавливают меньше даже просто объема оперативы. 3/5 ЕМНИП.

диска в ноуте 2 по 4тб

Шпиндельных? А то разница в скорости гибернации/просыпания на nvme и hdd забавная скажу.

mrjaggers
()
Ответ на: комментарий от mrjaggers

Шпиндельных? А то разница в скорости гибернации/просыпания на nvme и hdd забавная скажу.

2-х сторонних PCIE 4. WD SN850X и Adata Legend 960.

Авторы ядра сами размер сжатого образа при гибернации по умолчанию устанавливают меньше даже просто объема оперативы.

До того как купил у китайцев ThinkBook был MSI c 64 слотованными гигами. Диск просто перекочевал как было - и размер свопа соответственно тоже. MSI тупо сдох - заглючился мульт, и хоть обычно MSI делали ноуты на распространенных компонентах в эту модель впаяли экзота которого не было даже на алике…

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Но если реально пошел своп - то значит кто-то пожадничал на оперативке.

И что в этом плохого? Если денег лишних много - шли детям в Уганду. У меня на одном сервере одно время было 200% потребления памяти от RAM - ничего, нормально, со своими задачами справлялся. И даже без этих ваших новомодных SSD, на HDD своп лежал.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

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

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

Qui-Gon ★★★★★
()

https://www.kernel.org/doc/gorman/html/understand/understand014.html Chapter 11 Swap Management

https://wiki.archlinux.org/title/Swap_(Русский)

https://help.ubuntu.ru/wiki/swap

https://habr.com/ru/companies/flant/articles/348324/ В защиту swap'а [в Linux]: распространенные заблуждения

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 3)
Ответ на: комментарий от Qui-Gon

Интересно что это были за задачи

Кучка сервисов на Java/Node/Python/Postgres/Mongo.

активная задача - то тупить будет по страшному.

Нет, хорошо работало. Задержки были, но вполне приемлемые.

у больших западных дядек

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

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vbr

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

Неверно. В корпоративных системах в отличии от домашней сетки мелкого провайдера за «вполне приемлемые» но стабильно проявляющиеся задержки можно налететь на штрафы-неустойки или потерять клиента который уйдет к менее жадным конкурентам да еще и раструбит на весь мир что сервис ваш - говно. И потери будут такие что цена этой жалкой памяти на этом фоне будет незаметна. Это для тебя память богатство , продай 32 гига накорми всю африку. А крупной конторе эта память - тьфу и растереть. Поэтому там мозги направлены не на то как держать 200% свопа и экономить 3 копейки, а как не получить 200% свопа.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Я эти корпоративные системы пишу 15 лет и всем плевать на какие-то задержки. Те, кто платят деньги, эти системы в глаза не видят.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vbr

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

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

А так да - заказчику который в систему не ходит на задержки плевать. До тех пор пока задержки в системе не выливаются в сбои отгрузок или подачи налоговой отчетности. А тогда те кто в систему ходит - эскалируют это на уровень тех кто в систему не ходит. И как правило то что босс в систему не ходит и в глаза ее не видел - только увеличивает поток дюлей.

Qui-Gon ★★★★★
()

Спасибо всем огромное за ответы, они мне очень помогли!

На всякий случай поясню свою ситуацию, она самая обычная. У меня ноутбук с которым я считай не расстаюсь. О нём и речь. Гибернация для меня актуальна именно потому что ноут, на десктопе я бы не стал париться. И места под свап мне жалко как раз потому, что к ноутбуку 100500 дисков не присоединить, у меня можно только два сейчас.

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

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

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

Ещё раз спасибо всем!

riptor
() автор топика

Попалось такое в сети:
активируйте дисковое хранилище в качестве подкачки для поддержки гибернации, когда система обычно использует только подкачку zram
https://aur.archlinux.org/packages/zram-hibernate-git

Сам не использую hibernate, но использую zram в качестве свопа.
Выложил для истории, может кому-то покажется интересной идея и реализация. )

krasnh ★★★★
()
Ответ на: комментарий от riptor

а в мануале от Ред Хэта говорят, что вообще надо объём памяти умноженный на полтора

Все проще. Работаем на ноуте - и смотрим сколько у нас свопа занято. Желательно wm_swappiness выкрутить с дефолтных 60 на 20 чтобы у системы отбылось желание свопить заранее на всякий случай.

Ну а там смотреть сколько останется свободного свопа и сколько занятой памяти.

Qui-Gon ★★★★★
()
Ответ на: комментарий от riptor

Гибернация для меня актуальна именно потому что ноут, на десктопе я бы не стал париться.

использую на десктопе постоянно.

я смогу просто уменьшить файл до рекомендуемых многими нескольких гигабайт и этого хватит.

ты только рекомендации читаешь (хинт: глупых - обычно больше) или сам пытаешься что-то найти авторитетное?

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

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

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

всё ясно. очередной с невозможностью восприятия.

mrjaggers
()
Ответ на: комментарий от mrjaggers

использую на десктопе постоянно.

Расскажи, сколько у тебя оперативной памяти и какого размера свап ))

ты только рекомендации читаешь (хинт: глупых - обычно больше) или сам пытаешься что-то найти авторитетное?

Там посмотри выше, есть ссылка на мануал от редхета

я бы не представил, что кто-то до такого додумается.

Да? Мне кажется на поверхности идея

Браво

Спасибо ))

Но ты не будешь так делать лол

Да не, буду, почему нет

всё ясно. очередной с невозможностью восприятия.

Ааааа, ты хочешь ругаться. Жанр не мой, но давай я попробую. «очередной с невозможностью восприятия» надо было на последней строчке писать. Подпись должна отдельной строкой идти ))

riptor
() автор топика

Весь смысл свопа в том что произойдет когда закончится физическая память: новые приложения перестанут запускаться, пойдут разнообразные глюки от любителей динамического выделения, сама ОС может зависнуть.

Cо 128Гб физической памяти достичь такого будет тяжело, поэтому он тут если и нужен, то лишь как триггер для OOM-киллера и маленький - 1-2Гб и все.

alex0x08 ★★★
()