Дерево страниц
Skip to end of metadata
Go to start of metadata

Постановка задачи

При возникновении проблем с производительностью необходимо снимать SQL-логи для проблемных сценариев с баз CMJ/AF5

Инструмент: Настройки сервера
Статус

ГОТОВО

Комментарий

Действия

  1. Настроить логгирование SQL в server.properties:

    • sql.trace.warn.minTime=1000

    • sql.trace.warn.minRows=1000

    • sql.trace.resolveParams=true

  2. Настроить логгирование SQL в CMJ (cmj.properties):

    • cmj.log.hibernate.queries.time=1000

    • cmj.log.hibernate.queries.rows=1000

  3. Настроить логгирование классов ru.intertrust.cm.core.dao.impl.SqlLogger (уровень WARN) и ru.intertrust.cmj.pkd.loader.PkdStats (DEBUG) в 2 разных файла

  4. Перезапустить сервер приложений

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

Съём логов

  1. Засечь время начала
  2. Воспроизвести сценарий
  3. Засечь время окончания
  4. Вырезать соответствующие куски логов (файлов логов сервера приложений для классов  ru.intertrust.cm.core.dao.impl.SqlLogger и ru.intertrust.cmj.pkd.loader.PkdStats или файлов PostgreSQL, в зависимости от выбранного подхода)
  5. Если используется pgBadger, то "пропустить куски логов PostgreSQL через него"

В идеале, логи лучше снимать по окончанию рабочего дня, когда отсутствует фоновая "шумовая" нагрузка, но это не обязательно.