通过 top命令获取消耗CPU最多的会话
• mogdb/opengauss使用多线程模式
• 获取mogdb pid
• ps -ef | grep mogdb
可以看到当前服务器上运行的Mogdb数据库的PID为22203.
• top –H –p
通过top命令查看占用cpu高的线程ID。
检查特定thread的信息 – dbe_perf.THREAD_WAIT_STATUS
• \d dbe_perf.THREAD_WAIT_STATUS
select tid,lwtid,query_id,wait_status,wait_event , block_sessionid • from dbe_perf.THREAD_WAIT_STATUS where lwtid = <os thread id> ;
复制
检查特定session的信息 – dbe_perf.SESSION_STAT_ACTIVITY --dbe_perf.THREAD_WAIT_STATUS
\d dbe_perf.SESSION_STAT_ACTIVITY
复制
\d dbe_perf.THREAD_WAIT_STATUS
复制
select * from dbe_perf.session_stat_activity where pid=<db tid of thread>;
复制
select pid,sessionid,tid,a.query_id,wait_event,query from dbe_perf.SESSION_STAT_ACTIVITY a,dbe_perf.THREAD_WAIT_STATUS b where pid=tid and lwtid = <os thread id>;
复制
通过线程号关联dbe_perf.SESSION_STAT_ACTIVITY、dbe_perf.THREAD_WAIT_STATUS 两张视图查询出活跃会话的详细信息。
可以看到会话中执行的sql是两个表关联查看两个表的信息。
可以看到两张表是很大的而sql文本中没有对两张表进行条件过滤所以只能以全表扫描的方式进行NL连接导致占用大量CPU。我们通过分析活跃会话成功的定位了消耗高的会话和SQL,定位到问题之后进行处理优化便能降低数据库的负载提升数据库运行效率。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
openGauss荣获中国软件行业协会多奖项,技术升级再创行业新高度
openGauss
440次阅读
2025-04-30 14:30:58
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
MogDB
299次阅读
2025-04-17 10:41:41
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
云和恩墨
198次阅读
2025-04-16 09:52:02
GitCode 成 openGauss 新归宿,国产开源数据库里程碑事件
严少安
155次阅读
2025-04-27 11:37:53
荣誉时刻!openGauss认证证书快递已发,快来看看谁榜上有名!
墨天轮小教习
141次阅读
2025-04-23 17:39:13
单个执行机并行执行MySQL到openGauss数据迁移子任务
Clipnosis
123次阅读
2025-04-30 16:39:58
openGauss6.0.0适配操作系统自带的软件,不依赖三方库
来杯拿铁
90次阅读
2025-04-18 10:49:53
opengauss使用gs_probackup进行增量备份恢复
进击的CJR
85次阅读
2025-04-09 16:11:58
Postgresql数据库单个Page最多存储多少行数据
maozicb
78次阅读
2025-04-23 16:02:19
openGauss新特性 | openGauss-DataVec向量数据库特性介绍
openGauss
47次阅读
2025-04-17 10:41:47