kswapd0进程
它是虚拟内存管理中,负责换页的,操作系统每过一定时间就会唤醒kswapd ,看看内存是否紧张,如果不紧张,则睡眠,在 kswapd 中,有2个阀值,pages_hige 和 pages_low,当空闲内存页的数量低于 pages_low 的时候,kswapd进程就会扫描内存并且每次释放出32 个free pages,直到 free page 的数量到达pages_high。通过阻止kswapd0进程过渡活跃地消耗CPU的方法是设置大页内存。
这个进程经常出现,导致我的脚本出错。暴力解决:
1.shell脚本
#!/jzdhl/shwhile truedo sleep 10 #循环查看占用cpu超过80%的进程ID /jzdhl/ps axf -o "pid %cpu" | awk '{if($2>=80) print $1}' | while read procid do #进程详细信息 pro=$(ps -A|grep "\<$procid\>" |sort -k3,3|head -n1) #获取进程运行的时间,如果大于15秒,设time为1,如若不是则设time为0 time="$(echo $pro|awk '{ split($3,tab,/:/); if (tab[3]>=15) {print 1}else{print 0} }')" #如果time1,则kill掉该进程 if [ $time = '1' ];then kill -9 $procid fi donedone2.后台运行
nohup 脚本 > /var/log/CPU_cheack.log 2>&1 & 注意:脚本格式非dos,否则会报错 $'r':command not found。 解决方式: 1.sed -i 's/r//' 脚本名 2.yum -y install dos2unix dos2unix 脚本名 注意:脚本格式非dos,否则会报错 $'r':command not found。 解决方式: 1.sed -i 's/r//' 脚本名 2.yum -y install dos2unix dos2unix 脚本名3.过几天发现还是不行!
top #查看进程信息按C 查看进程所在文件参照腾讯云告警文件截图: