ЕдиныйАгент требования к памяти

Материал из Документация Ключ-АСТРОМ

Глубокий мониторинг приложения с Ключ-Астром ЕдиныйАгент предполагает увеличение потребности в памяти для каждого приложения по сравнению с выполнением без Ключ-Астром ЕдиныйАгент. Помимо памяти, необходимой для загрузки двоичного кода модуля кода ЕдиныйАгент в процесс приложения, память используется для хранения отслеживаемой информации о состоянии приложения, коммуникационных буферов и т. д.

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

Требования к памяти модуля кода ЕдиныйАгент

Как указано выше, мониторинг потребности в памяти зависит от множества факторов. Чтобы упростить прямое планирование ресурсов, мы рекомендуем учитывать дополнительный бюджет памяти в 200 МБ для отслеживаемых процессов приложений. Этого количества будет достаточно для мониторинга огромного количества приложений. Эмпирические наблюдения показывают, что потребность в памяти для большинства приложений значительно ниже 100 МБ.

Потребность в памяти для мониторинга относится к размеру страниц памяти (RSS) или эквивалентной количественной оценке в операционных системах, отличных от Linux. RSS — это ключевой количественный показатель для применения ограничений памяти к процессам.

Ограничения памяти облачной платформы

Kubernetes и другие облачные платформы позволяют определять лимиты памяти для рабочих нагрузок. Определенные ограничения применяются (грубо говоря) к RSS, и рабочие нагрузки автоматически прекращаются, как только они превышают определенный предел памяти.

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

О дисперсии потребности в памяти

Потребность в памяти для глубокого мониторинга модуля кода ЕдиныйАгент не может быть точно выражена в виде постоянного числа или доли памяти, потребляемой процессом приложения. Это сумма памяти, необходимой для основной работы модуля кода ЕдиныйАгент (например, коммуникационных буферов), и данных динамического мониторинга, собранных модулями кода ЕдиныйАгент. Потребность в памяти для данных динамического мониторинга зависит от настроек конфигурации, базовой технологии приложения и самого приложения.

Потребность в памяти, зависящая от приложения

Видимость на уровне кода и анализ горячих точек требуют регистрации времени и частоты выполнения функций. Таким образом, количество функций в приложении и их выполнение определяют количество элементов данных и, в конечном счете, объем памяти, необходимый для измерения производительности функции. То же самое относится к информации PurePath — потребность в памяти для сбора информации PurePath зависит от количества одновременных запросов, обрабатываемых приложением, и сложности (т. е. длины PurePath) выполнения, запускаемого этими запросами.

Потребность в памяти, зависящая от конфигурации

Мониторинг пользовательских служб является примером мониторинга потребности в памяти, зависящей от конфигурации. Определение настраиваемой службы увеличивает базовый бюджет памяти для инструментария выбранной функции и бюджет динамической памяти для увеличения количества данных PurePath, собираемых для вызовов настраиваемой службы. В технологии .NET инструментирование дополнительных сборок для пользовательской службы может значительно увеличить потребность в памяти при запуске (см. ниже).

Потребность в памяти, зависящая от технологии

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

В зависимости от модуля кода ЕдиныйАгент потребность в памяти может достигать пика при запуске приложения. Это особенно верно для технологии .NET. Подготовка сборок .NET к мониторингу приводит к резкому увеличению объема памяти, поскольку код сборки временно дважды находится в памяти. Это известная проблема технологии Microsoft .NET, которую нельзя устранить с помощью Ключ-Астром ЕдиныйАгент.