Применение АппОптима / Профилирование и оптимизация / Дампы памяти / Настройка АктивногоШлюза (для хранения дампов памяти)
Когда в вашем приложении происходят утечки памяти или высокая частота смены объектов, важно, чтобы вы получали дампы памяти, чтобы можно было проанализировать эти проблемы. В производственных средах это часто становится проблемой, когда вы не можете войти в среду и у вас нет других средств для запуска дампов памяти. АппОптима позволяет вам как запускать, так и безопасно загружать дампы памяти в инструмент анализа по вашему выбору. Чтобы включить дампы памяти, вам необходимо настроить АктивныйШлюз, как описано ниже.
Если вы настроите АктивныйШлюз для сбора дампов памяти, а затем перезапустите службу АктивногоШлюза, все экземпляры ЕдиногоАгента автоматически переподключатся и распознают, что АктивныйШлюз теперь может хранить дампы памяти. С этого момента, всякий раз, когда дамп памяти успешно запускается, дамп будет автоматически загружаться на правильный АктивныйШлюз. После безопасного сохранения на АктивномШлюзе, ЕдиныйАгент удаляет локальный файл из своего хранилища. Обратите внимание, что ЕдиныйАгент автоматически удаляет дамп памяти на исходном хосте через один час.
Активировать функцию дампа
Создайте раздел [collector]
в файле custom.properties
(если он еще не существует). Укажите свойство DumpSupported
в этом разделе и установите значение true
.
[collector]
DumpSupported = true
Укажите выделенный каталог дампа (необязательный)
Если не настроено иначе, АктивныйШлюз сохраняет дампы памяти в каталоге по умолчанию .
Чтобы использовать пользовательский путь, укажите путь в файле свойств и создайте каталог с соответствующими разрешениями:
Создайте раздел [dump]
в custom.properties
(если он еще не существует) и затем укажите свойство dumpDir
в этом разделе. Например:
[dump]
dumpDir = dump
Свойство dumpDir
может содержать относительный путь, например, dumpDir = mydir
. В этом случае каталог будет подкаталогом расположения по умолчанию. Это может быть также абсолютный путь, например, dumpDir = C:\data\memory-dumps
.
Создайте каталог, если он еще не существует, и убедитесь, что у него есть права доступа для пользователя, запускающего службу АктивногоШлюза. Это по умолчанию dtuserag
для Linux и Local Service
для Windows:
- Системы Linux:
Read
,Write
, иExecute
- Системы Windows:
Read
,Write
, иModify
Пример разрешений для каталога дампа в Windows
Использование /temp
или /tmp
под управлением Linux
Из-за возможной автоматической очистки мы рекомендуем вам не использовать каталоги Linux /temp
, /tmp
или их подкаталоги для установки АктивногоЩлюза или хранения каких-либо данных, созданных или используемых АктивнымШлюзом.
Укажите параметры для управления файлами дампа (необязательный)
Также в разделе [dump]
можно указать следующие свойства:
Свойство | Значение по умолчанию | Описание |
---|---|---|
dumpDir
|
dump
|
Допустимый путь к каталогу хранения, используемому для хранения дампа |
maxSizeGb
|
100
|
Квота хранения в ГБ. Если она будет переполнена, самые старые дампы перезаписываются до тех пор, пока не будет достаточно места для хранения нового дампа. |
maxAgeDays
|
7
|
Максимальный срок хранения дампа памяти в днях, после которого дамп будет автоматически перезаписан |
maxConcurrentUploads
|
5
|
Максимальное количество одновременных загрузок дампов из ЕдиногоАгента |
downloadUrl
|
не установлено | Пользовательский URL для загрузки. Это особенно полезно, если АктивныйШлюз находится за балансировщиком нагрузки для управления трафиком конечного пользователя или если АктивныйШлюз определяет только IP-адрес, а пользователю требуется FQDN. Обратите внимание, что балансировщик нагрузки не должен размещаться между АктивнымШлюзом и ЕдинымАгентом, так как это может нарушить функциональность дампа памяти. URL должен содержать правильную схему и порт. |
Перезапустить АктивныйШлюз
Если вы измените конфигурацию АктивногоШлюза, вам необходимо перезапустить основную службу АктивногоШлюза , чтобы изменения вступили в силу.
Пример содержимого файла custom.properties
[collector]
DumpSupported = true
[dump]
# relative to collector root dir or absolute path
dumpDir = dump
# maximum size in GB for stored memory dump
maxSizeGb = 100
# maximum age in days for keeping stored memory dumps
maxAgeDays = 7
# maximum number of concurrent file uploads supported
maxConcurrentUploads = 5