注册
服务器CPU高问题分析
技术分享/ 文章详情 /

服务器CPU高问题分析

harrison辉 2025/09/05 25 0 0

US占比高
告警指标
执行如下语句,查看数据库服务进程,发现数据库主机CPU使用率高。
top -p 数据库服务进程

应急步骤
1.确认数据库状态:
—确认数据库进程正常。

ps –ef |grep dmserver

—然后通过以下语句查询数据库状态:

select instance_name,status$ from v$instance;

—确认无等待事务

select * from v$trxwait;

2.检查数据库当前会话,是否有运行中的异常SQL。如果有大量执行效率低的SQL,与应用确认是否可以限流、可以强制终止。
3.查询所有活动会话:

select
        sysdate                    ,
        SF_GET_SESSION_SQL(SESS_ID), --获取完整sql
        sess_id                    ,
        sess_seq                   ,
        sql_text                   ,
        state                      ,
        seq_no                     ,
        user_name                  ,
        trx_id                     ,
        create_time                ,
        clnt_ip
from
        v$sessions
where
        state='ACTIVE';

4.查询执行效率慢sql。

SELECT
        *
FROM
        (
                SELECT
                        sess_id                                         ,
                        sql_text                                        ,
                        datediff (ss, last_recv_time, SYSDATE) Y_EXETIME,
                        SF_GET_SESSION_SQL (SESS_ID) fullsql            ,
                        clnt_ip
                FROM
                        V$SESSIONS
                WHERE
                        STATE = 'ACTIVE'
        )
WHERE
      Y_EXETIME >= 2;--执行时间超2s,可以自定义该时间

5.终止异常会话:
在数据库里面执行SQL语句:sp_close_session(sess_id);
6.分析SQL执行计划,看是否有优化空间。将优化建议反馈应用、项目组进行紧急处理。
7.观察数据库活动会话是否正常。
SYS占比高
必要前提
服务器操作系统中有perf命令
排查流程
使用perf命令查看系统热点函数,将命令输出结果反馈给达梦数据库工程师,perf输出结果举例如下:
[root@DB1 ] perf top
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服