Как найти запросы на блокировку ожидания на AgentGraph?

Я страдаю от медленной транзакции AgensGraph. Загрузка процессора крайне низкая. Я предполагаю, что ситуация ожидания блокировки.

Как найти запросы блокировки-ожидания?

1 ответ

Вы можете попробовать журнал блокировки ожидания AgensGraph.

Сначала измените параметры на "postgresql.conf"

log_lock_waits = on
deadlock_timeout = 1s

Во-вторых, перезапустите AgensGraph.

$ ag_ctl stop
waiting for server to shut down.... done
server stopped
$ ag_ctl start
server starting

Наконец, запустите запросы и проверьте файл журнала.

[Сессия 1: блок транс]

agens=# begin;
BEGIN
agens=# create (:n{id:1});
GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0)
agens=# rollback;
ROLLBACK
agens=# 

[Session2: транзакция ожидания блокировки]

agens=# create (:n{id:1});
GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0)

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

LOG:  process 3908 still waiting for ShareLock on transaction 1586 after 1001.058 ms
DETAIL:  Process holding the lock: 3906. Wait queue: 3908.
CONTEXT:  while inserting index tuple (0,7) in relation "n_id_idx"
STATEMENT:  create (:n{id:1});
LOG:  process 3908 acquired ShareLock on transaction 1586 after 4639.630 ms
CONTEXT:  while inserting index tuple (0,7) in relation "n_id_idx"
STATEMENT:  create (:n{id:1});
Другие вопросы по тегам