5 Replies Latest reply on Aug 8, 2019 4:33 AM by Finikiez

    Гостевая ОС использует больше памяти, чем ей выделил гиревизор

    domosed Lurker

      Обратил внимание на  такой момент:

      Есть сервер под управлением Windows 2008. Если открыть диспетчер задач, то видно, что используется около 13 Гб памяти

       

      Но если посмотреть в Veeam One, Memory Usage - 22% (3.5Gb)

      В то же время баллонной памяти использовано 0, shared memory -0

      Подскажите, как можно объяснить такой эффект?

        • 1. Re: Гостевая ОС использует больше памяти, чем ей выделил гиревизор
          Finikiez Master
          vExpert

          Добрый день!

           

          История несколько сложнее чем кажется. То, что операционная система показывает утилизацию 13,5ГБ оперативной памяти, совсем не означает, что приложения, которым эта память аллоцирована, ее используют. Чуть более детально может помочь погрузиться в тему утилита Rammap.

           

          Я не очень в курсе, откуда берет значения veeam one, но полагаю, что это те же счетчики что и на гипервизоре\vcenter.

           

          Какие цифры вы там видите?

          • 2. Re: Гостевая ОС использует больше памяти, чем ей выделил гиревизор
            domosed Lurker

            vcenter не используется. сам гипервизор показывает те же знчения, что и veeam One (проверял утилитойesxtop)

            • 3. Re: Гостевая ОС использует больше памяти, чем ей выделил гиревизор
              Finikiez Master
              vExpert

              Ок, тогда будем более детальны.

               

              Как я говорил, аллоцированная память внутри гостевой ОС не означает ее активное использование приложением и, соответственно, "корректным" определением со стороны гипервизора данной алоцированной памяти.

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

               

              Далее идем читать вот этот документ Measuring and Differentiating Types of Memory Usage

               

              А потом согласно этому KB VMware Knowledge Base  , получаем что этот счетчик вычисляется c помощью значений active memory и предоставленной памяти.

               

              Если смотреть на среднее значение Active 3.55 ГБ и с учетом того, что физической памяти всем достаточно и, при отсутствии резервации, гипервизор выделяет всю память данной ВМ (16 ГБ), получаем значение memory usage в процентах около 22.

               

              Логично?

               

              PS. Немного выше могу некорректно применять термины аллоцировано\выделено и т.п. из-за спешки в написании, но надеюсь, что посыл в целом понятен.

              • 4. Re: Гостевая ОС использует больше памяти, чем ей выделил гиревизор
                domosed Lurker

                Спасибо большое за детальный ответ!

                Т.е я правильно понимаю концепцию:

                гостевая  ос "думает", что выполняется на физической машине,

                она занимает 13ГБ из 16 выделенных.

                Но поскольку активно используется только 3,55 Гб гипервизор как бы "одолжил" неиспользуемую память для своих нужд, но гостевая машина не знает об этом

                если выполняемые приложения запросят больше памяти гипервизор ее выдаст...

                • 5. Re: Гостевая ОС использует больше памяти, чем ей выделил гиревизор
                  Finikiez Master
                  vExpert

                  Все не совсем так.

                   

                  Active memory - объем оперативной памяти, который с точки зрения гипервизора, ВМ активно трогала за небольшой промежуток времени. Поскольку этот счетчик показывают объем за промежуток времени, а ВМ врядли у вас активно трогает 100% памяти, то данный счетчик обычно заметно ниже, чем объем используемой оперативной памяти в task manager.

                   

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

                   

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

                   

                  Можете на русском языке почитать хороший цикл статей от Dataline на habr, конкретно про счетчики памяти вот Анализ производительности ВМ в VMware vSphere. Часть 2: Memory / Блог компании DataLine / Хабр

                   

                   

                  Если резюмировать: сначала смотрите в процент утилизации памяти непосредственно из гостевой ОС, чтобы понять достаточно ей ресурсов или нет. Это в общем, а дальше бывают всякие частности.