LINUX.ORG.RU

Должен ли очищаться свап при появлении свободной ОЗУ?

 ,


0

2

16Гб памяти, 8Гб свапа. Пока сидел под виртуалкой часть данных выгрузилась в свап. Закрыл её, свободной(именно свободной, а не под кэшем) памяти больше 10Гб. Прошли сутки, памяти много, свап работает. Я понимаю, что там какая-то редко используемая фигня лежит, но всё же, нет какого-нибудь автоматического механизма по возвращению данных в ОЗУ? Может включить что нужно? Или, это, сконпелировать?

Это как правило не нужно. Когда страница памяти понадобится - ее оттуда прочитают, автоматически.

slowpony ★★★ ()

Пропиши в sysctl.conf
vm.overcommit_memory = 1
vm.vfs_cache_pressure = 1000
vm.dirty_ratio = 60
vm.dirty_background_ratio = 1
vm.dirty_writeback_centisecs = 60000
vm.dirty_expire_centisecs = 60000

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

Использовал такое, когда памяти 3Гб было.

Я понимаю, что прочитает, но для этих дел придумали оперативную память. Вот много оперативной памяти, отправляйтесь туда.

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

Как я понял это всё изменение дефолтных настроек работы памяти, но меня дефолтные настройки устраивают, я только swappiness на 10 поменял. Меня интересует есть ли механизм по возвращению данных обратно в озу из свапа?

avgust23 ()

нет какого-нибудь автоматического механизма по возвращению данных в ОЗУ

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

              SwapCached %lu
                     Memory that once was swapped out, is swapped back
                     in but still also is in the swap file.  (If memory
                     pressure is high, these pages don't need to be
                     swapped out again because they are already in the
                     swap file.  This saves I/O.)

https://man7.org/linux/man-pages/man5/proc.5.html

Проверь

cat /proc/meminfo | grep SwapCached
hakavlad ★★★ ()

Должен ли очищаться свап при появлении свободной ОЗУ?

Нет.

hakavlad ★★★ ()

нет какого-нибудь автоматического механизма по возвращению данных в ОЗУ?

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

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

возвращению данных обратно в озу из свапа?

Если нужна очистка пространства подкачки, то опасано выше: делай swapoff/swapon

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

Я ребутнулся час назад, но как-нибудь посмотрю, спасибо.

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

Я ничего такого не использую, пока всё устраивает, просто интересно стало.

avgust23 ()

Зачем свап при 16 гигах памяти? Ладно на 6 я понимаю, а что в линуксах стало столько оперативки кушать?

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

Зачем свап при 16 гигах памяти?

16 - не 256. Пара виртуалок + сборка хрома, например. Один браузер может 8 гиг выжрать.

hakavlad ★★★ ()

какая-то редко используемая фигня лежит

Какая-то совсем не используемая. Вопрос: зачем её нужно возвращать в память, чтобы потом снова убирать в своп?

no-such-file ★★★★★ ()
Ответ на: комментарий от peregrine

Не все использую систему для просмотра роликов в ютубе. Обычное дело, когда прожект в inkscape отжирает 32+ гб. Еще gimp с blender могут удивить в сложных сценах. Мой личный чемпион - World Machine под wine. На карте 8192 она умеет выжрать 200+ гб в сцене средней сложности.

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

любое приложение на электроне

А в них уже появился смысл? Ну а браузер больше 10 гигов не откушивал у меня даже на паре сотен вкладок.

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

Обычное дело, когда прожект в inkscape отжирает 32+ гб

Прожект в студию (минимальный который жрёт много памяти). Пойду фиксить потребление памяти инкскейпом (инкскейп если что хорошо течёт, там код на C++ с магией на указателях, но его вообще ни тестами, ни даже статическими анализаторами кода не проверяют).

peregrine ★★★★★ ()

Сколько занято кешем/буферами? Может, система сама разберется чем забить память?

anonymous ()

Не мешай системе работать. Оно само решит, что оживить надо, а что на кладбище оставить.

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

Тут отписвался страдалец, которому пришлось отключать zram, чтобы избавиться от тормозов)

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

Так лаги вполне естественны, если засрать 90% озу вместе с zram. Но вполне все будет работать, просто очень неторопливо. Без zram все сдохнет раза в три быстрее. Не просто тормозить, а сдохнет.

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

