LINUX.ORG.RU
ФорумAdmin

quemu - kvm как оптимизировать использованием памяти и buff cache?

 


0

2

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

free 14 gb buff/cache 42G avaiable 53 swap 9gb

Почему то используется свап. стоит vm.swappiness=1

пробовал sudo sysctl vm.swappiness=0 sudo swapoff –all

но использование свапа не уменьшается Как вообще улучшить использование памяти на виртуальных машинах?

Может ли cache mode на дисках - writeback или iothreads увеличивать использование buff/cache и свопа?

Как вообще уменьшить использование buff/cache?

Если включить все виртуалки то получатся: total 125G used 62g free 12 gb shared 1.3g buff/cache 50G avaiable 59 swap 3.11

Как можно сократить использование buff/cache 50G? Не нарушая работу кэша

без /bin/sync && /bin/echo 3 > /proc/sys/vm/drop_caches



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

swapoff –all

либо swapoff --all либо swapoff -a

но использование свапа не уменьшается

А это уже сказки. После swapoff -a свапа вообще не будет.

Как можно сократить использование buff/cache 50G? Не нарушая работу кэша

Не нужно его сокращать.

firkax ★★★★★
()

Может ли cache mode на дисках - writeback или iothreads увеличивать использование buff/cache и свопа?

Может. Поэтому должно быть cache mode: none. Виртуалки сами будут кешировать что им нужно, в памяти которая им отдана.

Как можно сократить использование buff/cache 50G? Не нарушая работу кэша

buff/cache на хосте увеличиваeтся если в фоне идет копирование/чтение из больших файлов (дисков виртуалок если идет регулярный бэкап?)

Поэтому, все такие операции копирования/бэкапов нужно проводить с ограничиванием доступной свободной памяти для соответных процессов (лучше всего через cgroups, задать память для такого процесса например не более чем 2-4G - это вполне достаточно).


Также прогуглить и обратить внимание на sysctl параметры (у них обычно величины по умолчанию НЕ удачны, для систем с большой памяти типа 128G):

vm.vfs_cache_pressure (defaults 100, в данной ситуации хорошо бы увеличить, напр. 200)

dirty_ratio, dirty_background_ratio: https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/

vm.dirty_ratio is the absolute maximum amount of system memory that can be filled with dirty pages before everything must get committed to disk. When the system gets to this point all new I/O blocks until dirty pages have been written to disk. This is often the source of long I/O pauses, but is a safeguard against too much data being cached unsafely in memory. It is a percentage Defaults to 20

vm.dirty_ratio = 4

vm.dirty_background_ratio is the percentage of system memory that can be filled with “dirty” pages — memory pages that still need to be written to disk — before the pdflush/flush/kdmflush background processes kick in to write it to disk. Defaults to 10

vm.dirty_background_ratio = 1

if you need setting even lower than 1% (server with very large RAM), use the absolute value based sister parameters: vm.dirty_background_bytes and vm.dirty_bytes which can be tuned exactly

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

Во-первых, не надо избавляться от свопа, Зависание в играх Arch Linux (комментарий). Пусть будет хотя бы 1Gb.

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

Своп является абсолютно бесполезной сущностью. Все рассуждения того персонажа(скорее всего нанятого по квотам) водятся к тому, что «больше памяти - лучше». Очевидно, что больше памяти лучше, но причём тут своп?

Вот у нас есть Ngb памяти, мы добавляем тот самый 1 гиг. Получается что? Тоже самое, что если бы мы добавили ещё один гигабайт памяти.

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

Потому как тогда Можно любую машину с N-1gb памятью называть говном. И обязывать всех докупать ещё 1 гиг. Что, очевидно, является чушью.

При наличии swap: мы можем положить в swap анонимную память, которая редко используется и нужна только в небольшой части жизненного цикла процесса. Это позволяет использовать данную память для улучшения коэффициента попаданий в кэш и других оптимизаций.

Вот одно из таких откровений персонажа(судя по всему нанятого по квотам, учитывая его уровень рассуждений).

Банальная формула «больше памяти лучше» каким-то образом преобразуется в фантазии на тему свопа.

Да, теоретически своп нам маня-позволит сгрузить на диск то, что ненужно, но.

  1. Это никогда нормально не работало. По-сути если бы был своп режим в котором диск использовался бы ТОЛЬКО тогда, когда ядро встало раком - это было бы полезно. Но, насколько я знаю, такого режима нет.

  2. Помещение страниц в своп делает их мёртвыми. Т.е. любое чтение/запись ставит раком систему. Мы никогда не знаем какая память нужна будет в будущем, а какая нет. Это как раз таки источник фризов.

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

Поэтому 1гб свопа всегда будет много хуже 1гб памяти.

Без swap: анонимные страницы ограничены памятью, т.к. не имеют альтернатив для хранения. Вероятность успешного долгосрочного высвобождения страниц ниже, поскольку оно доступно только для некоторых типов памяти. Риск пробуксовки страниц выше. Случайный читатель может подумать, что так всё равно будет лучше, поскольку не случится нагрузки на ввод/вывод диска, но это не так: мы попросту переносим disk I/O из-за swapping’а на сброс горячего страничного кэша и сегментов кода, которые нам скоро понадобятся.

Эти откровения тоже чушь. Для них имеется. Мы просто заменяем этот мусорный 1гб свопа на 1гб памяти.

Никакого риска «выше» нет. Это терминальная чушь. Как раз таки в своп-мусоре любая страница может быть из-за шизы выгружена и программа встанет раком до её получения.

Далее персонаж совсем заврался, вспоминил пейджкеш. Ты же рассказывал выше, что альтернатив нет? Оказывается есть - место занимаемое в памяти страницами кэша.

Кстати, здесь мы в очередной раз можем увидит ещё одно свидетельство того, что его наняли по квотам. Это какая-то шиза про страничный кэш, который сбрасывается через io. Сбрасываются через io только грязные страницы. Которых практически нет, особенно с настройками по умолчанию. «чистые» страницы можно просто выкидывать.

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

И самая жопа наступает тогда, когда в памяти остаются только(условно) анонимные страницы. Уже ничего не спасает. И вот здесь бы мог помочь своп, как раз таки за счёт io. Всё равно система стоит раком.

При наличии swap: устойчивость к временным всплескам выше, однако в случае резкой нехватки памяти время между пробуксовкой и работой OOM killer может вырасти. Нам лучше видны причины нагрузки на память и мы можем более рационально повлиять на них, можем осуществить контролируемое вмешательство.

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

Наличие места для высвобождение позволит лучше пережить пробуксовку. В том числе ускорить её. Если пробуксовка привела к oom, время её было увеличено - толку нам? oomk уже высвободит куда больше памяти, чем нам нужно/мы успеем сбросить. Это произойдёт быстрее. Это всегда лучше.

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

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

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

  1. N+1 памяти лучше N памяти - ваш КО.

  2. своп нужен - без него не работает. Полнейшая херня. Это тоже самое, что утверждать N-1 памяти не работает.

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

последствия от свопа:

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

преимущества свопа:

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

  • теоретически позволяет При N памяти и M свопа высводить какие-то крохи при крохи меньшие M. Опять же за счёт адских тормозов.

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

Чем менее агрессивно мы вытесняем страницы - тем шансов фризов меньше, но и страниц выгружается меньше.

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

Так же, если бы вы хотели обезопасить себя. Своп может в какай-то степени помочь, но 1) надёжность ~= 0, 2) вы замучаетесь это дырявое дерьмо настраивать. И даже если настроите - стрельнуть оно может когда угодно.

Т.е. это может быть инструментом для тех, кто понимает что делает. И то как инструмент последней надежды, либо когда нет доступа к чему-то иному.

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

Вот у нас есть Ngb памяти, мы добавляем тот самый 1 гиг. Получается что? Тоже самое, что если бы мы добавили ещё один гигабайт памяти.

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

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

Нет, не то же самое.

Да, и об этом я так же писал. Это не тоже самое - это в разы хуже. Память быстрая, а своп медленный. Память предсказуемая, а своп нет.

Ты тоже видишь своп как дополнительную медленную память, а это не так.

Для начала замени лозунги на что-то более убедительное. Не получается? Зачем пытаешься спорить? Или надеешься на админ-ресурс?

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

Для начала замени лозунги на что-то более убедительное.

Лозунгами оперируешь практически в каждом комментарии ты. Я лишь читаю, что написано. «Тоже самое, что если бы мы добавили ещё один гигабайт памяти» кто написал? Пушкин? :)

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

Кэш - это ЦЕННЫЙ ВИД ПАМЯТИ, кэш - это прекрасно. Берегите кэш. Используйте больше кэша.

Таки оно так и есть. Сбросить его можно, но зачем?

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

Разверните свою мысль пжлст.

Тут то как раз всё понятно, накопитель может уйти в нагрузку или в TRIM и откликнуться не сразу (а если совсем дешёвый безбуферный SSD с условной отбраковкой памяти, то и на >10 секунд)

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

Лозунгами оперируешь практически в каждом комментарии ты.

Да ты чё. А почему-то когда тебе задали простой вопрос «чем отличается 1гб свопа от 1гб памяти» - ты почему-то не отвечаешь? Почему же?

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

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

а если совсем дешёвый безбуферный SSD с условной отбраковкой памяти

Ну вы ещё предложите установить старый добрый ide на пару гигов и удивляться «почему оно медленно» :)

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

