Сколько памяти занимает драйвер

Обновлено: 04.07.2024

Если вы являетесь геймером (или просто пользователем ПК) с видеокартой NVIDIA, то драйверы NVIDIA, вероятно, захламляют гигабайты памяти на вашем жестком диске. NVIDIA оставляет старые файлы установщика, застревающие на вашем жестком диске. До тех пор пока вам не надоест это и вы удалите их вручную. Если вы конечно решите, что это вам нужно.

Как того, кто использовал графическое оборудование NVIDIA в течение многих лет, это порядком надоело мне за это долгое время. Я видел, что эти файлы используют более 4 ГБ пространства, и, хотя это может показаться небольшим количеством места для некоторых. Но они занимают много ненужного пространства на небольших SSD дисках. И вы, вероятно, заметите это только в том случае, если используете инструмент анализа дискового пространства.

Где хранятся эти файлы?

На данный момент NVIDIA хранит эти установочные файлы графического драйвера в C: \ ProgramData \ NVIDIA Corporation \ Downloader. Каталог ProgramData по умолчанию скрыт, поэтому вам нужно либо просмотреть скрытые файлы, либо ввести C: \ ProgramData в строку вашего файлового менеджера, чтобы перейти туда.

Где хранятся эти файлы?

Чтобы узнать, сколько места эти файлы используют на вашем ПК, откройте здесь каталог NVIDIA Corporation, щелкните правой кнопкой мыши папку «Downloader» и выберите «Свойства».

На скриншоте ниже эти файлы используют только 1,4 ГБ пространства в нашей тестовой системе. Однако, это только потому, что мы очистили эти файлы несколько месяцев назад. Эта папка весила гораздо больше в прошлом.


Предыдущие версии программного обеспечения NVIDIA сохраняли эти установочные файлы драйверов в папке C: \ Program Files \ NVIDIA Corporation \ Installer2, C: \ ProgramData \ NVIDIA Corporation \ NetService и только в папке C: \ NVIDIA. Если вы не переустановили Windows или не удалили эти файлы через некоторое время, они все равно могут быть сохранены в этих папках. Мы не уверены, удалило ли их программное обеспечение NVIDIA.

Что это за файлы?

Если вы откроете папку Downloader, вы увидите несколько папок со случайными именами. Дважды щелкните одну из этих папок, и вы точно увидите, что внутри: обновление драйвера NVIDIA в .exe-форме.

В принципе, всякий раз, когда программное обеспечение NVIDIA GeForce Experience загружает обновление драйвера, здесь хранится полная копия установщика этого обновления. Даже после успешной установки драйвера установщики остаются здесь.

Что это за файлы?

В «последней» папке хранится несжатая копия последнего обновления драйвера. Это необходимо только во время установки драйвера. И может понадобится только если вам нужно переустановить последний драйвер.

Что это за файлы?

Почему NVIDIA накапливает их?

Мы обратились к NVIDIA, чтобы спросить, почему GeForce Experience хранит копии всех этих инсталляторов в такой папке, но NVIDIA не ответила.

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

Это все конечно хорошо, но как часто пользователям действительно нужно переустанавливать эти драйверы? И не лучше ли оставить один или два из последних «хороших» драйверов, а не хранить 4 ГБ драйверов, возвращающих многие версии? В конце концов, даже если пользователю нужно вернуться к старому драйверу, они всегда могут загрузить старую версию с веб-сайта NVIDIA. Нет необходимости тратить 4 ГБ места на жестком диске «на всякий случай».

Это имеет еще меньшее значение, если учесть, что программное обеспечение NVIDIA GeForce Experience не позволяет легко вернуться к другой версии драйвера. Они даже не говорят пользователям, что эти установщики существуют. Вряд ли кто-нибудь когда-нибудь найдет и запустит их, так зачем их держать? Если эти файлы придется придержать, GeForce Experience должен предложить способ управления ими, чтобы пользователям не нужно было заходить в папку ProgramData, чтобы освободить место.

Как их удалить?

Хотя разрешения по умолчанию для Windows не позволят вам удалить всю папку Downloader, мы обнаружили, что вы можете просто открыть папку Downloader и удалить «последнюю» папку и другие папки со случайными именами. Оставьте папку «config» и файл «status.json».

Это освободит пространство, используемое файлами установщика NVIDIA в вашей системе. Однако, когда GeForce Experience загружает новые файлы драйверов и устанавливает их, эти новые файлы драйверов будут храниться здесь, пока вы их не удалите.

