首页 » 网站建设 » php跑满cpu技巧_记一次做事器CPU跑满事宜

php跑满cpu技巧_记一次做事器CPU跑满事宜

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

事情经由

昨天早上,打开电脑创造自己的博客网站打开不了,准备远程登录做事器查看问题,创造做事器远程不上。
没办法,登录阿里云后台,重启做事器。
重启完成后,网站能正常打开,以是当时就不以为然,以为阿里云那边是不是出了什么毛病。

php跑满cpu技巧_记一次做事器CPU跑满事宜

到了下午的时候,创造网站又打不开了,而且又远程连接不了做事器。
进入阿里云掌握台,查看监控创造cpu跑满了。
只能再重启做事器,等重启完成后再远程连接上去,这次须要好好排查问题。

php跑满cpu技巧_记一次做事器CPU跑满事宜
(图片来自网络侵删)

办理问题

当时首先想到的是中病毒了,先不管那么多,第一步是找到那些耗cpu的进程杀去世。
利用top命令,查看耗cpu的进程有哪些。
一看就明白了,都是bzip2搞得鬼。

杀进程的过程创造一个问题,便是这些进程杀去世了,过一会又涌现了。
这种征象,我知道肯定要找到他们的父进程,擒贼先擒王。

# ps -lA | grep bzip2

0 R 0 1965 1964 44 80 0 - 3435 - ? 00:01:43 bzip2

0 S 0 1981 1980 33 80 0 - 3435 pipe_w ? 00:00:56 bzip2

0 R 0 1997 1996 30 80 0 - 3435 - ? 00:00:31 bzip2

0 R 0 2013 2012 27 80 0 - 3435 - ? 00:00:07 bzip2

0 R 0 2024 2023 15 80 0 - 3435 - ? 00:00:00 bzip2

但是创造他们的ppid不是同一个,这就让我很迷惑了。
我打算用进程树看看

pstree -up

这时候,我就知道了,原来是自己的定时脚本有问题。
那么我须要做以下几件事:

关闭crond做事crontab -e 将weekly.sh去掉杀掉那些耗cpu的进程

# 关闭

[root@iz8vb626ci0aehwsivxaydz ~]# kill 1622

[root@iz8vb626ci0aehwsivxaydz ~]# systemctl status crond

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: inactive (dead) since Tue 2019-11-12 10:44:32 CST; 10s ago

Main PID: 1622 (code=exited, status=0/SUCCESS)

# 修正crontab -e

# 杀掉耗cpu进程,下面的命令实行了好几遍,才将所有耗cpu进程全部杀掉了

ps -lA | grep bzip2 | awk '{print $4}' | xargs -n 10 kill -9

问题缘故原由与思考

刚开始,我以为是自己的shell脚本有问题,涌现去世循环导致问题涌现。
但是查看脚本,创造没有问题,没有去世循环的情形涌现。
一韶光,百思不得姐。

#!/bin/bash

# 每周备份脚本

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

export

backdir=/backup/weekly # 备份目录

[ -z "$backdir" ] || mkdir -p $backdir

dirs=(/etc /home /root /usr /var/spool/cron /var/spool/at) # 须要备份的目录

for dir in ${dirs[@]}

do

if [ ! -d $dir ];then

continue

fi

cd $backdir

tar -jcpf $(basename $dir)_$(date +%Y%m%d).tar.bz2 $dir

done

# 删除mtime大于30天的文件

find $backdir -mtime +30 -name .tar.bz2 -exec rm -f {} \;

过了很永劫光,终于找到了缘故原由所在,原来是自己的定时任务写法有问题

3 1 /root/bin/weekly.sh 1>/dev/null 2>&1

我原来的想法是每周1凌晨3点实行一次备份脚本,但是这样写的结果是每周一凌晨3点的每分钟都会实行该脚本一次。
精确的写法该当如下:

# 每周一凌晨三点零一分实行该脚本

1 3 1 /root/bin/weekly.sh 1>/dev/null 2>&1

问题办理了,缘故原由也找到了。
自己该写一个做事器资源监控脚本了。

标签:

相关文章

php为无色透明技巧_水货钻石其实也还行

从各种钻石中,可以看到大大小小的“包裹体” 图片来源:参考文献包裹体的种类多样。比钻石形成更早的包裹体,叫“原生包裹体”;与钻石同...

网站建设 2024-12-19 阅读0 评论0

phpstudy发送gbk技巧_php的文件上传

这里首先声明一下这一章的内容比较多,比较难,你要抱着和自己去世磕的态度。细微之处不放过,多敲多练是王道。 学习就像爬山,得一步一步...

网站建设 2024-12-19 阅读0 评论0