Сколько уже мучаюсь, большинство считают, что виртуальная машина - это простой способ сэкономить и сделать из одного сервера несколько.
Запомните те, кто не будет читать дальше, виртуалки в промышленном использовании только для очень, подчеркиваю, ОЧЕНЬ хорошо разбирающихся в тонкостях их использования (гипервизора и каждой из хостящихся ОС) высококлассных специалистов, чьи зарплаты должны измеряться тысячами долларов. Я таким не являюсь, если что, и решение многих проблем не знаю.
Во-первых, самая популярная проблема. Все поголовно включают, или забывают выключить, или вообще просто не знают. На железке гипервизора энергосбережение должно быть выключено. Выключено совсем и переведено в Maximum Perfomance без каких-либо опций типа Max. Perfomance by Vendor и тому подобных Dynamic Perfomance. Сколько я серверов видел, HP, Dell и прочее - работает из рук вон плохо, особенно на мелких запросах. Поскольку до самого гипервизора меня редко допускают, объясняю, как увидеть, что админ гипервизора не ведает, что творит:
Да,
сюда можно не смотреть, из ОС, как правило, этим рулить нельзя, да и если есть опция в BIOS, то включать ее не надо, это неправильный путь.
Дожидаемся, пока гостевая система бездействует и считаем системную статистику (старую, если нужно, забекапьте), в sqlplus / as sysdba
SQL код:
exec dbms_stats.gather_system_stats();
смотрим
SQL код:
select * from aux_stats$;
интересует CPUSPEEDNW, если там что-то ниже 2000 на современном процессоре, то, привет админу большой. Эта метрика - одна из тех, от которой процессор в энергосбережении проснуться не успевает.
Потом можете статистику удалить (или восстановить из бекапа, если бекапили)
SQL код:
exec dbms_stats.delete_system_stats();
Заодно можете сравнить этих попугаев между виртуалками, если админ виртуалок некомпетентен, то сюрпризы вам гарантированы. Для большей уверенности, что проблема не в том, что гипервизор помирает от набивания в него больше, чем он может потянуть, можете погонять тесты 7z:
https://olegon.ru/showthread.php?t=38031
Второе, если уж компетенции админа ниже плинтуса, то он включает нищебродство памятью в виде ballooning. Не буду настаивать, что я точно понимаю, как эта штука работает, но понимаю я это, как пузырь в памяти, который вытесняет то, что считает некритичным, а на самом деле отдавая эту память в пользу гипервизора. Эффекты малодиагностируемые и очень интересные с точки зрения исследования, но на продуктиве недопустимые, вплоть до полного паралича базы. Ловить можно командами:
Код:
dmesg | grep -i balloon
lsmod | grep -i balloon
В целом же из-за разницы технологий чаще приходится полагаться на честность админа гипервизора.
Третье и до сих пор нерешенное мной в силу отсутствия доступа к гипервизора и возможности взять админа за грудки - потеря IOPS. Выявляется путем калибровки:
https://olegon.ru/showthread.php?t=23867 и удивления недостаточным цифрам. Админами иногда решается какими-то миграциями виртуалок, иногда - нет.
Четвертое - любовь к дальнейшей экономии, выделение дисков маленькими кусочками (их потом удобнее затыкать во все дыры). Вам предлагается это все склеивать lvm или, не дай, вообще ASM. Предлагаю не вестись и планировать место терабайтами. В противном случае накладные расходы и нюансы растягивания файловой системы рано или поздно могут неприятно озадачить.
Ну и, наконец, перетасовка RAID и диагностика. Если уж связываются с VM в целях нищебродить, то, как правило, хранилка на какой-нибудь Synology, которая вроде и выдает нормальные IOPS, но только в комплекте с нормальными SSD, на которых сэкономили, а диагностировать хранилку инструментов нет вообще. То есть вроде есть полка, но диски тормозные, собраны все в какой-нибудь RAID6, все начинает адски тормозить, понять здоровье полки невозможно, как невозможно даже понять, какая именно виртуалка кладет всех остальных. В итоге все тормозит и икает, даже без возможности что-то куда-то мигрировать, и все беспомощно разводят руками, поскольку это надо все растащить по раздельным железякам, как минимум, причем, со сроками "уже вчера".