Как их удалить?

CCleaner также может автоматически стереть эти файлы установщика NVIDIA. Бесполезные инсталляторы, которые жадно потребляют дисковое пространство, не давая пользователям контроль, являются большой причиной того, почему так много пользователей Windows работают с такими инструментами, как CCleaner. Если бы разработчики программного обеспечения вели себя лучше, многие пользователи не пострадали бы от взлома CCleaner.

На компьютере с ОС Windows 7 объем доступной памяти (ОЗУ) может быть меньше, чем объем установленной.

Например, 32-разрядная версия Windows 7 может сообщать, что на компьютере с установленным объемом памяти в 4 ГБ доступно только 3,5 ГБ системной памяти.

Другой пример: 64-разрядная версия Windows 7 может сообщать, что на компьютере с установленным объемом памяти в 8 ГБ доступно только 7,1 ГБ системной памяти.

Примечание. Указанные в примерах объемы доступной памяти не являются точными. Объем доступной памяти вычисляется путем вычитания объема зарезервированной оборудованием памяти из общего объема физической памяти.

Чтобы узнать объемы установленной и доступной памяти в Windows 7, выполните следующие действия.

Обратите внимание на значение, указанное в поле Установленная память (ОЗУ) раздела Система. Например, если там указано 4,00 ГБ (3,5 ГБ свободно), это значит, что из 4 ГБ установленной памяти доступно 3,5 ГБ.

Причина

Это предусмотренная ситуация, возникающая на компьютерах с ОС Windows 7. То, насколько сократится объем доступной системной памяти, зависит от ряда факторов:

Установленных на компьютере устройств и памяти, зарезервированной ими.

Способности системной платы к обработке памяти.

Версии и конфигурации BIOS системы.

Установленной версии Windows 7 (например, ОС Windows 7 Начальная поддерживает только 2 ГБ установленной памяти).

Других параметров системы.

Например, при наличии видеоадаптера с 256 МБ собственной памяти эта память должна отображаться в первых 4 ГБ адресного пространства. Если на компьютере уже установлено 4 ГБ системной памяти, часть адресного пространства должна быть зарезервирована для отображения памяти видеоадаптера. Для отображения памяти видеоадаптера используется часть системной памяти. В результате общий объем системной памяти, доступной операционной системе, сокращается.

Дополнительные сведения о том, как определить, каким образом на компьютере используется память, см. в подразделе «Выделение физической памяти в Windows 7» раздела «Дополнительные сведения».

Что попробовать предпринять

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

Проверьте параметры конфигурации системы

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

В окне Конфигурация системы нажмите Дополнительные параметры на вкладке Загрузка.

Снимите флажок Максимум памяти и нажмите кнопку OK.

Обновление BIOS системы

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

Чтобы обновить BIOS на компьютере, посетите веб-сайт производителя компьютера и загрузите обновление BIOS. Или обращайтесь за помощью к производителю компьютера.

Проверка параметров настройки BIOS

Проблема может возникнуть из-за неправильных настроек некоторых параметров BIOS.

Включение перераспределения памяти

Проверьте, включено ли перераспределение памяти в параметрах BIOS. Перераспределение памяти дает Windows доступ к большему объему памяти. Перераспределение памяти можно включить в BIOS, вызвав меню BIOS при загрузке. Чтобы узнать, как вызвать это меню, см. руководство пользователя, поставляемое с компьютером. Точное название функции перераспределения памяти зависит от поставщика оборудования. Она может называться «перераспределение памяти», «расширение памяти» или иметь другое схожее название. Следует иметь в виду, что ваш компьютер может не поддерживать перераспределение памяти.

Изменение размера видеоапертуры AGP в параметрах BIOS

Просмотрите параметры BIOS и узнайте, сколько памяти выделено для видеоапертуры AGP. Это объем памяти, который система делит с видеоадаптером, используемым для отображения текстур и отрисовки. Данный объем памяти не будет использоваться системой, так как он заблокирован видеоадаптером. Размер видеоапертуры AGP можно настроить в параметрах BIOS. Стандартные значения: «32 МБ», «64 МБ», «128 МБ» и «Авто». После изменения этого параметра в BIOS перезагрузите компьютер, а затем проверьте объем доступной памяти. Можно попробовать применить каждый из параметров, чтобы посмотреть, какой из них даст лучший результат.

Проверка возможных проблем с установленными модулями памяти

Проблема может возникнуть из-за неполадок в установленных физических модулях памяти.

Проверка на наличие поврежденных модулей памяти

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

Проверка расположения модулей памяти

Чтобы определить, в каком порядке модули памяти должны быть установлены в гнезда, см. руководство пользователя, поставляемое с компьютером. Если вы не используете все гнезда для модулей памяти, может требоваться использовать строго определенные. Например, в компьютере есть четыре гнезда для модулей памяти. Возможно, потребуется задействовать гнездо 1 и гнездо 3, если вы хотите установить только два модуля.

Используются ли платы-концентраторы для модулей памяти?

Если вы используете плату-концентратор для модулей памяти (плату, в которую можно установить несколько модулей памяти и которая при этом устанавливается в одно гнездо для модуля памяти), может потребоваться дополнительная настройка системы. И объем доступной памяти может быть меньше, чем ожидалось.

Дополнительная информация

В следующих разделах приведены дополнительные сведения об указанном в мониторе ресурсов выделении памяти, описываются используемые термины, а также дана дополнительная информация об учете памяти и ее ограничениях в Windows 7.

Выделение физической памяти в Windows 7

В следующей таблице указано, на какие категории монитор ресурсов распределяет память, установленную на компьютере с операционной системой Windows 7.

Память, зарезервированная для использования BIOS и некоторыми драйверами других периферийных устройств.

Память, используемая процессами, драйверами или операционной системой.

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

Память, содержащая неиспользуемые кэшированные данные и код.

Память, не содержащая никаких важных данных. Именно она будет использоваться в первую очередь, если процессам, драйверам или операционной системе потребуется больший объем памяти.

Примечание. Чтобы узнать, каким образом распределена установленная память в Windows 7, выполните следующие действия.

Перейдите на вкладку Память и просмотрите раздел Физическая память внизу страницы.

Состояние памяти в Windows 7

В следующей таблице даются определения состояниям установленной на компьютере с Windows 7 памяти, указанным в мониторе ресурсов.

Объем памяти (включая зарезервированную и свободную память), доступный для использования процессами, драйверами и операционной системой.

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

Объем физической памяти, доступной операционной системе, драйверам устройств и процессам.

Установлено

Объем физической памяти, установленной на компьютере.

Учет памяти в Windows 7

В Windows 7 ведется учет объема физической памяти, установленной на компьютере. Операционные системы на основе Windows NT до Windows Vista с пакетом обновления 1 (SP1) сообщают об объеме памяти, доступной операционной системе. Учитываемый объем памяти в более ранних версиях Windows не включает в себя память, зарезервированную оборудованием. Это изменение связано только с учетом.

В Windows Vista с пакетом обновления 1 (SP1) и более поздних версиях Windows вы заметите изменения в учете памяти в следующих местах:

Значение ОЗУ в Центре начальной настройки

Значение Памяти в нижней части окна «Мой компьютер»

Значение Память в окне «Свойства системы»

Значение Суммарный объем системной памяти на странице Отображение и печать подробных сведений элемента Информация и средства производительности на Панели управления


Кроме того, компонент «Сведения о системе» (Msinfo32.exe) выводит на экран следующие записи на странице Сводные сведения о системе:

установленная физическая память (ОЗУ);

полный объем физической памяти;

доступная физическая память.

Учет памяти в следующих средствах диагностики не изменился:

Вкладка Производительность в диспетчере задач

Если объем физически установленной на компьютере оперативной памяти равен объему адресного пространства, поддерживаемому набором микросхем, общий объем системной памяти, доступной операционной системе, будет всегда меньше объема физической памяти.

Предположим, что в компьютере используется набор микросхем Intel 975X, поддерживающий 8 ГБ адресного пространства. Если установить 8 ГБ ОЗУ, объем системной памяти, доступной операционной системе, сократится из-за памяти, необходимой для конфигурации шины PCI. В данном случае для конфигурации шины PCI потребуется примерно от 200 МБ до 1 ГБ памяти, и именно на эту величину сократится объем памяти, доступный операционной системе. Реальный объем доступной памяти зависит от конфигурации.

Ограничения физической памяти в Windows 7

В следующей таблице указаны ограничения, распространяющиеся на объем физической памяти в различных версиях Windows 7.

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

Если закралось такое подозрение, можно проверить использование памяти как минимум двумя способами: с помощью Диспетчера задач и Монитора ресурсов.

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

Как проверить, сколько используется памяти, с помощью Диспетчера задач

Чтобы определить, какие программы занимают больше всего ресурсов, проделайте следующее:

  1. Откройте Пуск.
  2. Найдите Диспетчер задач и откройте его.
    На заметку: можно щелкнуть правой кнопкой мыши Панель задач или Пуск и выбрать Диспетчер задач. Также подойдет сочетание клавиш Ctrl + Shift + Esc.
Щелкните вкладку Память, чтобы отсортировать приложения по использованию памяти. Щелкните вкладку Память, чтобы отсортировать приложения по использованию памяти. Просмотрите, какие приложения используют больше всего памяти. Просмотрите, какие приложения используют больше всего памяти.
  1. (Опционально) Выберите приложение, потребляющее наибольший объем.
    На заметку: лучше завершать работу приложения только в том случае, если оно не отвечает или потребляет память необычным образом, так как при закрытии можно потерять несохраненную работу.
  2. Нажмите Снять задачу.

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

Как проверить использование памяти приложения с помощью Монитора ресурсов

Чтобы проверить объем оперативной памяти, используемой приложениями, проделайте следующее:

Выберите вкладку Частный (КБ), чтобы отсортировать приложения по объему потребляемой памяти. Данные отображаются в килобайтах. Выберите вкладку Частный (КБ), чтобы отсортировать приложения по объему потребляемой памяти. Данные отображаются в килобайтах. Просмотрите, какие приложения используют больше всего памяти. Просмотрите, какие приложения используют больше всего памяти.
  1. На заметку: в отличие от Диспетчера задач, Монитор ресурсов дает только имя процесса, а не понятное название приложения — например, «msedge.exe» вместо «Microsoft Edge» и «MsMpEng.exe» вместо «Антивируса Защитника Windows.» Если не получилось самому определить, о каком приложении речь, можно нажать по нему правой кнопкой мыши и выбрать Поиск в Интернете.
    С помощью этого инструмента можно одновременно завершить только один процесс за раз — это значит, что для закрытия приложения может потребоваться завершить все связанные процессы. Обычно они все называются одинаково.
(Опционально) Щелкните правой кнопкой мыши приложение, потребляющее наибольший объем памяти, и выберите опцию Завершить процесс. (Опционально) Щелкните правой кнопкой мыши приложение, потребляющее наибольший объем памяти, и выберите опцию Завершить процесс.

После выполнения этих шагов вы узнаете, какие приложения потребляют больше всего памяти на устройстве.

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

Стоит быть в курсе того, на что уходит большая часть памяти, однако если приложение потребляет много ресурсов — это еще не значит, что оно работает некорректно. Некоторые программы, например, для обработки фотографий и видео, обычно требуют большого объема системной оперативной памяти. Они могут привести к замедлению работы компьютера. Если же загруженность памяти постоянно достигает 70%, вполне можно задуматься о ее замене.


Немного теории

Оперативная память виртуальных машин берется из памяти сервера, на которых работают ВМ. Это вполне очевидно:). Если оперативной памяти сервера не хватает для всех желающих, ESXi начинает применять техники оптимизации потребления оперативной памяти (memory reclamation techniques). В противном случае операционные системы ВМ падали бы с ошибками доступа к ОЗУ.

Какие техники применять ESXi решает в зависимости от загруженности оперативной памяти:

Состояние памяти
Граница
Действия
High
400% от minFree
После достижения верхней границы, большие страницы памяти разбиваются на маленькие (TPS работает в стандартном режиме).
Clear
100% от minFree
Большие страницы памяти разбиваются на маленькие, TPS работает принудительно.
Soft
64% от minFree
TPS + Balloon
Hard
32% от minFree
TPS + Compress + Swap
Low
16% от minFree
Compress + Swap + Block

minFree — это оперативная память, необходимая для работы гипервизора.

До ESXi 4.1 включительно minFree по умолчанию было фиксированным — 6% от объема оперативной памяти сервера (процент можно было поменять через опцию Mem.MinFreePct на ESXi). В более поздних версиях из-за роста объемов памяти на серверах minFree стало рассчитываться исходя из объема памяти хоста, а не как фиксированное процентное значение.

Значение minFree (по умолчанию) считается следующим образом:

Процент памяти, резервируемый для minFree
Диапазон памяти
6%
0-4 Гбайт
4%
4-12 Гбайт
2%
12-28 Гбайт
1%
Оставшаяся память

