PGXC_THREAD_WAIT_STATUS
PGXC_THREAD_WAIT_STATUS视图可用来查看集群全局各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态,从而更容易定位进程停止响应问题以及类似现象的原因。
PGXC_THREAD_WAIT_STATUS视图和PG_THREAD_WAIT_STATUS视图列定义完全相同,这是由于PGXC_THREAD_WAIT_STATUS视图本质是到集群中各个节点上查询PG_THREAD_WAIT_STATUS视图汇总的结果。
名称 | 类型 | 描述 |
|---|---|---|
node_name | text | 当前节点的名称。 |
db_name | text | 数据库名称。 |
thread_name | text | 线程名称。 |
query_id | bigint | 查询ID,对应debug_query_id。 |
tid | bigint | 当前线程的线程号。 |
sessionid | bigint | 会话ID。 |
lwtid | integer | 当前线程的轻量级线程号。 |
psessionid | bigint | 父会话ID。 |
tlevel | integer | streaming线程的层级。 |
smpid | integer | 并行线程的ID。 |
wait_status | text | 当前线程等待状态的详细信息。 |
wait_event | text | 当前线程正在等待的事件。 |
locktag | text | 当前线程正在等待锁的信息。 |
lockmode | text | 当前线程正等待获取的锁模式。 |
block_sessionid | bigint | 阻塞当前线程获取锁的会话标识。 |
global_sessionid | text | 全局会话ID。 |
例如:
在coordinator1执行一条语句之后长时间没有响应。可以创建另外一个连接到coordinator1上,查询coordinator1上的线程状态。
1 2 3 4 5 6 7 8 9 10 11 12 13 | openGauss=# SELECT * FROM pg_thread_wait_status WHERE query_id > 0; node_name | db_name | thread_name | query_id | tid | lwtid | ptid | tlevel | smpid | wait_status | wait_event --------------+----------+--------------+----------+-----------------+-------+-------+--------+-------+---------------------- coordinator1 | postgres | gsql | 20971544 | 140274089064208 | 22579 | | 0 | 0 | wait node: datanode4 | (1 rows) openGauss=# SELECT * FROM pgxc_thread_wait_status WHERE query_id > 0; node_name | db_name | thread_name | query_id | tid | sessionid | lwtid | psessionid | tlevel | smpid | wait_status | wait_event --------------+----------+--------------+-------------------+----------------+----------------+--------+------------+--------+-------+-------------+------------ coordinator1 | postgres | gsql | 77687093572155050 | 47212704827136 | 47212704827136 | 63191 | | 0 | 0 | none | coordinator2 | postgres | coordinator1 | 77687093572155050 | 47403117319936 | 47403117319936 | 159322 | | 0 | 0 | none | data_node1 | postgres | coordinator1 | 77687093572155050 | 47723869374208 | 47723869374208 | 159320 | | 0 | 0 | none | data_node2 | postgres | coordinator1 | 77687093572155050 | 47852867290880 | 47852867290880 | 159321 | | 0 | 0 | none | (4 rows) |