А почему-то когда тебе задали простой вопрос «чем отличается 1гб свопа от 1гб памяти» - ты почему-то не отвечаешь?

Не задали, не ври.

И да, я могу приравнивать 1 вид памяти к другой.

Можешь, но это неверно.

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

Спор по поводу логических тезисов просто ради спора с теоретиком на техническом форуме мне не интересен.

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

Да, уровень аргументации так же поражает воображение. Возможно ты хотя бы попытаешься - у него аргументов нет. У тебя тоже?

Разверните свою мысль пжлст.

Что тебе нужно разворачивать? Это базовое свойство. Одноуровневая память всегда предсказуема. Добавление новых уровней - делает её непредсказуемой.

Судя по всему я случайно забрёл на какой-то далёкий от программирования раздел.

В результате, при отсутствии свопа обращение в любую страницу(анонимную) однородно, если это не какая-нибудь нума. Но даже с нума там всё +/- предсказуемо.

А вот когда мы добавляем своп - любая страница может быть выгружена, а значит про обращении к ней система может встать раком. По крайней мере для нашего процесса. Но учитывая линукс(тут скорее дело не в линуксе - +/- везде на универсальных ОС это так) - там может встать раком сразу вся система.

А учитывая дырявость и мусорность алгоритмов/их настроек по вытеснению - ситуации такие будут частыми, либо своп в принципе не будет работать как «дополнительная память». Хотя, насколько я знаю, никак настроить нормально это нельзя(да и никто не делает). Вон выше кидалась инновация, которая пытается это чинить.

В любом случае это ничего не меняет.

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

Ну вы ещё предложите установить старый добрый ide на пару гигов и удивляться «почему оно медленно» :)

Нет, зачем же. Но, например, сюда вот AMD E1-2100 ставить дорогой SSD совершенно бессмысленно, хватит и безбуферного на 256Gb за условную «тыщу» рублей.

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

Все же хотелось бы, чтобы такая интересная тема, как эффективная работа памяти, не превратилась в ‘срач’.

Я бы предложил всем подостыть, ) и дождаться выхода ядра 6.1, которое обещают уже в декабре 2022. Думаю, там уже не будет фризов, о которых упоминал right_security.

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

Не задали, не ври.

Задали - ты отрицал. Тебе попросили пруфы. Ты не смог их предоставить. Пруфы были бы предоставлены при ответе на данный вопрос.

Можешь, но это неверно.

Могу и это верно.

Спор по поводу логических тезисов просто ради спора с теоретиком на техническом форуме мне не интересен.

Т.е. аргументации у тебя нет? Так и запишем. Ты сейчас опять сольёшься и пойдёшь мои комменты тереть.

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

«Вам всё можно» (с)

Да, это базовые правила. Доказать отсутствие разницы невозможно. Поэтому её никто не обязан доказывать. На то она и «разница», что она должна существовать.

Вот ты отрицаешь приравнивание. Значит ты должен объяснить почему, но ты не можешь. Почему?

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

Поэтому ваш путь - отрицать и заниматься срачем.

Точно можно.

Ну да. В целом я понял ваш уровень. Можете мне не отвечать, если не можете чего-то вразумительного ответить.

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

Все же хотелось бы, чтобы такая интересная тема, как эффективная работа памяти, не превратилась в ‘срач’.

Дак кто его начинает? Я чётко объяснил что и почему. Приходят всякие персонажа с фанатизмом. Ответить ничего не могут. Начинают отрицать и сводить тему в срач. Схема там простая - провокация меня тупняком, потом бан и затирание своего позора. Отработана тысячи раз.

Думаю, там уже не будет фризов, о которых упоминал right_security.

Нельзя починить фризы. Их можно минимизировать. В любом случае толку с этого? Это всё работает на системах с малых количеством памяти. Когда памяти хватает - этот мусор ненужен. Он не имеет смысла.

В чём он имеет смысл я объяснил выше. Смысл там крайне сомнительный. О том почему - написано тоже выше.

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

Задали - ты отрицал. Тебе попросили пруфы. Ты не смог их предоставить. Пруфы были бы предоставлены при ответе на данный вопрос.

https://memepedia.ru/wp-content/uploads/2021/02/ded-pej-tabletki-mem.jpg Чтобы не писать того, чего не было.

Т.е. аргументации у тебя нет? Так и запишем.

Аргументация есть, но не для тебя, второй раз пишу, это непонятно разве? Можешь записать +1 в тщательно лелеемый и пестуемый список интернет-побед :)

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

Аргументация есть, но не для тебя, второй раз пишу, это непонятно разве? Можешь записать +1 в тщательно лелеемый и пестуемый список интернет-побед :)

Да, да. У тебя всё есть, но ты не покажешь. Типичная история.

