Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Зачем вообще указывать минимальный объём оперативной памяти, если у тебя включены Ballooning и KSM?

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Зачем вообще указывать минимальный объём оперативной памяти, если у тебя включены Ballooning и KSM?, Proxmox Виртуальная Среда
     
    harmonyp
    Guest
    #1
    0
    01.12.2020 00:40:00
    Я немного запутался, в чем смысл установки минимального объема оперативной памяти, если у вас включены ballooning и KSM. Если у виртуальной машины установлено 1024/2048, она всегда может использовать 2 ГБ. И даже если она использует 512 МБ, отображение потребления будет одинаковым как на самой VM, так и в общем использовании узла. Мне сказали, что это позволяет перераспределять ресурсы, но ballooning + KSM и так делают то же самое, поэтому я не уверен, стоит ли устанавливать минимальный объем памяти. Не мог бы кто-нибудь объяснить преимущества и недостатки? Один недостаток, с которым я столкнулся при установке низкого объема памяти, — на Linux-машинах неправильно отображается объем памяти (top) и иногда появляются ошибки, связанные с памятью. Я думаю о том, чтобы убрать эту настройку.
     
     
     
    Dunuin
    Guest
    #2
    0
    13.05.2024 21:51:00
    Это не то, как я понимаю работу KVM ballooning. Хост просто медленно отбирает оперативную память у ВМ, как только оперативки на хосте превышает 80%, неважно, нужна ли эта память гостевой ОС или нет. Гостевой ОС приходится с этим разбираться, что, в свою очередь, может привести к завершению важных процессов, если нет возможности сбросить кэш.
     
     
     
    NanamiMio
    Guest
    #3
    0
    10.03.2023 11:59:00
    Спасибо за ответ. Если я правильно понимаю, процесс освобождения памяти не происходит, когда RAM установлена в 4096/4096. Получается, 4096/4096 — это как отключить ballooning?
     
     
     
    Dunuin
    Guest
    #4
    0
    10.03.2023 20:18:00
    Да.
     
     
     
    corndelphinus
    Guest
    #5
    0
    12.05.2024 14:34:00
    Привет! У меня 3 ВМ (Windows 11 со всеми драйверами https://pve.proxmox.com/wiki/Windows_10_guest_best_practices). На моём последнем узле Proxmox 8.2.2 всего 32 ГБ ОЗУ.

    - ВМ1: минимум 4 ГБ ОЗУ, максимум 14 ГБ ОЗУ, Ballooning: Включён
    - ВМ2: минимум 4 ГБ ОЗУ, максимум 14 ГБ ОЗУ, Ballooning: Включён
    - ВМ3: минимум 4 ГБ ОЗУ, максимум 14 ГБ ОЗУ, Ballooning: Включён

    ---------
    Минимальный общий объём ОЗУ ВМ: 12 ГБ из 32 ГБ ОЗУ на узле
    Максимальный общий объём ОЗУ ВМ: 42 ГБ из 32 ГБ ОЗУ на узле

    Когда я включаю ВМ, одна из них всегда отключается. Я понимаю, что это из-за нехватки ОЗУ, но ведь есть МИНИМАЛЬНЫЙ объём ОЗУ и Ballooning. Так почему же этот механизм не работает? И как его заставить работать?

    Большое спасибо!
     
     
     
    Dunuin
    Guest
    #6
    0
    12.05.2024 17:30:00
    Есть ли тут что-то связанное с PCI passthrough?
     
     
     
    corndelphinus
    Guest
    #7
    0
    12.05.2024 18:08:00
    Привет! В настройках ВМ -> Оборудование нет "PCI Device", и на хосте у меня их тоже нет.
     
     
     
    corndelphinus
    Guest
    #8
    0
    12.05.2024 22:06:00
    Я попробовал это с одной виртуальной машиной (минимум 8 ГБ, максимум 26,4 ГБ оперативной памяти). Похоже, ballooning начинает работать примерно через 1,5 часа. (Всего оперативной памяти узла 31,09 ГБ, 80% - это 24,9 ГБ для виртуальных машин). Кажется, что это не способно решить проблемы с памятью в "реальном времени".
     
     
     
    Dunuin
    Guest
    #9
    0
    12.05.2024 22:43:00
    Не может ужать ВМ в реальном времени. Если бы сразу же удаляла оперативную память из ВМ, гостевая ОС зависла бы и не успела бы выгрузить данные. Поэтому делает это постепенно. Но 1,5 часа — это слишком долго...
     
     
     
    corndelphinus
    Guest
    #10
    0
    13.05.2024 13:28:00
    В таком случае, раздувание памяти (ram ballooning) имеет смысл на серверах с огромным объемом оперативной памяти, где 20% зазор действительно большой, и сервер может лучше сбалансировать нагрузку между ВМ в более длительные периоды времени, верно? Раздувание памяти опирается на тот факт, что, в среднем, не будет пика использования оперативной памяти на всех ВМ, потому что система не может быстро отреагировать на такую ситуацию и просто выключает ВМ. Я правильно понимаю?
     
     
     
    ALFi
    Guest
    #11
    0
    13.05.2024 19:29:00
    Тонкая виртуализация CPU имеет смысл, когда хочется перераспределить ресурсы. Чем больше ресурсов у тебя есть, тем больше она может быть полезна. Например, если ты пытаешься сэкономить оперативную память на 8ГБ системе, скорее всего, это не стоит усилий и проще купить ещё одну планку памяти. Но если ты провайдер услуг интернета и у тебя сотни серверов с более чем 1ТБ памяти каждый, ты можешь сэкономить миллионы, немного перераспределив ресурсы вместо покупки оборудования. Ну как обычно, IT спрашивает у разработчиков, сколько ресурсов понадобится новому приложению (они немного переоценивают), они спрашивают у менеджеров продукта, сколько миллионов пользователей ожидается (они всегда завышают прогноз), поэтому в больших окружениях обычно можно просто немного перераспределить ресурсы и все будет хорошо. Для небольших систем, на мой взгляд, контейнеры лучше, если ты хочешь максимально использовать последнюю свободную память вместо виртуальной машины. Также хост не может просто "взять" память у ВМ, он спрашивает у ВМ, может ли он вернуть немного памяти, и ВМ решает, отдавать ли память или нет. Это обычно не одно взаимодействие, скорее всего, они делают много итераций, и каждый раз возвращается всего несколько КБ/МБ, поэтому это медленно. (Если у хоста заканчивается свободная память, ему приходится использовать подкачку или убивать процессы, обычно самые большие -> твои KVM/QEMU ВМ). И наоборот, если ВМ хочет вернуть свою динамическую память, она должна запросить её у хоста, и хосту приходится решать, возвращать ли память или нет. (Если она не получит память достаточно быстро, она должна использовать подкачку или убивать процессы). По поводу настройки минимального размера, есть программы, у которых свой планировщик памяти и которым требуется весь диапазон при запуске. Например, Java: если у тебя Java-приложение настроено на использование 8ГБ, а у ВМ в данный момент свободно 6ГБ и возможно ещё 4ГБ благодаря тонкой виртуализации, Java-приложение вылетит с ошибкой нехватки памяти при запуске, тонкая виртуализация в этом случае недостаточно быстра... Это постоянно случается, в этих случаях правильно настроенный минимальный размер имеет смысл. Также, правильный размер виртуальных машин лучше, чем перераспределение, но реально сложно угадать. Обычно мы справляемся с 120% перераспределения памяти и 350% перераспределения CPU, но каждое окружение разное. И как-то меня раздражает, что это называется "тонкой виртуализацией" с KVM. "Тонкая виртуализация" — это от ESX, где в ВМ есть процесс, который надувается (как воздушный шарик, отсюда и название), и хост отображает эти страницы. Кроме того, этот "шарик" подкреплён собственным файлом подкачки, поэтому ВМ на ESXi может сильно замедлиться в условиях нехватки памяти, но хост никогда не убьёт её. В KVM/QEMU размер твоей ВМ будет уменьшаться и увеличиваться... Так что динамическая/гибкая память было бы гораздо лучшим названием, и если у хоста недостаточно места для подкачки, это может спровоцировать убийство процесса в зависимости от того, как ты увлечёшься перераспределением.
     
     
     
    corndelphinus
    Guest
    #12
    0
    13.05.2024 19:39:00
    Спасибо за такой подробный ответ. Всё понятно. (y) К сожалению, до 1 ТБ оперативной памяти на сервере ещё очень далеко.
     
     
     
    ALFi
    Guest
    #13
    0
    13.05.2024 22:52:00
    Хм... ну, в последний раз, когда мы это тестировали, было года 3-4 назад на ovirt/rhev. Тогда создалось впечатление, что гостевая система может не отпускать память, если она в данный момент использует только активную память. Я, правда, с proxmox не тестировал. Базовый kvm/qemu, вероятно, одинаков. После короткого гугла, Red Hat кое-что делали с управлением памятью через mom и libvirt. Вот об этом написано: https://medium.com/coccoc-engineering-blog/the-way-of-kvm-memory-management-9670f0f852af, и в конце даже видно, что память расширяется/сокращается небольшими порциями. А вот старый тест с mom и ballooning: https://developer.ibm.com/tutorials/l-overcommit-kvm-resources/. Ещё у ovirt есть кластерный планировщик, который переносит ВМ на другой хост, если ресурсов не хватает. Ну, значит, я ошибся насчет ванильного kvm/qemu, но разве нет какой-нибудь команды или что-то подобное в /proc, где можно вручную управлять balloon и проверить это? Если ванильный kvm/libvirt действительно написан так, что он баллонирует без согласия ВМ, и ВМ падает из-за этого, это довольно глупо, и я бы посчитал это ошибкой. Я понимаю, что хост может исчерпать память/своп и, соответственно, kill ВМ. С другой стороны, можно возразить, что эта ВМ неправильно сконфигурирована, поскольку у нее недостаточно свопа для обработки такой ситуации.
     
     
     
    fireon
    Guest
    #14
    0
    04.07.2024 14:40:00
    Скриншот из документации Proxmox:
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры