服务器CPU异常原因及如何排查

1.查看服务器CPU飙升卡爆,最后发现是服务器在跑挖矿程序,CPU使用率奇高。在此总结一下排查经过。

  首选发现CPU飙升,服务器卡死,查看异常进程PID
    #top                          #查看各个进程的cpu使用情况,默认按cpu使用率排序

  2.结束掉异常进程

    #kill -9/15 pid                        #终止指定进程,-9 是强制终止进程,-15 是软结束进程

  3.发现刚结束的异常进程又自动启动

    #ls -l /proc/$PID/exe                   #查看PID启动文件的路径
    #ls -l /proc/$PID/cwd                   #查看PID执行目录的路径

  4.删除运行文件,但是15s后又自动恢复文件运行了。这里可以肯定的是有定时器不断下载文件和启动程序。

    #在定时器配置目录查看是否存在异常定时器配置 /var/spool/cron/root 和/etc/crontab 和/etc/rc.lcoal
    #tail -f /var/log/cron                   #查看定时器启动日志,跟踪自启动程序

  5.发现/var/spool/cron/root 里面配置了一个不断下载的定时器任务,删除定时器,问题解决。

  如何查找一个进程信息
  查看所有进程信息
    #top                         #查看各个进程的cpu使用情况,默认按cpu使用率排序
    #ps aux | less                       #显示所有运行中的进程,q退出
  根据进程名称查找PDI
    #ps -aux|grep test.jar | grep -v grep            #查看test.jar进程号
    #ps -ef|grep test.jar | grep -v grep            #查看test.jar进程号
  查看线程信息
    #top -Hp pid                          #查看该进程下各个线程的cpu使用情况
    #printf "%x\n" pid                       #将线程pid转换为十六进制 8f7
    #jstack pid | grep 8f7                       #查看pid进程里面的线程信息,线程Id为十六进制
  查看进程相关文件:/proc 目录是存放系统进程文件信息的,可以查看到进程详细信息。
    #lsof -p pid                         #查看该进程打开的文件
    #cat /proc/pid/maps                      #查看pid线程内存分配
    #ls -l /proc/$PID/exe                     #查看PID启动文件的路径
    #ls -l /proc/$PID/cwd                     #查看PID执行目录的路径
    #cat /proc/$PID/status                  #查看PID详细的内存占比

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值