И вот ведь удивительно. Я написал лозунг, а далее популярно описал проблемы. Даже ради приличия написал то зачем своп действительно может быть нужен.

А что мы видим от моих Оппонентов? «ну ты не прав», «почему я не скажу», «пей таблетки», «ты просто не понимаешь».

Самое интересное, что он включил режим «не для тебя» даже не понимания, что это не работает. Тебя не просят аргументы «для меня». Тебя просят аргументы вообще. Но что он делает? Он подменяет одно на другое.

Схема такая: Нет ничего -> нет для тебя. Когда нет для тебя - можно слиться на «ты лох и не понимаешь»(что он и делает, кстати). И тем самым избавиться от необходимости что-то предоставлять.

Но нет. Аргументы не предоставил. Не мне. А вообще. Поэтому речи о мне даже идти не может. Такие дела.

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

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

cat /proc/meminfo
MemTotal:       65592464 kB
MemFree:        33235316 kB
SwapTotal:      62499836 kB
SwapFree:       62252336 kB
Я не знаю когда заюзался своп, видимо было дело когда-то... давнооо работаем (я про сервак)...

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

Да, да. У тебя всё есть, но ты не покажешь. Типичная история.

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

что он включил режим «не для тебя» даже не понимания

он

Переход на 3-е лицо в персональных ответах - это тоже вид токсичной манипуляции.

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

Нет, зачем же. Но, например, сюда вот AMD E1-2100 ставить дорогой SSD совершенно бессмысленно, хватит и безбуферного на 256Gb за условную «тыщу» рублей.

По моей практике не бывает «не нужные данные», если мы их храним значит и подходить к вопросу надо соответственно. Условное УГ ssd на вариант хранения данных не подходит. Но это моё имхо основанное на опыте потери данных разными людьми.
ЗЫ Вы ещё предложите не мониторить смарт :)

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

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

Кучи, какие манёвры. Если у меня куча памяти - зачем мне мусорный своп?

Я не знаю когда заюзался своп, видимо было дело когда-то… давнооо работаем (я про сервак)…

В том и проблема. Что ты не знаешь. Ты сам признал проблему.

MemTotal:       65592464 kB
SwapTotal:      62499836 kB

Сколько мне отрытый чудных даёт лор. Давая я буду верить в то, что ты просто впаривает виртуалки с фейковой памятью. Я могу найти единственное объяснение подобному.

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

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

Вот опять. Он использует ту самую тактику. Он даже пошёл дальше - он обсуждает только меня. Ещё про какую-то токсичность мне говорит.

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

Да и вообще, зачем ты начал спорить со мною?

Переход на 3-е лицо в персональных ответах - это тоже вид токсичной манипуляции.

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

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

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

Спуфинг бы поспорил :)

Условное УГ ssd на вариант хранения данных не подходит.

Когда в старый ничего не умеющий (по объективным причинам) ноутбук вместо отнесения его на помойку, ставят SSD, то, мне кажется, бессмысленно покупать туда хороший SATA SSD за 6-8тр. Экономика начинает бастовать (ибо SATA понемногу отмирает)

Вы ещё предложите не мониторить смарт

Это само собой. Выручало далеко не раз.

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

Давая я буду верить в то, что ты просто впаривает виртуалки с фейковой памятью. Я могу найти единственное объяснение подобному.

Дяденька, это мой личный поддиванный. Но у поколения PI конечно только «единственное объяснение подобному» другого они не приемлют.

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

Спуфинг бы поспорил :)

Возможно :)

Когда в старый ничего не умеющий (по объективным причинам) ноутбук вместо отнесения его на помойку, ставят SSD, то, мне кажется, бессмысленно покупать туда хороший SATA SSD за 6-8тр. Экономика начинает бастовать (ибо SATA понемногу отмирает)

Оспорю, больше одного раза ставил, брат жив :) Ноут 2010-го года с заменой умершего ssd в прошлом (2021) году как пример подойдет? :)

Вы ещё предложите не мониторить смарт

Это само собой. Выручало далеко не раз.

Что значит выручало? Только оно и «выручает» :)

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

Дяденька, это мой личный поддиванный. Но у поколения PI конечно только «единственное объяснение подобному» другого они не приемлют.

Не, ты просто не смог понять намёк. Но раскрывать его я не буду. Выше уже ищут повод.

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

Оспорю, больше одного раза ставил, брат жив :) Ноут 2010-го года с заменой умершего ssd в прошлом (2021) году как пример подойдет? :)

ИМХО в том случае нет. Пруф: AMD E1-2100 (комментарий)

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

По старому правилу. И да, от 60гб мне теплее или холоднее не станет от слова совсем. 8tb hdd + 4tb hdd + 1tb nvme
Как думаете, меня напрягает «оторванный» объём в 60гб?

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