记录一次linux负载和总cpu高,top查看不到高占用cpu资源的相关问题排查

平时服务器负载也就在1-3这样高的时候10多点,这几天服务器负载一直在20多,但是不影响用加上比较忙没处理,今天抽空处理一下,在此记录以后遇到相同问题做参考。
首先上图(将就看下之前20多负载的图没找到 这个是服务器有人下载东西很卡时候截的图)
在这里插入图片描述
这里us使用了50多,但找不到占用资源非常高的进程。(以前遇到的木马脚本可以直接看到,顺着他去找到源码删除掉再kill进程删除相关定时任务就可以)
百度然后就是一堆答案:
1.系统内核版本问题
2.io带宽问题
3.某个程序调用子程序失败了然后频繁尝试重新调用,每次初始化占用cpu
4.中了木马
这里首先要先定位到是哪个方向的问题。如果我们平时细心观察服务器就可以排除前几项,平时服务器好好的突然就飙高了,这1,2两项应该不存在,第三个最近没上什么特殊功能,没什么乱七八糟的调用,显然问题就在4服务器遭木马入侵了。(这里首先提供个思路,服务器平时运行好好的,突然出问题十有八九是有木马挖矿等等,除非最近上了什么程序导致死循环什么的但这种直接top就能看到你的程序cpu占用很高)
平时的中木马处理流程:
1、top查看服务器情况。
2、查找到异常高占用cpu的进程。
3、ps -ef | grep PID 查找相关运行脚本,删除脚本
4、crontab -l 查看异常定时任务 或者 /etc/crontab 或者 /etc/cron.d 查找异常定时任务 删除
5、进程kill掉。
但这次top没有找到,那就看看定时任务吧,果然发现有个异常定时任务,里面有个不认识ip,百度一搜是米国的,服务器果然被下了挖矿脚本。
根据一些关键词搜搜,醉了运行好几天了
在这里插入图片描述
接着用netstat -anp 会看到这个ip在其中出现
tcp 0 0 x.x.x.x:33708 198.46.202.146:80 ESTABLISHED -
tcp 0 0 x.x.x.x:33708 198.46.202.146:8899 ESTABLISHED bash
好多个,按照以前查杀木马情况 后面pid就是运行脚本了,但是这次bash好像并不是真正的。并且top中也没有出现。
接着参考这两篇文章 https://blog.csdn.net/w50feng/article/details/107034335,https://www.zhihu.com/question/59820313
找到 cat /etc/ld.so.preload 查看文件内容可以发现 它里面有地址又指向了 /usr/local/lib/ini.so /usr/local/lib/lib.so
在 /etc/除了ld.so.preload也找到文件ld.so.cache和ld.so.conf
在这里插入图片描述
接着就捣鼓捣鼓,把相应的脚本都删除,这中间也出现了 https://blog.csdn.net/w50feng/article/details/107034335 博文相同问题,Operation not permitted 删不掉没权限。
在这里插入图片描述
这篇博文lsattr查看是-------i------- 我那个是-------ia--------e----,但是我没看懂他那啥lockr授权问题。chattr -i ini.o chattr -a ini.o这样直接稀里糊涂操作一波,对应的 /usr/local/lib/ini.so和/usr/local/lib/lib.so都能删除了。再将之前的ld.so.preload 、ld.so.cache和ld.so.conf 都删除掉。
这时候top再看的时候会出现异常线程。
在这里插入图片描述
在这里插入图片描述
这边需要ps -ef | grep PID查询下脚本运行位置(我这后面又出现一次两次挖矿脚本的PID不一样)
在这里插入图片描述
可以看到在脚本的位置。到他目录下 ls -a 查看(注意如果使用xshell的ftp看不到这脚本)
在这里插入图片描述
可以看到里面.ini和.lib都是相关文件 rm -f删除掉 出现Operation not permitted问题和上面一样赋权限删除。

然后再把 bash和.lib 进程停止。把相应的cron都删除下。服务器负载正常了。

楼主对linux这些知识不太精通,里面的很多操作都是凭感觉来的,这里总结了一个最明显的特点,看脚本文件的修改时间。因为楼主观察了这几个脚本文件修改时间都是2021-01-22 11:01分,所以根据这个特点来查找相关的疑似木马脚本计较方便。

以上便是这次排除服务器异常的操作,如果说的错误的地方不准确的地方还请大牛指正。

参考博文:
https://blog.csdn.net/w50feng/article/details/107034335
https://www.zhihu.com/question/59820313
cron清理可以按照这个博文看下有没有对应的执行脚本
https://www.cnblogs.com/hubavyn/p/4607094.html

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux排查CPU负载的原因通常有以下几个方面: 1. 进程负载:可以通过使用top命令或htop命令查看当前系统的进程状态,找到最耗CPU的进程,并检查其是否正常运行。如果是某个进程导致的负载,可以进一步使用ps命令查看该进程的详细信息,并根据需要采取相应的措施,如重新启动进程或优化进程配置。 2. 线程负载:如果是线程导致的负载,可以使用工具如top、htop或pidstat等来找到最耗CPU的线程,并将线程PID转化为16进制。然后根据线程的PID进一步分析线程的运行状态和资源消耗情况,进行排查和调优。 3. 内存泄漏和频繁GC:内存泄漏和频繁的垃圾回收(GC)也可能导致CPU负载。可以通过使用jstat命令或Java监控工具(如VisualVM)来检查Java应用的内存使用情况,并查看是否存在内存泄漏或GC频繁的问题。如果存在问题,可以通过调整JVM启动参数或优化代码来解决。 4. 其他系统资源问题:除了CPU负载外,还可能存在其他系统资源问题,如内存被耗尽、磁盘IO或网络出现问题等。可以使用命令如free、df、iostat和netstat等来检查系统的内存、磁盘IO和网络等情况,以确定是否存在相关问题相关问题: 1. 如何使用top命令查看系统进程状态? 2. 如何使用ps命令查看进程详细信息? 3. 如何使用jstat命令检查Java应用的内存使用情况?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值