вторник, 15 июня 2010 г.

Hyper-V R2 SP1 - Dynamic Memory

Появилась информация о громком технологическом "прорыве" Microsoft - Dynamic Memory. Желающие могут скачать официальную презентацию с сайта TechEd.

Я расскажу о том как это работает и почему маркетинг Microsoft снова вешает лапшу на уши совершенно не стесняясь.

Dynamic Memory = Balloon + Hot-Add. Вот и весь "прорыв". Balloon у VMware существует с незапамятных времен, Memory Hot-Add появилась с выходом vSphere, год назад. Единственное, что добавили в MS - это автоматический Hot-Add.

Итак, по заверениям MS, Dynamic Memory - это НЕ overcommitment. Правда? Очень забавно. Приводится пример, когда две машины используют память попеременно, и сначала им дается дополнительная память через Hot-Add, а потом отбирается баллонным драйвером.
Overcommitment, согласно определения, когда сумма Configured Memory больше физической памяти на сервере. Поэтому Dynamic Memory - НЕ overcommitment только в одном случае, если после всех Hot-Add все еще остается свободная физическая память. Но в таком случае зачем нужен баллонный драйвер? Момент, когда он включается - это нехватка физической памяти, когда нужно отобрать немножко физической памяти у одной машины и отдать другой.
Предположим, для сохранения условия "НЕ overcommitment", что баллонный драйвер будет включаться автоматом, после того как пиковая нагрузка миновала и машина вернулась к обычному потреблению памяти. Однако поскольку Hot-Remove для памяти еще не придумала даже Microsoft, со всей ее армией инженеров и подробным знанием внутренностей Windows, параметр Configured Memory остается увеличенным, хотя SCVMM и будет нам показывать, что выделение памяти уменьшилось. И поскольку "НЕ overcommitment = SUM(Configured Memory) < Physical Memory", включение баллонного драйвера абсолютно бессмысленно.
Вернемся к презентации - показывается, что одной машине надо памяти, и память отбирается у другой машины. Но простите, это же и есть классический Memory Overcommitment через Balloon! Если мы НЕ в состоянии memory overcommitment, то каждой машине хватает физической памяти и ее просто не нужно ни у кого отбирать.

Какой из этого вывод? Очевидный. Microsoft потихоньку догоняет VMware по функционалу, хотя все еще остается в положении догоняющего. А маркетинг MS напускает побольше FUD'а, вводит новые термины, означающие то же, что и раньше, но другое. Не можешь предложить что-то технологическое - запутай, запугай.