Например, для сервера со 128 Гбайт RAM значение MinFree будет таким:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 Мбайт = 1,88 Гбайт
Фактическое значение может отличаться на пару сотен МБайт, это зависит от сервера и оперативной памяти.

Процент памяти, резервируемый для minFree
Диапазон памяти
Значение для 128 Гбайт
6%
0-4 Гбайт
245,76 Мбайт
4%
4-12 Гбайт
327,68 Мбайт
2%
12-28 Гбайт
327,68 Мбайт
1%
Оставшаяся память (100 Гбайт)
1024 Мбайт

Обычно для продуктивных стендов нормальным можно считать только состояние High. Для стендов для тестирования и разработки приемлемыми могут быть состояния Clear/Soft. Если оперативной памяти на хосте осталось менее 64% MinFree, то у ВМ, работающих на нем, точно наблюдаются проблемы с производительностью.

В каждом состоянии применяются определенные memory reclamation techniques начиная с TPS, практически не влияющего на производительность ВМ, заканчивая Swapping’ом. Расскажу про них подробнее.

Transparent Page Sharing (TPS). TPS — это, грубо говоря, дедупликация страниц оперативной памяти виртуальных машин на сервере.

ESXi ищет одинаковые страницы оперативной памяти виртуальных машин, считая и сравнивая hash-сумму страниц, и удаляет дубликаты страниц, заменяя их ссылками на одну и ту же страницу в физической памяти сервера. В результате потребление физической памяти снижается и можно добиться некоторой переподписки по памяти практически без снижения производительности.



Источник

По умолчанию ESXi выделяет память большим страницам. Разбивание больших страниц на маленькие начинается при достижении порога состояния High и происходит принудительно, когда достигается состояние Clear (см. таблицу состояний гипервизора).

Если же вы хотите, чтобы TPS начинал работу, не дожидаясь заполнения оперативной памяти хоста, в Advanced Options ESXi нужно установить значение “Mem.AllocGuestLargePage” в 0 (по умолчанию 1). Тогда выделение больших страниц памяти для виртуальных машин будет отключено.

С декабря 2014 во всех релизах ESXi TPS между ВМ по умолчанию отключен, так как была найдена уязвимость, теоретически позволяющая получить из одной ВМ доступ к оперативной памяти другой ВМ. Подробности тут. Информация про практическую реализацию эксплуатации уязвимости TPS мне не встречалось.

Политика TPS контролируется через advanced option “Mem.ShareForceSalting” на ESXi:
0 — Inter-VM TPS. TPS работает для страниц разных ВМ;
1 – TPS для ВМ с одинаковым значением “sched.mem.pshare.salt” в VMX;
2 (по умолчанию) – Intra-VM TPS. TPS работает для страниц внутри ВМ.

Однозначно имеет смысл выключать большие страницы и включать Inter-VM TPS на тестовых стендах. Также это можно использовать для стендов с большим количеством однотипных ВМ. Например, на стендах с VDI экономия физической памяти может достигать десятков процентов.

Memory Ballooning. Ballooning уже не такая безобидная и прозрачная для операционной системы ВМ техника, как TPS. Но при грамотном применении с Ballooning’ом можно жить и даже работать.

Вместе с Vmware Tools на ВМ устанавливается специальный драйвер, называемый Balloon Driver (он же vmmemctl). Когда гипервизору начинает не хватать физической памяти и он переходит в состояние Soft, ESXi просит ВМ вернуть неиспользуемую оперативную память через этот Balloon Driver. Драйвер в свою очередь работает на уровне операционной системы и запрашивает свободную память у нее. Гипервизор видит, какие страницы физической памяти занял Balloon Driver, забирает память у виртуальной машины и возвращает хосту. Проблем с работой ОС не возникает, так как на уровне ОС память занята Balloon Driver’ом. По умолчанию Balloon Driver может забрать до 65% памяти ВМ.

Если на ВМ не установлены VMware Tools или отключен Ballooning (не рекомендую, но есть KB:), гипервизор сразу переходит к более жестким техникам отъема памяти. Вывод: следите, чтобы VMware Tools на ВМ были.



Работу Balloon Driver’а можно проверить из ОС через VMware Tools.

