LINUX.ORG.RU
ФорумAdmin

Забивается половина swap. При этом дофига памяти свободно, с чем связано? Как лечить?

 ,


0

2

Centos 8, 16 Gb RAM. 1 Gb SWAP.

Своп забит на 50% в среднем, плюс, минус. Оперативной памяти используется 2 Гб.

Не понято, с чем связано такое поведение. У системы 14 Гб свободно оперативы при этом она засирает половину небольшого свопа.

Есть, кто подскажет мысль?

smemstat - показывает кучу разных процессов засвапливается. Сложно выделить что-то одно.

Пробовал играть с параметром swappingness. Толку ноль, своп всеравно забивается.

Заранее спасибо.

Своп забит на 50% в среднем, плюс, минус

Увеличь свап, если это так тебя беспокоит (меня бы не беспокоило).

У системы 14 Гб свободно оперативы при этом она засирает половину небольшого свопа

Значит так нужно. Поверь мне, ядро лучше тебя знает, что и зачем оно делает.

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

У тебя своп меньше погрешности измерения памяти, примерно 5%. И занято только половина от этой погрешности. И это не шутка и не опечатка. Тебе нельзя помочь.

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

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

gremlin_the_red ★★★ ()

Отрыл похожую тему:

Юзается SWAP при свободной памяти.

Там все это уже обсасывалось и закончилось ничем. :)

Ну т.е. больше чем там понапЕсали, я для себя не узнал. Решения там тоже нет.

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

По моим наблюдениям swap занят на 0% до тех пор, пока не запускается приложение, которое потребляет относительно много памяти (минимум 40-50% от оперативы). После этого в свопе лежат 300-500 МБ (у меня сам своп на 8 ГБ) или более (в зависимости от того, насколько забита была память) и продолжают лежать после закрытия приложений. То есть похоже на то, что своп начинает использоваться, когда хотя бы один раз память была занята наполовину, после чего объекты продолжают лежать в свопе. Впрочем, никогда не думал, что это большая проблема.

P.S. Можно отмонтировать своп и снова подключить, чтобы его полностью очистить.

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

удали свап просто, ибо в твоем случае он тупо бесполезен

Безграмотная чушь. Свап — это не дополнительная память. Это не резерв на случай нехватки памяти. Это необходимая вещь для нормального функционирования подсистемы памяти.

gremlin_the_red ★★★ ()

Это нормальное поведение системы. Лечить нечего, всё в порядке. К слову, RH рекомендует при 16 гигах оперативной памяти делать 4 гига свопа минимум.

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

Потому что Linux никогда не освобождает своп.

И это нормально и не мешает ОС! Даже забитый на 100% своп при наличии свободной оперативки не оказывает никакого негативного влияния.

Vsevolod-linuxoid ★★★★★ ()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 5)
Ответ на: комментарий от reprimand

Много раз приведены. Можешь погуглить, поискать по ЛОРу, спросить кого-то умнее джуниора. Можешь почитать разработчиков ядра, которые все сходятся, что держать в памяти неиспользуемые анонимные страницы — плохая идея.

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

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

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

Вынужден повторяться.

Безграмотная чушь

Давай ты сначала сложение на пальцах освоишь, а то я даже не знаю, как с тобой о более сложной математике говорить. Изучи, что такое виртуальная память, как она работает, при чём здесь свап, и почему его отключение приводит только к проблемам. И какое отношение к этому имеет говнокодный софт, я вообще не понял. «— Вы почему на красный проехали — А у меня дома крокодил зелёный».

gremlin_the_red ★★★ ()

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

anonymous ()

Можешь настроить zswap, чтобы подкачка не писалась на диск, а висела в оперативе в сжатом виде.

Можешь поставить smem (https://www.selenic.com/smem/ или из реп) и посмотреть, кто сколько подкачки использует:

sudo smem -tkns swap

Не вижу проблемы в 500МБ в подкачке, если так постоянно держится и не двигается.

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

В чём твоя проблема-то? Своп нужен для того, чтобы его использовать. Система выгружает в своп те данные, которые считает ненужными, хоть у тебя 14 ГБ свободно, хоть 14 ТБ. И потом использует высвободившуюся оперативную память, например, под дисковые кеши, которых тоже много не бывает.

Вообще для твоего размера RedHat рекомендует выделять не менее 4 GB свопа. Я бы советовал 8 GB.

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

Это неправда. Подсистема памяти нормально функционирует с отключенным свопом. Своп иметь полезно, но Linux может работать и без него. Можешь посмотреть на любой из миллиардов телефонов с андроидом, как наглядный пример работы линукса без свопа (с самыми разными объёмами памяти, от 256 MB до 16 GB).

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

ЮСвоп забит на 50% в среднем, плюс, минус. Оперативной памяти используется 2 Гб. Не понято, с чем связано такое поведение.

Самая простая версия в какой-то момент ты исчерпал всё свободное ОЗУ и вытеснил в своп не меньше этих 500МБ и поскольку своп в линуксе ленивый то оно там будет лежать до тех пор пока не понадобится в работе.

Есть, кто подскажет мысль?

Мысль у меня та, что ничего с этим делать не нужно, потому как сам факт длительного нахождения в свопе является свидетельством того, что всё попавшее в своп ничего не делает и просто занимает ОЗУ.
Ну может оно и будет когда-то нужно, но вот сколько времени прошло, а оно всё не понадобилось.

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

Например у вас есть /run/log/journal который является tmpfs. Лежащие там «файлы» могут без всяког овлияния на системы быть выкинуты в свап а на их место можно например положить страницу порнхаба которая открыта у вас в фоне.

Nastishka ★★★★★ ()

Своп забит на 50% в среднем, плюс, минус. Оперативной памяти используется 2 Гб.

Ну дык все правильно. Просто ты очевидно думаешь, что своп используется только при нехватке памяти, что ну оооочень далеко не так. Ядро не любит держать в озу неиспользуемые страницы и нещадно сливает их в своп покуда не понадобится. Отсюда реально доступное озу под действительно важные задачи СЕЙЧАС, а фон и в свопе полежит.

1 Gb SWAP.

Бгг…увеличить раза в 4-6 надо бы.

И тебе наверное пора бы освоить zswap

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

При 16 гб рамы 1гб свапа просто не имеют смысла

Ну-да, ну да…понавтыкают плашек под завязку и думают что своп не нужен. А потом ходят по тырнетам и деструктивные идеи распихивают в все извилины неокрепших умов.

гуглить на англ. языке и читать что пишут люди

Там такой же бред как и на лоре, ничем не лучше. Разве что атмосферка малость дружелюбнее и терпеливее к нубам.

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

Безграмотная чушь. Свап — это не дополнительная память. Это не резерв на случай нехватки памяти. Это необходимая вещь для нормального функционирования подсистемы памяти.

+100500 и бантик в подарок!

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

Аргументы?

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

На самом деле проще придумать пример когда своп действительно не нужен, чем вспоминать все случаи когда его наличие важно.

Oberstserj ★★ ()