LINUX.ORG.RU

Нужен ли swap в виртуальной машине? И как это повлияет на производительность дисковой подсистем?

 , , , ,


0

2

Привет. На одном сервере у меня стоит виртуализатор Проксмокс. НА нем крутится несколько ОС, у каждой свои задачи. Шлюз, Файл сервер, и т.п. Стоит РЭЙД10 из 4 САС по 1 тб.

Вот и вопрос, нужен ли свап, в каждой из этих ОС? Как влияет это на производительность дискового массива?


Если ОС при работе не задействуют swap, то никак не влияет. Я бы не рисковал и не отключал swap. Потери производительности в дисковой системе незначительно по сравнению с потерей работоспособности сервера.

vxzvxz ★★★
()

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

invokercd ★★★★
()

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

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

В желании не ловить тормоза на сервере?

Скорее, в желании внезапно их выхватить. Или встретить OOM-киллера в самый неудобный момент. И ещё в куче возможных последствий от «память дешёвая, можно не думать».

Ximen ★★★★
()

На шлюзе наверное можно и не делать, а вот на файловом сервере я бы засомневался бы.

Опять же неясен тип виртуализации, если kvm, то swap наверное имеет смысл делать на raw диске, а не на qcow2. IMXO

А если openvz - то не подскажу.

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

Гораздо лучше, когда оом-киллер приходит при полностью загаженном свопе.

Такого мне ещё ни разу не удавалось дождаться.

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

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

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

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

Он прибьёт сразу всю виртуалку. Ничем не лучше ребута. И сиди потом гадай, с чего падают виртуалки... Вкус и цвет, одним словом. Проблемы без свопа я видел, со свопом - не видел. Зачем его убирать решительно не понимаю.

Ximen ★★★★
()

нежелательно, имхо. Нагрузки на виртуализацию сказываются и на io свопа.

darkenshvein ★★★★★
()

нужен ли свап, в каждой из этих ОС?

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

Как влияет это на производительность дискового массива?

Если ВМ выделено достаточно ОЗУ, то никак.

King_Carlo ★★★★★
()

Всем спасибо. Но как выяснилось, скольк овариантов, столько и мнений :) И чем дальше «голосовать», тем дальше себя показывает теория вероятности, «50\50».

Сейчас на всех виртуалках используется своп, равный выделенной оперативке +\-, конечно.

Поэтому однозначного ответа не получил. или получил. Лучше не использовать?

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

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

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

если памяти хватает всем виртуалкам с запасом
то не нужен

smilessss ★★★★★
()

Линукс устроен так, что ему нужен своп. При достаточном количестве ОЗУ - мало и редко, но хочет. Но а че не дать-то?

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

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

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

Да ладно, покажите мне продакшн сервер со свопом.

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

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

Ну коли нет денег на ецц, пусть обычную ставит, но это не повод свопиться.

На сервер? Обычную? Нет, спасибо.

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

Ну кстати ецц не такая уж прям и дорогущая. Зачем тогда вообще сервер если на память зажимать денежку.

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

Я не видел ни одного сервера без свопа.

А у меня есть, и не один.

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

На сервер? Обычную? Нет, спасибо.

Мощный комп, на нём считают методом рунге-кутты камерные модели:

21:19:08 up 124 days, 21:34

память не ECC и таких машин много, аптаймы есть значительно большие. Какие проблемы от отсутствия ЕСС памяти встречал лично ты?

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

Какие проблемы от отсутствия ЕСС памяти встречал лично ты?

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

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

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

Достаточно, но это не из-за отсутствия ЕСС - это просто битая память.

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

Достаточно, но это не из-за отсутствия ЕСС - это просто битая память.

Ага, только вот обычная оперативка вылетает гораздо быстрее, есличо.

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

Ага, только вот обычная оперативка вылетает гораздо быстрее, есличо.

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

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

Куча серверов и декстопов без свопа. Я умру?

Не, не умрёшь. Но страдаешь, и даже не знаешь из-за чего, похоже.

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

Печалька там с i/o тогда.

«На сервере есть swap» и «сервер свопается» это две совершенно разные, практически ортогональные вещи.

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

Так и есть, вот только i/o в любом случае будет расходоваться на swap, даже если памяти еще много, и если это не raid из ssd то это скажется на скорости дисковой подсистеме не в лучшую сторону.

И все таки, мне интересно какие аргументы делать своп на пару гигабайт, если можно просто добавить эти же гигабайты в виде ram (скорость которой в десятки раз больше зеркала из ssd)?

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

i/o в любом случае будет расходоваться на swap

Пренебрежимо мало. Зато память будет освобождаться, что увеличит кеш и положительно скажется на i/o.

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

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

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

У меня совсем наоборот, системы без свопа намного быстрее чем со свопом, конкретно проверено на debian x86_64 (чаще всего бд+nginx+puma), а кстати при наличии свопа и заполнении >80% ram система со свопом начинает выдавать жуткие фризи из-за расколбашивания свопа (это на hdd, не ssd).

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

Тогда всем встречный вопрос. Как проверить быстродействие виртуалки, со свопом и без? Как я полагаю, нужно забить всю память, она полезет в своп. После этого каким то методом проверить. Но поидее, и так ясно, что если с диска 2 потока чтения\записи, скорость падает. Как вариант, для свопа добавить один\несколько жд, небольших по объему, но чисто под своп?

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

10 лет назад меня тоже убеждали, что swap на сервере с 1гигом оперативы не нужен, но жизнь показала обратное. Swap на серверах нужен, только не надо его делать объемом с оперативку, достаточно под него выделить пару гигов. И да я уже писал, что swap для ОС, которая стоит на физическом сервере надо держать на отдельном диске и уж никак не на зеркальном массиве.

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

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

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

Своп - это костыль на случай недостатка оперативной памяти.

Если это костыль то получается что дефолтное значение vm.swappiness должно быть равно нулю. А оно почему то 60

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

Обычно дают столько сколько нужно для задач + небольшой запас + swap 512mb если это виртуалка.

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