Memory Compression. Данная техника применяется, когда ESXi доходит до состояния Hard. Как следует из названия, ESXi пытается сжать 4 Кбайт страницы оперативной памяти до 2 Кбайт и таким образом освободить немного места в физической памяти сервера. Данная техника значительно увеличивает время доступа к содержимому страниц оперативной памяти ВМ, так как страницу надо предварительно разжать. Иногда не все страницы удается сжать и сам процесс занимает некоторое время. Поэтому данная техника на практике не очень эффективна.

Memory Swapping. После недолгой фазы Memory Compression ESXi практически неизбежно (если ВМ не уехали на другие хосты или не выключились) переходит к Swapping’у. А если памяти осталось совсем мало (состояние Low), то гипервизор также перестает выделять ВМ страницы памяти, что может вызвать проблемы в гостевых ОС ВМ.

Вот как работает Swapping. При включении виртуальной машины для нее создается файл с расширением .vswp. По размеру он равен незарезервированной оперативной памяти ВМ: это разница между сконфигурированной и зарезервированной памятью. При работе Swapping’а ESXi выгружает страницы памяти виртуальной машины в этот файл и начинает работать с ним вместо физической памяти сервера. Разумеется, такая такая “оперативная” память на несколько порядков медленнее настоящей, даже если .vswp лежит на быстром хранилище.

В отличие от Ballooning’а, когда у ВМ отбираются неиспользуемые страницы, при Swapping’e на диск могут переехать страницы, которые активно используются ОС или приложениями внутри ВМ. В результате производительность ВМ падает вплоть до подвисания. ВМ формально работает и ее как минимум можно правильно отключить из ОС. Если вы будете терпеливы ;)

Если ВМ ушли в Swap — это нештатная ситуация, которую по возможности лучше не допускать.

Основные счетчики производительности памяти виртуальной машины

Вот мы и добрались до главного. Для мониторинга состояния памяти в ВМ есть следующие счетчики:

Active — показывает объем оперативной памяти (Кбайт), к которому ВМ получила доступ в предыдущий период измерения.

Usage — то же, что Active, но в процентах от сконфигурированной оперативной памяти ВМ. Рассчитывается по следующей формуле: active ÷ virtual machine configured memory size.
Высокий Usage и Active, соответственно, не всегда является показателем проблем производительности ВМ. Если ВМ агрессивно использует память (как минимум, получает к ней доступ), это не значит, что памяти не хватает. Скорее это повод посмотреть, что происходит в ОС.
Есть стандартный Alarm по Memory Usage для ВМ:


Shared — объем оперативной памяти ВМ, дедуплицированной с помощью TPS (внутри ВМ или между ВМ).

Granted — объем физической памяти хоста (Кбайт), который был отдан ВМ. Включает Shared.

Consumed (Granted — Shared) — объем физической памяти (Кбайт), которую ВМ потребляет с хоста. Не включает Shared.

Если часть памяти ВМ отдается не из физической памяти хоста, а из swap-файла или память отобрана у ВМ через Balloon Driver, данный объем не учитывается в Granted и Consumed.
Высокие значения Granted и Consumed — это совершенно нормально. Операционная система постепенно забирает память у гипервизора и не отдает обратно. Со временем у активно работающей ВМ значения данных счетчиков приближается к объему сконфигурированной памяти, и там остаются.

Zero — объем оперативной памяти ВМ (Кбайт), который содержит нули. Такая память считается гипервизором свободной и может быть отдана другим виртуальным машинам. После того, как гостевая ОС получила записала что-либо в зануленную память, она переходит в Consumed и обратно уже не возвращается.

Reserved Overhead — объем оперативной памяти ВМ, (Кбайт) зарезервированный гипервизором для работы ВМ. Это небольшой объем, но он обязательно должен быть в наличии на хосте, иначе ВМ не запустится.

Balloon — объем оперативной памяти (Кбайт), изъятой у ВМ с помощью Balloon Driver.

Compressed — объем оперативной памяти (Кбайт), которую удалось сжать.

Swapped — объем оперативной памяти (Кбайт), которая за неимением физической памяти на сервере переехала на диск.
Balloon и остальные счетчики memory reclamation techniques равны нулю.

Вот так выглядит график со счетчиками Memory нормально работающей ВМ со 150 ГБ оперативной памяти.


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


ESXTOP

Как и с CPU, если хотим оперативно оценить ситуацию на хосте, а также ее динамику с интервалом до 2 секунд, стоит воспользоваться ESXTOP.

