前言
昨天遇到了服务器很卡的问题,重启下及清理下服务器,当时正常了,但今天又重新远程服务器时,一直在连接中,最终是超时失败处理;
其实这个问题早几次就已经出现过,但没上心,毕竟重启大法好,而且可能是因为一直以来的脚本导致的,因此没怎么管;
但现在是重启后,就没跑脚本了,依然出现这情况,不能忍,因此就一起看看这个问题,篇幅很短,2-3分钟即可;
跟进
第一反应就是上阿里云远程看看,看到的内容是这样的:
密密麻麻一堆内容,但都是重复的,随便挑个关键词,直接某度搜索,如systemd-logind
,会看到以下内容:
看描述,跟Jb遇到的相似,那这玩意是什么?
看描述,是个系统服务啊,难道正如网上说的,这玩意会一直占用CPU?因此尝试了网上提供的解决方案-关闭systemd-logind
:
systemctl stop systemd-logind
复制代码
但是试了下,不管用啊。。
那就说明问题不是它,但是呢,一直远程失败,而且服务很卡,感觉就是CPU一直被占用,那就用top
来看下吧:
但是,因为服务器太卡了,输入一个字母等半天,因此决定重启服务器,重启后用top
观察:
结果发现一起来,就各种awk、sh、kill
等各种系统命令占用那么高的CPU?第一反应就是什么鬼?
继续放着观察,结果过几分钟,占比开始变了:
syslog
是系统日志啊,为啥会一直记录日志?
继续往下翻top
的记录,底部有新发现:
后面的记录都是跟上图一样,重复的;那问题来了,systemd_conjestion_helper
是什么?
一开始以为是系统脚本,但是网站找了半天,没有这样的文件名啊;既然如此,就下载下来吧;
有兴趣的小伙伴可自行下载:
链接:https://pan.baidu.com/s/1h6q4oOxHJL7BjS0fwas_dQ
提取码:ovbb
复制代码
打开文件,看顶部注释信息:
写着makeself
,不知道是什么,就网上找下:
这,一重启服务器就自动跑这个,是执行程序,并且网上没查到类似信息,这TM是被搞了?
顺着上面的截图,这个systemd_conjestion_helper
是在tmp
目录,那就看看这个目录下有什么?
卧槽,好多东西,因为不懂,所以不知道有啥用,但是systemd_conjestion_helper
绝逼有问题。。
再看看,下面有个root
目录,里面全都是.sh
。。
再看回刚下载的systemd_conjestion_helper
文件,内容太多了,不会一一看,直接搜索.sh
,发现有匹配结果:
行吧,虽然不知道这些是什么,但是感觉跟它们脱不了关系,因此直接把带有systemd
的文件全部rm
掉;
然后再重启服务器,开机持续观察top,至今4个小时暂时还没问题,至少还没出现单项占用CPU超过5%的进程;
小结
这问题应该是算到此结束了,这个问题,并不难,但是因为对这块不了解,花了很多时间去尝试跟查阅资料,也从没怀疑过服务器被干的情况,一直以为是自己服务器太烂导致的,也侧面反映出自身对Linux这块的不熟悉;
至于为什么会被搞,可能是之前在公网搭了个上传文件的功能,虽然只开放了几天,但因为写了个帖子,可能就被人利用了,建议能别放公网就尽量放内网。。
最后谢谢全干工程师@老罗的帮忙,不然一个人折腾半天都不知所云;