LightDiver ★★★★★ ()
Последнее исправление: LightDiver (всего исправлений: 1)

Нет, наоборот в своп должно уходить всё, что только можно. У тебя ОС работает как положено. А у меня наоборот нифига в своп не уходит. То ли федора поломала своп, то ли совремённые ядра поломали своп.

Legioner ★★★★★ ()

Нет, конечно.
В свапе лежат не работающие сейчас приложения. Т.е. обычно он должен быть больше ОЗУ.

Shadow ★★★★★ ()

Есть две секты, одни всегда отключают своп, другие всегда оставляют включённым, сколько бы 100500 гигов оперативной памяти у них не было бы. Больше свопа богу свопа!

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

А если ОЗУ станет больше, чем ПЗУ, куда тогда своп размещать? :P

Harald ★★★★★ ()

Ядро линукса существует для того, чтобы наполнять своп!

Harald ★★★★★ ()

Чем больше заполнен своп, тем длиннее виртуальный пенис!

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

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

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

Попробуй купить больше оперативы или запускать меньше программ

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

а что в линуксах стало столько оперативки кушать?

Сегодня побаловался на гитаре, поиграл со всякими эффектами. Основной роутинг был через джек, но запись и измерение уровня — через пульсу. Открыл top и, честно, — прифигел. Пульса сожрала гигабайт! Причём не оверкоммит какой-нибудь, а реально физической памяти. Джек при этом даже до 30 МБ не добрался. Сейчас никаких аудиопотоков не запущено, в колонках — тишина, но пульса всё равно отъедает 360 МБ. Учись писать программы.

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

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

Потому что компы сейчас быстрые, чё морочиться)))

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

Там экспорт в pdf течёт, авторы знают, но фиксить особо не хотят, потому что надо потроха перетряхать - куча динамических объектов на кой-то фиг создаётся.

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

Ага, вроде нашёл. Моя версия Инкскейп — 1.1.1.

  1. Открываешь Инкскейп
  2. Копируешь весть текст с этой страницы ЛОРа
  3. В Инкскейпе создаёшь блок теста: t, click, drag
  4. Вставляешь пасту
  5. Сохраняешь документ
  6. Передвигаешь текстовый объект
  7. Повторяешь с п. 5, потребление растёт

Может быть как-то со шрифтами связано. У меня дефолтный — Liberation Sans.

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

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

anonymous ()

Должен ли очищаться свап при появлении свободной ОЗУ?

Нет.

В случае повторной ситуации нехватки памяти, выброс дублированных в свопе страниц стаёт дешевле.

aidaho ★★★★★ ()
10 июня 2022 г.

Должен ли очищаться свап при появлении свободной ОЗУ?

Нет, не должен.

/thread

gremlin_the_red ★★★★★ ()

Да там не редко используемая фигня. Запусти htop, обрати внимание на колонку виртуальная память, сложи все значения, виртуальной памяти может быть больше чем физической, осознай, что Linux в принципе не может знать сколько нужно памяти тому или иному процессу, поэтому он всегда вынужден сбрасывать страницы в своп. Он очищается, просто что-то в своп срет постоянно, поэтому видишь одно и то же значение занятого свопа. С 16 гигами ты можешь использовать ZRAM…

$ yay -S zram-generator                            
$ cat /etc/systemd/zram-generator.conf 
[zram0]
compression-algorithm = zstd
zram-fraction = 0.5
max-zram-size = 8192

# именно start, а не enable
$ sudo systemctl start systemd-zram-setup@zram0

# проверка
$ zramctl

# при изменениях просто перезапускаем сервис
$ sudo systemctl restart systemd-zram-setup@zram0

# для отключения
$ sudo systemctl stop systemd-zram-setup@zram0
tz4678_2 ()
Ответ на: комментарий от tz4678_2

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

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

Запусти htop, обрати внимание на колонку виртуальная память, сложи все значения, виртуальной памяти может быть больше чем физической, осознай, что Linux в принципе не может знать сколько нужно памяти тому или иному процессу, поэтому он всегда вынужден сбрасывать страницы в своп

Что за бред я только что прочитал?

gremlin_the_red ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.