9 Replies Latest reply on Aug 24, 2010 1:30 AM by AntonVZhbankov

    ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах

    Turion Novice

       

      Коллеги, подскажите пожалуйста куда "копать" по такой проблеме:

       

       

      поставил ESXi 4.0, на ней поднял порядка 10 виртуальных серверов. Так вот есть пара серверов, где выделено по 3Гб ОЗУ, всего на железном сервере 8Гб. На этих виртуальных серверах установлены Windows Server 2003 R2 и 2008 не R2 - сделано так осознанно, т.к. ранее были одинаковые ОС. Так вот ситуация заключается в том, что спустя какое-то время ( ~ 1 час, или чуть больше) резко падает количество свободного ОЗУ с 2,8Гб до 700Мб.

       

       

      С чем это может быть связано? На разных системах картина одинакова. Обновление до 4.1 не дало никаких результатов.

       

       

        • 1. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
          AntonVZhbankov Guru
          User Moderators

          Ничего не понятно, кто на ком стоял?

           

          Можно скриншоты Windows Performance Monitor и Performance для ВМ из vSphere клиента за один и тот же период времени, когда память "падает"?


          ---

          MCSA, MCTS Hyper-V, VCP 3/4, VMware vExpert

          http://blog.vadmin.ru

          • 2. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
            Turion Novice

            Для полной однозначности будем рассматривать ситуацию, когда есть один железный сервер, на котором стоит ESXi 4.1 и создано порядка 10 виртуальных серверов, одному из которых выделено 3Гб ОЗУ (остальные - до 1Гб). Так вот, этот виртуальный сервер с 3Гб ОЗУ ничем не загружен, т.е. чистая система. При запуске этого виртуального сервера объем свободного ОЗУ, по показаниям системы (Win Server 2003 Std R2 SP2 x86), состовляет 2,8Гб. Спустя время, от 1 часа и более, когда как, объем свободного ОЗУ по показаниям системы (Win Server), состовляет уже 0,7Гб и остается неизменным потом. Вот скриншоты состояния системы сразу после перезагрузки. Потом добавлю другие, когда состояние системы изменится.

            • 3. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
              Turion Novice

              Состояние через 30 минут работы системы

              • 4. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                AntonVZhbankov Guru
                User Moderators

                Я вижу, что у Вас ненулевые покатели balloon.

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

                 

                Ситуация совершенно нормальная. Каким образом ESX может дать виртуалкам памяти больше, чем есть физически? Только перераспределением имеющейся. Есть balloon драйвер, который и обеспечивает это перераспределение.

                Когда сумма выделенной ВМ памяти становится больше, чем физической, внутри ВМ "надуваются баллоны". Они принудительно запрашивают у гостевой ОС (Windows в данном случае) большие объемы памяти, но их не используют, а докладывают ESX серверу о своем объеме. ESX в свою очередь кусок памяти, который отъел баллон, может отдать другой ВМ, более нуждающейся в памяти.

                При этом цена неиспользуемой памяти выше в 4 раза, чем цена используемой. Т.е. если есть 2 ВМ, у одной из которой 50% памяти свободно, а у другой память занята на 100%, то на каждую страницу памяти во второй ВМ баллон будет отъедать 4 у первой.


                ---

                MCSA, MCTS Hyper-V, VCP 3/4, VMware vExpert

                http://blog.vadmin.ru

                1 person found this helpful
                • 5. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                  Turion Novice

                  Спасибо за помощь в этой ситуации. Хотя мысли о причине были изначально, т.к. явно у меня объем железного ОЗУ меньше, чем суммарная ОЗУ на всех созданных ВМ.

                  • 6. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                    Turion Novice

                    А есть ли возможность отключить это перераспределение у конкретной ВМ? Т.е. настроить ВМ так, чтобы у неё никто ничего не отнимал?

                    • 7. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                      AntonVZhbankov Guru
                      User Moderators

                      В свойствах ВМ поставьте Reserve в нужном объеме - это будет гарантированная память для ВМ.

                       

                      Хотя в общем я Вам посоветую подумать над выделением памяти ВМ, и убавить памяти тем ВМ, которые не используют ее до конца. И, разумеется, добавить памяти на физическом сервере.


                      ---

                      MCSA, MCTS Hyper-V, VCP 3/4, VMware vExpert

                      http://blog.vadmin.ru

                      • 8. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                        Turion Novice

                         

                        А каким лучше принципом руководствоваться при распределении памяти между ВМ?

                         

                         

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

                         

                         

                        • 9. Re: ESXi 4.0 & 4.1 потеря свободной ОЗУ в Windows-серверах
                          AntonVZhbankov Guru
                          User Moderators

                          1) У Вас уже накопилась статистика - изучите ее на предмет того, как ВМ используют свою память.

                          2) Для критичных ВМ ставьте резервы, причем совершенно необязательно резервировать полный объем памяти. Например, у меня есть пара критичных ВМ (одинаковые ВМ в application level кластере), у каждой из которых по 3ГБ. При этом реальное использование памяти составляет 1.7ГБ активным процессом, а общий показатель Memory Consumed примерно 2.8ГБ. Итого 2ГБ в резерв. У Вас могут быть совершенно другие требования, когда и столько памяти не надо, и притормаживание вполне допустимо, да и перезагрузку с переконфигурированием не проблема.

                          3) Не давайте памяти "про запас" и "на всякий случай".

                          4) Не давайте лишних процессоров виртуальным машинам. Если нет реальной потребности, то оставляйте по 1 процессору, каждый дополнительный процессор увеличивает оверхед по памяти (память, используемая ESX для поддержания работы ВМ).

                          5) Соберите статистику загрузки ВМ при помощи средств гостевой ОС и проанализируйте ее.

                          6) Используйте Windows 2003 вместо 2008, у нее значительно меньше запросы к памяти.

                          7) Старайтесь использовать по возможности одинаковые ВМ, стандартизованные, чтобы лучше работала Transparent Page Sharing и дедуплицировала память.


                          ---

                          MCSA, MCTS Hyper-V, VCP 3/4, VMware vExpert

                          http://blog.vadmin.ru