记一次服务器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
问题解决了,原因也找到了。自己该写一个服务器资源监控脚本了。
以上是记一次服务器CPU跑满事件的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

游戏因消耗大量资源而导致电脑运行速度变慢是常见现象。了解游戏时CPU的使用率是至关重要的,这样可以避免过度负荷。因此,掌握适当的CPU使用率是保持游戏体验流畅的关键。在本文中,我们将探讨游戏运行时CPU应该达到的合适使用率。游戏时的CPU利用率CPU使用率是指衡量处理器工作负载的一个重要指标,取决于CPU的性能规格。功率更大的CPU通常具有更高的使用率。拥有更多核心和线程的CPU可以提高系统的整体性能。多线程支持有助于充分发挥CPU的潜力。在游戏中,CPU使用率取决于处理器的利用率,这可影响游戏

很多用户在使用Win11系统时发现电脑运行不够流畅,想要提升CPU性能,但不清楚如何操作。下面将详细介绍如何在Win11系统中设置CPU性能至最高,让您的电脑更加高效。设置方法:1、右击桌面上的”此电脑”,选择选项列表中的”属性”。2、进入到新的界面后,点击”相关链接”中的”高级系统设置”。3、在打开的窗口中,点击上方中的”高级”选项卡,接着点击”性能”下方中的&

电脑CPU如何超频随着科技的不断进步,人们对于电脑性能的需求也越来越高。而一种有效的提升电脑性能的方法就是通过超频(overclocking)来增加CPU的工作频率。超频可以使CPU更快地处理数据,从而提供更高的计算能力。那么,电脑CPU如何超频呢?下面将为大家介绍超频的基本原理和具体操作方法。首先,让我们了解一下超频的原理。CPU的工作频率是由主板上的晶振

英特尔XTU是一款强大的应用程序,可让您轻松管理计算机的性能。您可以通过调整CPU电压来解决过热问题,或者通过超频来提升性能。在这篇文章中,我们将探讨如何利用英特尔XTU来优化计算机的性能,无论是调整电压还是进行超频。欠压和超频对CPU有什么作用?在我们继续学习如何对CPU进行欠压和超频之前,首先必须了解它们是什么。欠电压指的是逐渐降低CPU所需的电压。这一过程有助于减少热量排放,因为高电压会导致更高的温度。通过减少CPU的电压供应,可以有效地降低温度。如果笔记本在发热后开始减速,应及时解决问题

cpu盒装和散装的区别:1、质量;2、保修期;3、风扇;4、价格;5、包装;6、销售渠道。详细介绍:1、质量,无论是盒装还是散装,CPU本身的质量是没有任何差别的,它们都由同一生产厂家制造,经过相同的品质测试和质量控制流程;2、保修期,盒装CPU通常提供更长的保修期,一般为三年,而散装CPU通常只有一年的保修期,这是因为盒装CPU通常是由官方或授权的经销商销售的等等。

1、首先我们右击任务栏空白处,选择【任务管理器】选项,或者右击开始徽标,然后再选择【任务管理器】选项。2、在打开的任务管理器界面,我们点击最右端的【服务】选项卡。3、在打开的【服务】选项卡,点击下方的【打开服务】选项。4、在打开的【服务】窗口,右击【InternetConnectionSharing(ICS)】服务,然后选择【属性】选项。5、在打开的属性窗口,将【打开方式】修改为【禁用】,点击【应用】后点击【确定】。6、点击开始徽标,然后点击关机按钮,选择【重启】,完成电脑重启就行了。

本站7月28日消息,据外媒TechRader报道,富士通详细介绍了计划于2027年出货的FUJITSU-MONAKA(以下简称MONAKA)处理器。MONAKACPU基于“云原生3D众核”架构,采用Arm指令集,面向数据中心、边缘与电信领域,适用于AI计算,能实现大型机级别的RAS1。富士通表示,MONAKA将在能效和性能方面实现飞跃:得益于超低电压(ULV)工艺等技术,该CPU可实现2027年竞品2倍的能效,冷却无需水冷;此外该处理器的应用性能也可达对手2倍。在指令方面,MONAKA配备的矢量

英特尔ArrowLake预计将基于与LunarLake相同的处理器架构,这意味着英特尔全新的LionCove性能核心将与经济的Skymont效率核心相结合。而LunarLake仅作为ava推出