10 комментариев:

  1. Во-первых, одной презентации явно недостаточно, для тех кто хочет разобраться, лучше посмотреть видео с разъяснениями - http://www.msteched.com/2010/NorthAmerica/VIR304
    Во-вторых, все же hotadd там не обычный.
    В-третьих, под словом оверкомит можно понимать что угодно, в частности вы считаете, что это "когда сумма Configured Memory больше физической памяти на сервере", в то время как я считаю, что это "сумма USED memory в конкретный момент времени", разница существенная. Имхо, майкрософт говорит о том, что отличие их подхода, что использовать больше памяти чем есть физически они не дают, чтобы избежать дабл свопинга, правильно это или нет, каждый пусть сам решает.
    Вывод ваш стоит сократить до первого предложения, все остальное хм.. неужели вас так запугивает и устрашает мс? :)))

    ОтветитьУдалить
  2. >все же hotadd там не обычный.

    А какой он там?

    >под словом оверкомит можно понимать что угодно, в частности вы считаете, что это "когда сумма Configured Memory больше физической памяти на сервере"

    Так считает VMware. И соотв. во избежание попадания в ситуацию, когда нужен свопинг на уровне ESX, придумала balloon, который заставляет гостевую ОС свопиться самостоятельно. VMware дает возможность администратору дать машинам больше памяти, чем есть на сервере, и оставляет ответственность за управление ресурсами на администраторе - в некоторых ситуациях эхто даст очень большие преимущества при грамотном управлении.
    Если Вы боитесь попасть в ситуацию USED > Physical, то не давайте машинам столько памяти, используйте резервы и лимиты для динамического управления использованием ресурсов.

    MS такой возможности НЕ дает.

    И комментарий относительно перехода на личности. Нет, меня MS не пугает и не страшит. А вот очень многих НЕспециалистов, обращающихся ко мне за консультацией - да. Причем именно что на уровне впаривания супернанотехнологий от страшного психотронного излучения.

    ОтветитьУдалить
  3. Еще раз, если не смотрели видео посмотрите :)

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

    Можно поподробнее про used > physical? Да я то хочу избежать. Вашего солюшена я не понял вобще и что мс не дает конкретно.

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

    А вывод ваш в посте равен как раз маркетинговым лозунгом, при том что презентация и запись ни содержит маркетинга и очень конкретная :)

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

    ОтветитьУдалить
  4. P.S. Ваш блог я читаю с удовольствием, не хотелось чтобы он стал таким как у Эрика Гея :)

    Дмитрий

    ОтветитьУдалить
  5. В терминологии VMware overcommit начинается при configured > physical. Вот, собственно и все.
    Посе чего MS в презентациях напирает, что Overcommit - это очень плохо, и даже VMware это признает. Только VMware как раз отлично работает в том состоянии, которое у MS назвали oversubscribe.

    Видео я смотрел, спасибо.

    ОтветитьУдалить
  6. По презе - мс говорит, что оверкомит это оверлоадад термин, и это так, учитывая что как минимум мы с вами его по разному понимаем.
    мс говорит что оверсабскайб это нормально для виртуализации и приводятся примеры с памятью, процессарами и т.п. это прямое следствие виртуализации (другое дело, что только в сп1 мс научилась делать это для такого ресурса как пямать). В то же время мс говорит, что оверкомит это другое - условно used>physical, что неизбежно ведет в деградации производительности.
    Если объединить эти два термина, то действительно можно столько FUDа нагенерить, что на всех хватит :)
    Так что никаких запугиваний я там не увидел.
    Подходы в решении управления паматья у обоих вендоров разные и причины понятны, вопрос в том, в чем мс не прав? Выбор пути в презентации обоснован, если есть мысли о том, почему он не правильный или не самый эффективный, то это хотелось бы услышать :)
    Тема guest direct page sharing - очень интересна например, и кто ее первым реализует, так чтобы это было в том числе секьюрно, тот и будет махать флагом, пока не сделают остальные %)))

    Дмитрий

    ОтветитьУдалить
  7. Здравствуйте, друзья.Вопрос такого рода- поставил Hyper-V R2 SP1 о 16 гигах РАМ, завертел на нем SQL 2008 с базой для одинэс восьмерки.
    поставил динамическую память - 2 на старт машины, и до 10 гиг максимум.
    происходит следующее - в течение периода времени работы виртуалки она кушает память, постепенно набирая аппетит, но не отдает память даже тогда, когда нет нагрузки -например вечером, ночью, когда все честные люди спят %)
    в итоге она набирает максимум памяти и начинает висеть.А если ее хитро перед началом дня выключить- включить, то она скромная становится, но ненадолго.Аппетит растет по мере работы. наблюдал это на одном сервере, принял решение перенести виртуалку на другой. проблема осталась - память почему-то не освобождается.
    Есть ли мнения?

    ОтветитьУдалить
  8. Она и не будет отдавать, ибо умеет только динамически добавлять.

    ОтветитьУдалить
  9. Не, будет отдавать.
    просто я не рассчитал к-во памяти.
    Все нормально забирает - отдает.Надо только буфер было правильно настроить.

    ОтветитьУдалить
  10. Она отдаст память если второй виртуалке потребуется память. Так же обратите внимание на приоритеты вирт. машин.

    ОтветитьУдалить