Экран ESXTOP по Memory вызывается клавишей «m» и выглядит следующим образом (выбраны поля B,D,H,J,K,L,O):


Интересными для нас будут следующие параметры:

Mem overcommit avg — среднее значение переподписки по памяти на хосте за 1, 5 и 15 минут. Если выше нуля, то это повод посмотреть, что происходит, но не всегда показатель наличия проблем.

В строках PMEM/MB и VMKMEM/MB — информация о физической памяти сервера и памяти доступной VMkernel. Из интересного здесь можно увидеть значение minfree (в МБайт), состояние хоста по памяти (в нашем случае, high).

В строке NUMA/MB можно увидеть распределение оперативной памяти по NUMA-нодам (сокетам). В данном примере распределение неравномерное, что в принципе не очень хорошо.

Далее идет общая статистика по серверу по memory reclamation techniques:

PSHARE/MB — это статистика TPS;

SWAP/MB — статистика использования Swap;

ZIP/MB — статистика компрессии страниц памяти;

MEMCTL/MB — статистика использования Balloon Driver.

По отдельным ВМ нас может заинтересовать следующая информация. Имена ВМ я скрыл, чтобы не смущать аудиторию:). Если метрика ESXTOP аналогична счетчику в vSphere, привожу соответствующий счетчик.

MEMSZ — объем памяти, сконфигурированный на ВМ (МБ).
MEMSZ = GRANT + MCTLSZ + SWCUR + untouched.

GRANT — Granted в МБайт.

TCHD — Active в МБайт.

MCTL? — установлен ли на ВМ Balloon Driver.

MCTLSZ — Balloon в МБайт.

MCTLGT — объем оперативной памяти (МБайт), который ESXi хочет изъять у ВМ через Balloon Driver (Memctl Target).

MCTLMAX — максимальный объем оперативной памяти (МБайт), который ESXi может изъять у ВМ через Balloon Driver.

SWCUR — текущий объем оперативной памяти (МБайт), отданный ВМ из Swap-файла.

SWGT — объем оперативной памяти (МБайт), который ESXi хочет отдавать ВМ из Swap-файла (Swap Target).

Также через ESXTOP можно посмотреть более подробную информацию про NUMA-топологию ВМ. Для этого нужно выбрать поля D,G:


NHN – NUMA узлы, на которых расположена ВМ. Здесь можно сразу заметить wide vm, которые не помещаются на один NUMA узел.

NRMEM – сколько мегабайт памяти ВМ берет с удаленного NUMA узла.

NLMEM – сколько мегабайт памяти ВМ берет с локального NUMA узла.

N%L – процент памяти ВМ на локальном NUMA узле (если меньше 80% — могут возникнуть проблемы с производительностью).

Memory на гипервизоре

Если счетчики CPU по гипервизору обычно не представляют особого интереса, то с памятью ситуация обратная. Высокий Memory Usage на ВМ не всегда говорит о наличие проблемы с производительностью, а вот высокий Memory Usage на гипервизоре, как раз запускает работу техник управления памятью и вызывает проблемы с производительностью ВМ. За алармами Host Memory Usage надо следить и не допускать попадания ВМ в Swap.



Unswap

Если ВМ попала в Swap, ее производительность сильно снижается. Следы Ballooning’а и компрессии быстро исчезают после появления свободной оперативной памяти на хосте, а вот возвращаться из Swap в оперативную память сервера виртуальная машина совсем не торопится.
До версии ESXi 6.0 единственным надежным и быстрым способ вывода ВМ из Swap была перезагрузка (если точнее выключение/включение контейнера). Начиная с ESXi 6.0 появился хотя и не совсем официальный, но рабочий и надежный способ вывести ВМ из Swap. На одной из конференций мне удалось пообщаться с одним из инженеров VMware, отвечающим за CPU Scheduler. Он подтвердил, что способ вполне рабочий и безопасный. В нашем опыте проблем с ним также замечено не было.

Собственно команды для вывода ВМ из Swap описал Duncan Epping. Не буду повторять подробное описание, просто приведу пример ее использования. Как видно на скриншоте, через некоторое время после выполнения указанной команд Swap на ВМ исчезает.


Советы по управлению оперативной памятью на ESXi

Напоследок приведу несколько советов, которые помогут вам избежать проблем с производительностью ВМ из-за оперативной памяти:

    Не допускайте переподписки по оперативной памяти в продуктивных кластерах. Желательно всегда иметь

Читайте также: