Самоконтроль сервера

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

Самоконтроль настраивается при помощи следующих параметров серверной конфигурации:

  • server.self_object_id — ID объекта, используемого для самоконтроля сервера,

  • server.self_monitoring_period — Период между процессами самоконтроля сервера.

Процесс самоконтроля возвращает следующие данные:

  • Информация об утечках памяти,

  • Общее состояние памяти.

После выполнения процесса самоконтроля данные сохраняются в объекте, ID которого указано в параметре server.self_object_id. Также сервер сохраняет дамп памяти в следующий файл:

/tmp/saymon-rest-server-worker-<ID-объекта-самоконтроля>-<дата-и-время-дампа>.heapsnapshot
Если объект с ID, указанным в server.self_object_id не существует, то проверка не выполняется.

Результат самоконтроля имеет следующие поля:

Поле Описание

entityType

Числовой тип объекта системы, который использовался для процесса самоконтроля.

entityId

ID объекта системы, который использовался для процесса самоконтроля.

period

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

timestamp

Время запуска самоконтроля.

payload

Данные самоконтроля.

payload.eventLoopLagMs

Задержка работы основного потока сервера в миллисекундах.

payload.memory

Данные о памяти сервера.

payload.memory.leak

Есть ли утечка памяти на сервере?

payload.memory.leakInfo

Информация об утечке памяти.

payload.memory.usage

Информация об использовании памяти процессом сервера.

payload.memory.stats

Статистики использования памяти.

Использование памяти сервером

Пример статистики использования памяти
{
  rss: 23851008,
  heapTotal: 4907008,
  heapUsed: 2905912,
  external: 951886,
  arrayBuffers: 17574
}

Статистики использования памяти

Пример статистики использования памяти
{
  gcScavengeCount: 1,
  gcScavengeTime: 1100880, // ns
  gcMarkSweepCompactCount: 2,
  gcMarkSweepCompactTime: 21157231, // ns
  gcIncrementalMarkingCount: 0,
  gcIncrementalMarkingTime: 0, //ns
  gcProcessWeakCallbacksCount: 0,
  gcProcessWeakCallbacksTime: 0, // ns
  total_heap_size: 16097280, // bytes
  total_heap_size_executable: 3670016, // bytes
  total_physical_size: 10741880, // bytes
  total_available_size: 1487689928, // bytes
  used_heap_size: 5691584, // bytes
  heap_size_limit: 1501560832, // bytes
  malloced_memory: 8192,
  peak_malloced_memory: 1185464,
  gc_time: 4587251 // ns
}