致力于为用户提供真实的
主机测评数据及优惠信息

[经验] 宝塔面板的0点CPU高占用bug解疑

网友 imes 说:

*帖最后由 imes 于 2022-6-10 16:18 编辑

bug找到了,点击这里https://hostloc.com/thread-1030797-1-1.html

宝塔面板在最近两年,有个很奇怪的bug,具体表现为一旦过了0点,CPU使用率就会突然上去,并且一直下不来。可以考证的最早记录是2021年1月份pc6a(https://pc6a.com/3144.html)写下的。
具体情况如下图,在初始安装完成后,CPU的负载很低,表现一切正常。一旦过了0点,CPU使用率瞬间上去了。

通过htop查看,占用CPU最高的是site_task.py,这个程序*身是**的日志上报功能模块。但是每10秒钟就会出现一次,每次出现就极大的提高了CPU使用率,显得极其诡异。要不是因为能看到源码,一定会判定它是木马,实际上这个程序并不复杂,因此大概率是个逻辑错误或者程序员水平低下导致的bug。我使用的是Debian 11**进行**的,在**云上有一篇记录(https://cloud.tencent.com/d***loper/article/1958272),是在CentOS 7上**出相同现象的。这说明了和***身相关性不大。

宝塔面板的源码是开放的,于是在GitHub(https://github.com/aaPanel/BaoTa)上下载了下来,搜索和site_task相关的内容。最终发现了site_task.py是通过**-task.c这个文件调用/www/******/panel/pyenv/bin/python3 /www/******/panel/sc**pt/site_task.py而运行起来的。注释里面写的是“网站到期时间处理”,有一个while true的*循环,每个小时执行一次。

仔细查看代码内容,发现这个循环中涉及到了日期更改。程序首先读取文件中的日期,判断和目前日期是否相同,如果相同就会睡眠一个小时。此外还有个将文件日期更改的功能,由于宝塔的代码稀*,很难捋顺它的程序,我就不去细查了。此外,“重新标记执行日期并执行到期网站脚*”这里好像是缺了一个判断,它这种写法导致频繁读写硬盘,降低运行效率。

言归正传,0点CPU高占用bug大概率就是这个模块导致的了,涉及到日期更改和site_task.py程序。出于某种原因(比如程序员水平稀*)导致了逻辑错误,最终造成一旦日期更改了,面板就不知道要做什么,**疯狂进行10秒一次循环。这种好几年的bug居然都没有发现,只能说宝塔的水平是极其差的。

临时的解决方法是设置定时任务,每天0点重启一次面板。终端输入c**ntab -e,**写入2 0 * * * /etc/init.d/** restart,即每天0点2分的时候重启一次面板,让日期归零,从而避开这个bug。我有点怀疑这个bug可能和Let’s Encrypt的SSL**申请有关,好像是在我全部使用第三方SSL**之后才发现这个bug的。具体的表现可能是如果面板没有Let’s Encrypt的SSL**申请任务,那么就会出现这个bug,具体是不是我还在尝试中。

网友 MMMM 说:

之前论坛发过,一堆人还说是我机器配置低哈哈哈哈。

网友 燕十三丶 说:

有理有据  支持

网友 imes 说:

MMMM 发表于 2022-6-10 11:39
之前论坛发过,一堆人还说是我机器配置低哈哈哈哈。
网友 fly*ie 说:

刚才看了下, 疑似找到问题所在了(基于宝塔面板7.7.0).

能否请楼主告知以下**方便验证?

1. 宝塔版*
2. 文件 /www/******/panel/**-Task 的有无以及文件内容?
3. 文件 /www/******/panel/task.py 的有无?

网友 *****ii 说:

免费帮找bug,宝塔感激涕零

网友 浪听涛 说:

临时的解决方法是设置定时任务,每天0点重启一次面板。终端输入c**ntab -e,**写入2 0 * * * /etc/init.d/** restart,即每天0点2分的时候重启一次面板,让日期归零,从而避开这个bug。我有点怀疑这个bug可能和Let’s Encrypt的SSL**申请有关,好像是在我全部使用第三方SSL**之后才发现这个bug的。具体的表现可能是如果面板没有Let’s Encrypt的SSL**申请任务,那么就会出现这个bug,具体是不是我还在尝试中。

网友 bo* 说:

代码有点* 还天天更新地起劲

网友 imes 说:

fly*ie 发表于 2022-6-10 13:39
刚才看了下, 疑似找到问题所在了(基于宝塔面板7.7.0).

能否请楼主告知以下**方便验证?
网友 玛雅 说:

宝塔我也感觉技术不是那么强,但是这货的赛道确实选的好,这点不得不服

网友 乌拉擦 说:

今天刚自建第三方,刚**了下还可以

网友 表妹 说:

居然不是上传数据,太尴尬了

网友 Dwight 说:

我超 c语言写的

赞(0) 打赏
未经允许不得转载:爱主机 » [经验] 宝塔面板的0点CPU高占用bug解疑
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址