不灭的焱

革命尚未成功,同志仍须努力 下载Go 下载Java

作者:AlbertWen  添加时间:2026-01-19 14:52:50  修改时间:2026-01-19 17:56:48  分类:03.MySQL/PgSQL/Redis  编辑

售后工程师:

久等了,这边核实,您的实例对应时间点前后,一直有长事务存在,见图1 2,建议您核实下业务侧是否有周期性的定时任务之类的,谢谢 参考文档: RDS PostgreSQL CPU利用率高问题

https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/troubleshoot-high-cpu-utilization?scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%40202159._.ID_help%40%40%E6%96%87%E6%A1%A3%40%40202159-RL_cpu-LOC_doc%7EUND%7Eab-OR_ser-PAR1_2102029b17687537450963180d2662-V_4-PAR3_o-RE_new6-P0_0-P1_0&spm=a2c4g.11186623.help-search.i245

售后工程师:

1.pg_stat_activity找当前活跃、可能占 CPU 的会话,CPU高的时候可以执行下:

ELECT
    pid,
    usename,
    application_name,
    client_addr,
    state,
    wait_event_type,
    wait_event,
    now() - query_start AS exec_duration,
    query
FROM pg_stat_activity
WHERE state = 'active'
  AND wait_event IS NULL
ORDER BY exec_duration DESC;

 

2.参考以下命令查询最耗时的SQL,一般就是导致问题的直接原因

select * from pg_stat_statements order by total_time desc limit 5;

 

参考以下SQL语句,查询读取Buffer次数最多的SQL,这些SQL可能由于所查询的数据没有索引,而导致了过多的Buffer读,也同时大量消耗了CPU。

select * from pg_stat_statements order by shared_blks_hit+shared_blks_read desc limit 5;

售后工程师:

尊敬的用户,您好: 我们为您进行工单总结,内容如下,请您查阅。
======================================
问题描述: 数据库CPU持续飙至100%
解决方案: 核实业务侧是否有周期性定时任务,查询活跃会话及最耗时SQL,检查Buffer读取次数。
======================================
阿里云售后提示您:
1.如果后续您对实例或数据有修改、变更等风险操作,务必注意容灾、容错能力,确保数据安全。
2.如果工单中您有授权提交登录密码等安全信息,建议您及时修改。

 

 

本地日志路径:

  • /alidata/server/informat_home/jazmin_server/log/TableItAccountSystem_prd.log
  • /alidata/server/informat_home/jazmin_server/log/TableItBizSystem_prd_0.log

重启服务

cd /alidata/server/informat_home/jazmin_server
./restartall.sh