How to find the corresponding session in MogDB/openGauss from OS thread ID

诊断需求 当MogDB数据库由于某种原因占用了较大的系统负载,比如CPU占用接近100%,那么如何知道到底是数据库里的哪个会话或者哪些会话占用了资源?在Oracle数据库中,这样的问题诊断,通常都会关联 v$session, v$process, 以及操作系统top命令或者ps命令中查到的操作系统进程ID。但是MogDB本身是线程模型,在操作系统上只能看到一个进程号,那么该如何定位问题? 因为MogDB使用的是线程模型,与PostgreSQL的进程模型不同,在操作系统级别如果用lsof命令查看网络端口的接入,虽然是会看到有多个用户会话接入,但是在PID列只会显示进程ID,无法对应到线程。 $ lsof -i 4 -a -p `pgrep -u omm3 mogdb` COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mogdb 12027 omm3 8u IPv4…

Continue ReadingHow to find the corresponding session in MogDB/openGauss from OS thread ID