在磐维数据库中如何杀会话这篇文章中提到,每个客户端会话都会在磐维服务进程中创建一个worker线程对应,具体可见:磐维数据库里如何杀会话 - 墨天轮
如果在生产环境中发现数据库服务器压力较大,根据CPU\内存使用情况排查到具体的占用资源高的线程号,该如何对应找到该线程是哪个会话在使用呢?可以使用如下SQL查询。
select pid,lwtid,state,query from pg_stat_activity a,dbe_perf.thread_wait_status s where a.pid=s.tid and lwtid in(19919); 19919是线程号
线程号可以通过:ps -T -p 15858方式获取,15858为磐维数据库进程号,磐维为单进程多线程模式。
dbe_perf.thread_wait_status各字段含义可参考:Thread Wait Status
pg_stat_activity各字段含义可参考:Pg Stat Activity