连接服务器时发现cpu使用率100%,使用top命令查看是kswapd0进程占用cpu极高
百度下后知道kswapd0进程的作用:
它是虚拟内存管理中,负责换页的,操作系统每过一定时间就会唤醒kswapd ,看看内存是否紧张,如果不紧张,则睡眠,在 kswapd 中,有2
个阀值,pages_hige 和 pages_low,当空闲内存页的数量低于 pages_low
的时候,kswapd进程就会扫描内存并且每次释放出32 个free pages,直到 free page
的数量到达pages_high。通过阻止kswapd0进程过渡活跃地消耗CPU的方法是设置大页内存。
刚开始以为是本身服务器内存小的问题后来翻阅了其他大佬的博客后使用netstat -antlp查看了下系统外部连接,发现存在一个意大利的ip占用kswapd0进程和荷兰的ip占用rsync进程,,经查询后rsync是一个数据传输工具,此时意识到了事情的严重性
此时开始查找进程占用的文件路径
[root@localhost 884]# cd /tmp/.X25-unix/
[root@localhost .X25-unix]# ls -a
. .. dota3.tar.gz .rsync
[root@localhost .X25-unix]# rm -rf .rsync/
因为没怎么用到perl 所以直接给perl改名mv /usr/bin/perl /usr/bin/perl-bak
然后锁定目录chattr +i /usr/bin #看自己情况操作
查询过后发现是使用prel写的一个脚本,删除整个文件夹后直接kill掉这两个进程,kill点之后发现这两个进程不在了cpu的使用率下来了观察一段时间后确定cpu使用率正常了
此时问题解决。