none
Утечка памяти в гостевой ОС RRS feed

  • Вопрос

  • Есть два физических сервера на 2012 R2, кроме службы Hyper-v на них больше ничего.

    На каждом есть по 1 ВМ являющейся терминальным сервером, вместе они - терминальная ферма. 

    Для ВМ  используется динамическая память.

    Так вот периодически один из серверов (может один, а может второй) отъедает память, например через диспетчер задач вижу, что реально используется 5 ГБ, а ОС забирает себе 20 ГБ. Пока решается перезагрузкой сервера, но хотелось бы понять почему так происходит. 

    На гостях 2008 R2.

    11 февраля 2014 г. 5:29

Ответы

  • Да вот как мне казалось принцип работы я понимаю. 

    Видимо ключевое слово КАЗАЛОСЬ, то есть в гостевой ОС я всегда буду видеть пиковое значение выделенной памяти, правильно?

    Да.

    "A common “mistake” many people make is to assume that the assigned memory is also what the Guest OS in the VM sees.  This is NOT the case.  Assuming the VM is not already consuming the Maximum memory per the VM Settings, Hyper-V will “tell” the VM it has more memory available that is actually assigned. "

    Hyper-V 2012 Dynamic Memory: What does the VM think it has versus what it really has


    Have a nice day !!!

    11 февраля 2014 г. 9:52
  • Как так?

    Я насколько понимаю, сколько оперативы он смог отобрать столько в диспетчере и будет. Нет?

    Под пиковым имею ввиду значение Maximum RAM. Если пиковое = кол-во выделенной памяти на данный момент, то да..диспетчер будет показывать значение последнего пикового значения выделенной памяти. Если ВМ, к примеру, с startup RAM в 2 Гб, то после запуска будет 2 ГБ. При нагрузке увеличится до 6 Гб, к примеру, а потом в Idle-режиме понизится до 3 Гб, то диспетчер покажет 6 Гб , т.е. последнюю верхнюю точку. А на самом деле будет выделено 3 Гб..остальное заполняется "шариком надувным" + почитайте о Weight/Buffer параметрах

    Отслеживать значения dm можно через консоль , либо лучше чeрeз perfmon


    Roman Levchenko, MCITP, MCTS http://www.rlevchenko.com

    11 февраля 2014 г. 10:13

Все ответы

  • Выключите динамическую память и проверьте еще раз. При использование динамической памяти свободная память забирается у гостевой ОС и возвращается обратно, когда она понадобится. В общем случае проблем быть не должно, но иногда бывает лучше ее выключить.

    11 февраля 2014 г. 6:28
  • Integration services стоят на обоих ВМ ?


    Have a nice day !!!

    11 февраля 2014 г. 6:53
  • Integration установлены на обоих.

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

    Вот еще странное дело, внутри гостевой ОС показывается

    а если посмотреть с хоста


    Может я что-то неправильно понимаю и гостевая ОС просто думает, что у нее до сих пор 17 гб оперативы по максимальному значению которое у нее когда-то было?


    11 февраля 2014 г. 7:24
  • Думаю, стоит проверить есть ли все обновления на ВМ (List of Memory leaks related hotfixes post SP1 for Windows 7 SP1 and Windows Server 2008 R2 SP1).

    KB: A memory leak in the WmiPrvSe.exe process occurs when you use the RDS WMI provider in Windows 7 SP1 or Windows Server 2008 R2 SP1

    В мониторе ресурсов или RAMMap не показывает какой процесс забирает?


    Have a nice day !!!

    11 февраля 2014 г. 7:35
  • Думаю, стоит ознакомиться с принципом работы динамической памяти в Hyper-V

    Roman Levchenko, MCITP, MCTS http://www.rlevchenko.com

    11 февраля 2014 г. 7:48
  • Думаю, стоит ознакомиться с принципом работы динамической памяти в Hyper-V

    Roman Levchenko, MCITP, MCTS http://www.rlevchenko.com

    Роман, вы про это ?
    "Мониторинг потребления памяти виртуальной машиной нужно осуществлять из хостовой системы. Тот же Task Manager в гостевой ОС всегда будет показывать пиковое значение, а не текущее. Увидеть, сколько фактически выделено памяти из гостевой ОС невозможно, для этого нужно использовать консоль Hyper-V Manager."

    из Динамическая память в Hyper-V: принцип работы и настройка


    Have a nice day !!!

    11 февраля 2014 г. 8:01
  • Да вот как мне казалось принцип работы я понимаю. 

    Видимо ключевое слово КАЗАЛОСЬ, то есть в гостевой ОС я всегда буду видеть пиковое значение выделенной памяти, правильно?

    11 февраля 2014 г. 8:20
  • Да вот как мне казалось принцип работы я понимаю. 

    Видимо ключевое слово КАЗАЛОСЬ, то есть в гостевой ОС я всегда буду видеть пиковое значение выделенной памяти, правильно?

    Да.

    "A common “mistake” many people make is to assume that the assigned memory is also what the Guest OS in the VM sees.  This is NOT the case.  Assuming the VM is not already consuming the Maximum memory per the VM Settings, Hyper-V will “tell” the VM it has more memory available that is actually assigned. "

    Hyper-V 2012 Dynamic Memory: What does the VM think it has versus what it really has


    Have a nice day !!!

    11 февраля 2014 г. 9:52
  • Я бы не сказал, что всегда в ВМ будет "пиковое" значение.

    Roman Levchenko, MCITP, MCTS http://www.rlevchenko.com

    11 февраля 2014 г. 10:03
  • Как так?

    Я насколько понимаю, сколько оперативы он смог отобрать столько в диспетчере и будет. Нет?

    11 февраля 2014 г. 10:05
  • Как так?

    Я насколько понимаю, сколько оперативы он смог отобрать столько в диспетчере и будет. Нет?

    Под пиковым имею ввиду значение Maximum RAM. Если пиковое = кол-во выделенной памяти на данный момент, то да..диспетчер будет показывать значение последнего пикового значения выделенной памяти. Если ВМ, к примеру, с startup RAM в 2 Гб, то после запуска будет 2 ГБ. При нагрузке увеличится до 6 Гб, к примеру, а потом в Idle-режиме понизится до 3 Гб, то диспетчер покажет 6 Гб , т.е. последнюю верхнюю точку. А на самом деле будет выделено 3 Гб..остальное заполняется "шариком надувным" + почитайте о Weight/Buffer параметрах

    Отслеживать значения dm можно через консоль , либо лучше чeрeз perfmon


    Roman Levchenko, MCITP, MCTS http://www.rlevchenko.com

    11 февраля 2014 г. 10:13
  • Соглашусь с Романом!

    Monitoring Dynamic Memory in Windows Server Hyper-V 2012….


    Have a nice day !!!

    11 февраля 2014 г. 10:18
  • > остальное заполняется "шариком надувным"

        Yes, yes

      В RAMMap от SysInternals память занятая "шариком" включается в категорию "Driver Locked"

     (  т.к. Driver Locked без шарика = 600 K , то можно занявшись арифметкой Ж-) )

    13 февраля 2014 г. 10:04