一次数据库CPU使用100%异常处理及分析报告

来源:这里教程网 时间:2026-03-03 21:39:34 作者:

故障描述

问题 及故障: 3 1 日下午 5 点接到运维部门反馈开发数据库非常慢,怀疑是内存参数没有配置好。请求技术支持。

故障现象:服务器执行命令卡顿。

问题 分析

DBA提前做了一个 下午 2 点到 3 点的数据库的 AWR 报告 通过分析 发现数据库的负载并不高 为了进一步确认情况,远程登陆到数据库服务器,确实很卡,通过 OS 命令发现 CPU 当前仍然使用率很高, 使用 dbms_workload_repository.create_snapshot() 命令 采集最新 快照 生成最新的 AWR 报告进行分析 仍然未 发现 CPU 使用率高的迹象 ,不是数据库负载高引起的数据库慢

继续通过 top vmstat 命令查看系统负载情况, CPU 使用率 100% load average 负载很高和 vsmstat r 队列一致,进程中看不到占用 cpu 高的进程。 top 命令查询结果:     vmstat 命令查询结果: 发现 run 队列非常高。  

 

检查到这里怀疑系统被攻击了,下面就是要找到系统的 CPU 消耗在哪里了。需要用到 linux 系统提供的 perf 工具( perf Linux 下的一款性能分析工具,能够进行函数级与指令级的热点查找 )。接下来协调客户安装 perf 工具。   P erf 命令查询结果:

