Помните пост Transparent Page Sharing?
Напомню суть: от механизма дедупликации памяти, Transparent Memory Page Sharing можно ожидать больше эффективности, если отключить использование Large Pages, больших страниц памяти.
Тут со мной поделились парой графиков по результатам экспериментов:
Рисунок 1. Первый кластер
Рисунок 1-а. График загрузки процессоров кластера 1 |
Обратите внимание на момент, показанный первой стрелкой. Это перед выключением Large Pages, вечер пятницы. До этого порядка 190-200 ГБ ОЗУ было выделено (Granted) для ВМ, и порядка 190 было потреблено(Consumed) на серверах. Затем часть ВМ, видимо обслуживалась, выключалась, перезагружалась, и ESX(i) стал выделять им меньше памяти. А вот затем (двойная стрелка) аппетиты ВМ вернулись на прежний уровень, а вот выделение памяти опустилось с примерно 190 ГБ до примерно 143 ГБ.
Чуть ли не 50 ГБ, 25%, экономии для одного кластера.
Рисунок 2. Второй кластер.
Здесь объем занятой памяти снизился с примерно 230 ГБ до примерно 160 ГБ.
Экономия 70 ГБ, порядка 30%.
Рисунок 2-а. Нагрузка на процессоры кластера 2 |
Рисунок 3. Третий кластер.
Еще порядка трети экономии.
Рисунок 3-а. Нагрузка на процессоры кластера 3. |
Я не знаю точных размеров инфраструктуры, но это больше сотни ВМ. Из примерно 500 ГБ памяти мы освободили порядка 150 ГБ. Сто пятьдесят гигабайт оперативки. На халяву :-)
P.S. У нас же тут не маркетинговые сказки, так? Поэтому стоит обсудить вторую сторону медали. Потенциальных проблем по факту таких манипуляция я вижу две:
1) Снижение производительности из за неиспользования больших страниц.
К сожалению, мне не удалось быстро нагуглить какие-либо внятные тесты по этому поводу, поэтому вопрос, по большому счету, открыт. К примеру, если выигрыш от их использования наступает только при 10 ГБ на гостя, то далеко не для всех ВМ разница вообще будет.
Буду рад, если кто подскажет ссылку или поделится опытом.
2) Самый, наверное, веский аргумент тех, кому по долгу службы требуется указывать на недостатки продуктов-конкурентов – ненадежность сэкономленного. Есть вероятность, что ВНЕЗАПНО!!111 значительная доля одинаковой памяти поменяется у многих ВМ, и Consumed memory резко скакнет. И имеющейся физически памяти на всех не хватит.
Исключая ситуацию старта инфраструктуры после полного выключения, мне такие события видятся маловероятными. Впрочем, если все или подавляюще большая часть ВМ у вас производственные – тогда я бы все же опасался такой ситуации. Просто из соображения, что если маловероятное событие произойдет – очень уж оно неприятно отразится на инфраструктуре, а это плохо отразится на нас.
А вот если на этой вСфере работают и менее критичные ВМ, и если такая ситуация наступит, то заранее розданные shares позволят производственным ВМ пережить такой всплеск «недедуплицируемости» памяти с минимальным падением комфорта, ну а через какое-то время все устаканится и неважные ВМ вернуться из своих свопов.
Ну а стоят ли эти минусы экономии трети* памяти вашей вСферы – решать вам.
*Здесь «треть» означает «больше или меньше 30%»**.
**Данные приведены по результатам многочисленных тестирований в количестве одной штуки***.
***Автор не несет ответственности за негативные результаты, полученные при использовании приведенной здесь информации.
За позитивные результаты – несет, пишите спасибо в камментах к посту.
За позитивные результаты – несет, пишите спасибо в камментах к посту.
;-)
big thx Сергею Щадных за информацию.
big thx Сергею Щадных за информацию.
Михаил, я в своей статье отмечал главную фишку так называемой "экономии" при отключении large pages, но хотел бы повториться для тех кто не читал статью. Эта память сэкономилась бы в любом случае при достижении 94% consumed памяти. Другой вопрос, что многие сисадмины даже не догадываются об этом и планируют свои ресурсы исходя из того, что видят на графиках до того как TPS начал работать. Ну и само собой разумеется, что мало кто из админов допустит чтобы на хосте осталось так мало памяти. Следовательно потенциал ESX в memory overcommitment не будет раскрыт. И даже если сисадмин знает про TPS и Large Pages, ему все равно будет сложно угадать сколько там памяти высвободится когда TPS включатся. Так что это больше вопрос четкого понимания как используются твои ресурсы, нежели экономии.
ОтветитьУдалитьБыло бы здорово если Сергей еще приложил графики CPU usage за этот же период.
У меня пока LP отключены только на одном хосте из 10. В ближайшее время проделаю то же самое на оставшихся 9 и выложу результаты.
По пункту 2 не согласен - что же нам теперь и от тонких дисков отказываться? :)
лично я считаю что да, тонкие диски для производственных ВМ лучше не использовать.
ОтветитьУдалитьИз моего опыта использования тонких дисков:
ОтветитьУдалить1. контроллер домена w2k3. один диск 20ГБ, свободно около 11ГБ. За полтора года эксплуатации(регулярная установка патчей + установлен большой размер журналов) рост размера vmdk с 7ГБ до 13ГБ;
2. exchange 2007 системый диск + отдельный под почтовую базу и логи. первый 40ГБ(св. 24ГБ), второй 200ГБ(св 120ГБ)
За полтора года - системый диск с 11ГБ до 20ГБ, диск с данными - с 40 ГБ до 200ГБ.
Забыл про имхо:
ОтветитьУдалитьсмысл использовать thin диски в продакшн, есть только, если раз в год вспоминать песенку real2real.
песенко
ОтветитьУдалитьhttp://www.youtube.com/watch?v=Dyx4v1QFzhQ
Аааааааааа!
ОтветитьУдалитьДенис, спасибо за такой отжиг, хорошее настроение на все выходные обеспечено :-)))))))))))
http://www.kingston.com/redtech/articles/00004/00004.asp - поведение при BootStorm
ОтветитьУдалитьhttp://www.kingston.com/redtech/articles/00005/00005.asp - продолжение.
http://www.vmware.com/files/pdf/large_pg_performance.pdf - улучшение производительности при использовании LargePages не превышает 10% (документ для ESX3.5, ВМ - только RHEL4 и W2003x64)
Сделал подборку статей на тему memory:
ОтветитьУдалитьhttp://communities.vmware.com/people/Deshifrator/blog/2011/06/26/memory-%D0%BF%D0%BE%D0%B4%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D0%B2-%D0%B8-%D1%81%D1%82%D0%B0%D1%82%D0%B5%D0%B9
Там много статей на тему LP
Я вот что еще подумал о маловероятной, но тем не менее опасной ситуации, когда вдруг многим ВМ понадобится много памяти одновременно, и многие машину уйдут в своп. я не знаю статитстику, но мне кажется, что во многих SMB компаниях все ВМ лежат на одном сторадже и возможно даже в одной дисковой группе. То есть существует риск что резко возросшее количество IO ударит по всем VM. У нас к сожалению все так и сделано пока.. я, увы, полгода назад, когда всю новую инфраструктуру поднимали VSphere всего как пару месяцев увидел в первый раз, не говоря уже про SAN, поэтому этот момент упустил.
ОтветитьУдалитьПоправте, если я ошибаюсь. Насколько я понял для отключения необходимо:
ОтветитьУдалитьна хосте
Mem.AllocGuestLargePage = 0
а на vm-ах
monitor_control.disable_mmu_largepages = TRUE
или достаточно только параметра для хоста?
Достаточно только для хоста, и потом надо VM перегнать на другой хост и вернуть обратно.
ОтветитьУдалитьНаконец то добрались руки сделать то же самое на своей сфере - 50% экономии памяти.
ОтветитьУдалитьhttp://vmnomad.blogspot.com/2011/08/shared-memory-effectiveness-of.html
спасибо, интересно.
ОтветитьУдалитьКак узнать, в каком случае имеет смысл отключить использование большиз страниц на хосте ESX 4.0 ?
ОтветитьУдалитьУзнать очень просто - если вам стало нехватать ОЗУ, то стоит попробовать отключить большие страницы.
ОтветитьУдалитьПопробовал. Есть эффект! Особенно на перегруженном ВМ-ками тестовом хост-сервере.
ОтветитьУдалитьа можете количественные оценки дать? мне интересно для статистики.
ОтветитьУдалитьМихаил, а как посчитать требуемую здесь статистику? На боевых хост-серверах с выходных пар-р Mem.AllocGuestLargePage вернул в 1 (у меня vSphere 4.0 U1). На тестовых оставил 0.
ОтветитьУдалитьв идеале - смотрится статистика одного и того же сервера с одними и теми же ВМ под одной и той же нагрузкой, со включенными и с выключенными Large Pages.
ОтветитьУдалитьчто смотреть:
для хоста вкладка performance, там real time memory, stacked graf per VM -> shared.
лучше дать не меньше часа после изменения статуса Large Pages и перевключения или миграции ВМ (которое требуется чтобы это изменение стало оказывать эффект).