LINUX.ORG.RU
ФорумAdmin

cache vs swap

 


0

3

Не хочу использовать swap, и держать кучу глупостей в кеше. У меня kvm узел, и выходит двойное кеширование, да ещё и swap...

root@kvm1:~# free -m
             total       used       free     shared    buffers     cached
Память:      31888      31263        625          0         40       9694
-/+ буферы/кэш:      21527      10360
Swap:        32491        349      32142

Что ещё можно придумать?

root@kvm1:~# sysctl -p
vm.swappiness = 5
vm.vfs_cache_pressure = 10

Занулить vm.vfs_cache_pressure, идея хорошая?

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

★★★★★

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

zfs - это всё очень хорошо. Но возникает тонкость. ARC в zfs, пользует отдельную область памяти нежели cache системный. Таким образом похоже возникает тройное кеширование...

Виртуальная машина кеширует внутри себя. Хост система кеширует тоже самое у себя. zfs кеширует тоже самое у себя в ARC.

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

По сему - ARC я нафиг убрал. И у меня наконец-то KSM стал показывать свою работу во вменяемом режиме.

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

По сему - ARC я нафиг убрал. И у меня наконец-то KSM стал показывать свою работу во вменяемом режиме.

не лучше ли выставить primarycache=metadata?

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

Виртуальная машина кеширует внутри себя.

Она в своем праве, к хосту это не относится.

Хост система кеширует тоже самое у себя. zfs кеширует тоже самое у себя в ARC.

С чего ты взял что оно (страница/блок данных) будет и в ARC и в системном кеше?

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

Она в своем праве, к хосту это не относится.

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

С чего ты взял что оно (страница/блок данных) будет и в ARC и в системном кеше?

Взял с того, что я разместил на одном узле 15 небольших машин, потом через некоторое время uptime посмотрел, и увидел, что: у меня занято много swap, занята вся ОЗУ, при том из этого половина занята кешем уровня хост ОС. Другая половина занята кешем ARC. - В результате, виртуальные машины мягко говоря «стали тупить», при этом /sys/kernel/mm/ksm/pages_shared - показывал огромные значения. Такое ощущение, до того момента, когда вот-вот проснётся OOM механизм - оставалось совсем не много...

Уменьшил ARC до 256МБ, уменьшил: vm.swappiness до единицы, vm.vfs_cache_pressure - установил в нуль. Перезагрузил узел - стало так: кеша нету, swap чистый, ksm - показывает большие числа. Памяти свободной в три раза больше стало. - Теперь на этот хост к примеру, влезет ещё 15 машин. - Но теперь всё же опять встаёт вопрос производительности. Я считаю, что то, что внутри себя кешируют виртуальные машины - будет более чем достаточно.

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

не лучше ли выставить primarycache=metadata?

Думаю, что да, стоит и это сделать.

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

Уменьшить swappiness — ты виртуалкам память выделил, но она в большинстве своем не используется (или не меняется) и старые страницы памяти ушли в своп, т.к. оказались мене важными для ОС, чем возможность закешировать (утрирую, но примерно так)

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

Уменьшить swappiness — ты виртуалкам память выделил, но она в большинстве своем не используется (или не меняется) и старые страницы памяти ушли в своп, т.к. оказались мене важными для ОС, чем возможность закешировать (утрирую, но примерно так)

Ага. Я примерно также вижу это. Ты в общем то подтвердил мои предположения. Просто тут возникает такой момент, что в общем я не против swap, я против двойного-тройного кеширования. :) Ну и к примеру, у меня виртуалки живут на SSD накопителях, тогда как swap на HЖМД, то есть в этом случае я начинаю терять приемущества SSD накопителей. Да и в моём случае я сотни гигабайт копирую только при бекапе. - Т.е. единожды. Кешировать мне, ну совсем не с руки, что называется это дело...

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

Эм... У меня swap на НЖМД, только для хоста KVM. Виртуалки лежат на SSD, и если внутри них будет swap, то он будет на SSD. Но это на одном узле. На остальных узлах у меня НЖМД. В общем не это суть моего вопроса.

DALDON ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.