Сбор дампов памяти
ADQM поддерживает возможность автоматического формирования файлов дампов памяти (core dump) при аварийных завершениях процессов ClickHouse. Дамп памяти может быть полезен администратору или разработчику для анализа состояния системы в момент сбоя и устранения причины возникновения ошибки.
Включение сбора дампов памяти
Чтобы активировать в ADQM функциональность, обеспечивающую автоматическое сохранение дампа памяти при завершении процесса из-за какой-либо критической ошибки, необходимо выполнить последовательность описанных ниже шагов.
Выполнение действия сервиса ADQMDB
-
Запустите действие Manage auto core dump для сервиса ADQMDB.
Запуск действия Manage auto core dump -
В окне конфигурирования действия включите опцию Enable auto core dump и измените значения параметров хранения дампов при необходимости.
Настройка действия Manage auto core dump -
Нажмите Next, а затем — Run в окне подтверждения запуска действия.
После того как действие Manage auto core dump успешно выполнено, на хостах ADQM будет установлен пакет systemd-coredump.
Например, чтобы проверить, что сервис для сбора дампов памяти успешно установлен и запущен, на хосте ADQM с операционной системой Ubuntu выполните следующую команду:
$ systemctl status systemd-coredump.socket
Сервис должен иметь статус active (listening):
systemd-coredump.socket - Process Core Dump Socket
Loaded: loaded (/lib/systemd/system/systemd-coredump.socket; static)
Active: active (listening) since Mon 2025-12-01 07:16:43 UTC; 45min ago
Docs: man:systemd-coredump(8)
Listen: /run/systemd/coredump (SequentialPacket)
Accepted: 0; Connected: 0;
CGroup: /system.slice/systemd-coredump.socket
Также можно убедиться, что сбор дампов включен, с помощью параметра Auto Core Dump Service в секции Other на странице конфигурации сервиса ADQMDB — должно быть установлено значение true.
Конфигурация сервиса systemd-coredump
Конфигурационные параметры установленного сервиса systemd-coredump можно посмотреть в файле /etc/systemd/coredump.conf. При вызове действия Manage auto core dump устанавливаются следующие параметры сервиса (в приведенном списке указаны значения по умолчанию):
-
Storage=external— дампы памяти будут храниться в каталоге /var/lib/systemd/coredump/; -
MaxUse=100G— максимальный объем общего дискового пространства, который может быть использован для хранения дампов памяти (при достижении этого предела старые дампы будут удаляться); -
ProcessSizeMax=50G— максимальный размер образа памяти аварийного процесса, который может быть сохранен; -
ExternalSizeMax=100G— максимальный размер файла дампа памяти при хранении типаexternal.
|
ВАЖНО
В версиях ADQM до 25.8.16.34 создаваемые файлы дампов памяти по умолчанию имеют статус |
Отключение сбора дампов памяти
Для отключения сбора дампов памяти запустите действие Manage auto core dump с деактивированной опцией Enable auto core dump.
Пример
Ниже приведен пример включения сбора дампов памяти на хостах ADQM с операционной системой Ubuntu и загрузки дампа в отладчик gdb для анализа трассировки стека.
-
Выполните действие Manage auto core dump для сервиса ADQMDB с включенной опцией Enable auto core dump.
-
Установите пакет
adqm-clickhouse-common-dbgsym:$ sudo apt install adqm-clickhouse-common-dbgsym -
Установите отладчик
gdb:$ sudo apt install gdb -
Проверьте, что каталог /var/lib/systemd/coredump/ не содержит файлов дампов памяти:
$ sudo coredumpctl listNo coredumps found.
-
Определите PID процесса ClickHouse:
$ pgrep -l clickhouseПример PID процесса:
6812 clickhouse-serv
-
C помощью команды
KILLотправьте сигналSIGTRAPпроцессу ClickHouse:$ sudo KILL -s SIGTRAP 6812 -
Проверьте, что файл дампа создан:
$ sudo coredumpctl listTIME PID UID GID SIG COREFILE EXE SIZE Mon 2025-12-01 09:31:36 UTC 6812 997 997 SIGTRAP present /usr/bin/clickhouse 13.3M
-
Загрузите дамп в отладчик
gdb:$ sudo coredumpctl gdb 6812Используйте команду
bt(backtrace) для просмотра стека вызовов.
Пример отображения обратной трассировки стека вызовов в отладчике gdb