perf top -s comm,pid,symbol    --   # 显示调用 symbol 的进程名和进程号 [root@bogon ~]# perf top -s comm,pid,symbol   20.00%  -bash    121734 :-bash  [.] 0x000000000000908b   14.29%  -bash   100095:-bash  [.] 0x000000000000908b    5.71%  -bash     6584:-bash  [.] 0x00007f8fb877f1f4    5.71%  -bash     6612:-bash  [.] 0x00007f8adf0dbd37    5.71%  -bash   100095:-bash  [.] 0x0000000000009088    2.86%  -bash     6419:-bash  [.] 0x00007fbd85b09cfc    2.86%  -bash     6419:-bash  [.] 0x00007fbd85b0a164    2.86%  -bash     6612:-bash  [.] 0x00007f8adf0dbb4c    2.86%  -bash     6612:-bash  [.] 0x00007f8adf410087    2.86%  -bash     6638:-bash  [.] 0x00007feb9691130d    2.86%  -bash     6638:-bash  [.] 0x00007feb96911726    2.86%  -bash     6638:-bash  [.] 0x00007fec2bafbcb8    2.86%  -bash     6639:-bash  [.] 0x00007feb968f200d    2.86%  -bash     6639:-bash  [.] 0x00007feb968f25ee    2.86%  -bash     6639:-bash  [.] 0x00007feb968f261e    2.86%  -bash    19756:-bash  [.] 0x00007fef63db617f    2.86%  -bash    19756:-bash  [.] 0x00007fef63db68e3    2.86%  -bash    19756:-bash  [.] 0x00007fef63db6a15    2.86%  -bash    19756:-bash  [.] 0x00007fef63db6a47    2.86%  -bash    32883:-bash  [.] 0x0000000000009088    2.86%  -bash    32883:-bash  [.] 0x000000000000908b    2.86%  -bash    32883:-bash  [.] 0x00000000000090a0    1.16%  -bash     6408:-bash  [.] 0x00007f73948e78e3    1.16%  -bash     6408:-bash  [.] 0x00007f73948e7905    1.16%  -bash     6408:-bash  [.] 0x00007f73948e7931    1.16%  -bash     6408:-bash  [.] 0x00007f73948e79f1    1.16%  -bash     6408:-bash  [.] 0x00007f73948e7a43    1.16%  -bash     6408:-bash  [.] 0x00007f742ab7dcb9    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b09a1b    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b09c25    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b09f36    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b0a036    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b0a0a0    1.16%  -bash     6419:-bash  [.] 0x00007fbd85b0a21d    1.16%  -bash     6558:-bash  [.] 0x00007fdd6bd6a79c    1.16%  -bash     6558:-bash  [.] 0x00007fdd6bd6a7c2    1.16%  -bash     6558:-bash  [.] 0x00007fdd6bd6a938    1.16%  -bash     6558:-bash  [.] 0x00007fdd6bd6a947    1.16%  -bash     6569:-bash  [.] 0x00007fe833a8984f    1.16%  -bash     6569:-bash  [.] 0x00007fe833a8986b    1.16%  -bash     6569:-bash  [.] 0x00007fe833a89e31    1.16%  -bash     6569:-bash  [.] 0x00007fe833a89ea5    1.16%  -bash     6569:-bash  [.] 0x00007fe833a89ed6    1.16%  -bash     6569:-bash  [.] 0x00007fe833a89f10    1.16%  -bash     6569:-bash  [.] 0x00007fe833a89fa2    1.16%  -bash     6584:-bash  [.] 0x00007f8fb877e835    1.16%  -bash     6584:-bash  [.] 0x00007f8fb877eda4    1.16%  -bash     6584:-bash  [.] 0x00007f8fb877edf9    1.16%  -bash     6584:-bash  [.] 0x00007f8fb877ee0e   进入到 121734 进程目录查看: [root@bogon]# cd /proc/121734 [root@bogon 121734]# ls -la total 0 dr-xr-xr-x   9 oracle oinstall 0 Feb 24 09:44 . dr-xr-xr-x 383 root   root     0 Dec 14 14:22 .. dr-xr-xr-x   2 oracle oinstall 0 Mar  2 11:10 attr -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 autogroup -r--------   1 oracle oinstall 0 Mar  2 11:10 auxv -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 cgroup --w-------   1 oracle oinstall 0 Mar  2 11:10 clear_refs -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 cmdline -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 comm -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 coredump_filter -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 cpuset lrwxrwxrwx   1 oracle oinstall 0 Mar  2 11:10 cwd -> /var/tmp/.systemd -r--------   1 oracle oinstall 0 Mar  2 11:10 environ lrwxrwxrwx   1 oracle oinstall 0 Mar  2 11:10 exe -> /var/tmp/.systemd/-bash (deleted) dr-x------   2 oracle oinstall 0 Mar  2 11:10 fd dr-x------   2 oracle oinstall 0 Mar  2 11:10 fdinfo -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 gid_map -r--------   1 oracle oinstall 0 Mar  2 11:10 io -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 limits -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 loginuid dr-x------   2 oracle oinstall 0 Mar  2 11:10 map_files -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 maps -rw-------   1 oracle oinstall 0 Mar  2 11:10 mem -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 mountinfo -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 mounts -r--------   1 oracle oinstall 0 Mar  2 11:10 mountstats dr-xr-xr-x   6 oracle oinstall 0 Mar  2 11:10 net dr-x--x--x   2 oracle oinstall 0 Mar  2 11:10 ns -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 numa_maps -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 oom_adj -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 oom_score -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 oom_score_adj -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 pagemap -r--------   1 oracle oinstall 0 Mar  2 11:10 patch_state -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 personality -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 projid_map lrwxrwxrwx   1 oracle oinstall 0 Mar  2 11:10 root -> / -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 sched -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 schedstat -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 sessionid -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 setgroups -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 smaps -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 stack -r--r--r--   1 oracle oinstall 0 Feb 24 09:44 stat -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 statm -r--r--r--   1 oracle oinstall 0 Mar  2 10:44 status -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 syscall dr-xr-xr-x   3 oracle oinstall 0 Mar  2 10:44 task -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 timers -rw-r--r--   1 oracle oinstall 0 Mar  2 11:10 uid_map -r--r--r--   1 oracle oinstall 0 Mar  2 11:10 wchan   接下来检查是否在 crontab 中配置了自动执行:   lrwxrwxrwx   1 oracle oinstall 0 Mar  2 11:10 exe -> /var/tmp/.systemd/-bash (deleted) 定时任务正好和高 cpu 进程操作内容吻合,上面的排查过程反馈给客户,客户确认被攻击了。

问题处理

1 、删除 crontab 中异常作业。 2 、删除异常进程脚本。

建议 总结

1、 操作系统层面做好安全加固。 2、 使用专门的安全软件进行防护。 3、 对于主机 CPU 使用率很高,但是又无法看到使用率高的进程,建议使用 perf 工具进行分析。

相关推荐