happySir1 发表于 2024-7-1 23:05:28

【已完成】Docker环境中运行宝塔面板pids无限增加

环境:系统: Ubuntu22.04、deepin 20v3
Docker版本: Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1

宝塔版本:免费版:8.2.0

运行中的功能:仅运行宝塔面板

现象:pyhton3进程无限增加,导致资源耗尽,网站无法访问

docker 内部信息

root         2260.00.0      0   0 ?      Z    21:40   0:00 <defunct>
root         2880.00.0      0   0 ?      Z    21:41   0:00 <defunct>
root         2900.10.0      0   0 ?      Z    21:41   0:00 <defunct>
root         2970.00.0      0   0 ?      Z    21:42   0:00 <defunct>
root         3020.00.0      0   0 ?      Z    21:42   0:00 <defunct>
root         3040.10.0      0   0 ?      Z    21:42   0:00 <defunct>
root         3190.00.0      0   0 ?      Z    21:43   0:00 <defunct>
root         3210.20.0      0   0 ?      Z    21:43   0:00 <defunct>
root         3380.00.0      0   0 ?      Z    21:44   0:00 <defunct>
root         3500.00.0      0   0 ?      Z    21:44   0:00 <defunct>
root         3520.00.0      0   0 ?      Z    21:44   0:00 <defunct>
root         3540.10.0      0   0 ?      Z    21:44   0:00 <defunct>
root         3740.00.0      0   0 ?      Z    21:45   0:00 <defunct>
root         3760.20.0      0   0 ?      Z    21:45   0:00 <defunct>
root         3840.10.0      0   0 ?      Z    21:46   0:00 <defunct>
root         3890.00.0      0   0 ?      Z    21:46   0:00 <defunct>
root         3910.30.0      0   0 ?      Z    21:46   0:00 <defunct>
root         3960.20.0      0   0 ?      Z    21:47   0:00 <defunct>
root         3980.70.0      0   0 ?      Z    21:47   0:00 <defunct>
root         4001.00.0      0   0 ?      Z    21:48   0:00 <defunct>
root         4026.00.0      0   0 ?      Z    21:48   0:00 <defunct>
root         404 46.00.0      0   0 ?      Z    21:48   0:00 <defunct>


root@7dbd6be9cf03:/# ps aux | grep "python3" | wc -l
233


docker外部监控
CONTAINER ID   NAME          CPU %   MEM USAGE / LIMIT    MEM %   NET I/O         BLOCK I/O         PIDS
7dbd6be9cf03   hiswi-cloud   0.11%   84.64MiB / 3.32GiB   2.49%   3.61MB / 11.7MB   5.98MB / 18.1MB   256




运维技术阿闯 发表于 2024-7-2 10:01:44

您好,需要了解一下,您这边在出现这个现象前是做了什么操作呢,是安装面板后就出现了嘛
方便截图一下history|grep sh的信息吗

happySir1 发表于 2024-7-2 10:26:57

docker 中安装面板后,配置了网站,自动申请 ssl 证书,但是我网站相关的程序我一个也没有启动,我安装的程序有nginx、phpmyadmin、 php74 、redis、mysqld,就没有其他操作了。
步骤 1:
root@7dbd6be9cf03:/# bt 3
===============================================
正在执行(3)...
===============================================
sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Starting Bt-Panel....        done
Starting Bt-Tasks...         done
root@7dbd6be9cf03:/

步骤 2:
root@7dbd6be9cf03:/# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         10.00.0   28241020 ?      Ss   10:25   0:00 tail -f /dev/null
root         70.00.1   46283844 pts/0    Ss   10:25   0:00 /bin/bash
root          751.40.0      0   0 pts/0    Z    10:25   0:00 <defunct>
root          770.00.0      0   0 pts/0    Z    10:25   0:00 <defunct>
root          860.50.0      0   0 ?      Zs   10:25   0:00 <defunct>
root          870.11.1 129572 39996 ?      S    10:25   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Panel
root         1270.00.0      0   0 ?      Zs   10:25   0:00 <defunct>
root         1280.10.5 1002060 18832 ?       Sl   10:25   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Task
root         1460.70.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1511.90.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1542.00.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1700.00.0   70641584 pts/0    R+   10:26   0:00 ps aux
就执行了这个操作,然后就开始无限增加pids

happySir1 发表于 2024-7-2 10:28:34

这应该是个重大 BUG,我试过8.0.0. 8.0.5 7.9.10版本都不行,你们应该兼容docker环境的。

happySir1 发表于 2024-7-2 10:30:12

过一分钟后,python3相关的进程的 pids 开始增加,并且是僵死进程,且占用 cpu
root@7dbd6be9cf03:/# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         10.00.0   28241020 ?      Ss   10:25   0:00 tail -f /dev/null
root         70.00.1   46283844 pts/0    Ss   10:25   0:00 /bin/bash
root          750.10.0      0   0 pts/0    Z    10:25   0:00 <defunct>
root          770.00.0      0   0 pts/0    Z    10:25   0:00 <defunct>
root          860.00.0      0   0 ?      Zs   10:25   0:00 <defunct>
root          870.01.1 129572 40028 ?      S    10:25   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Panel
root         1270.00.0      0   0 ?      Zs   10:25   0:00 <defunct>
root         1280.00.5 1075792 19096 ?       Sl   10:25   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Task
root         1460.00.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1510.10.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1540.10.0      0   0 ?      Z    10:25   0:00 <defunct>
root         1720.10.0      0   0 ?      Z    10:26   0:00 <defunct>
root         1740.30.0      0   0 ?      Z    10:26   0:00 <defunct>
root         1760.20.0      0   0 ?      Z    10:27   0:00 <defunct>
root         1780.10.0      0   0 ?      Z    10:27   0:00 <defunct>
root         1801.30.0      0   0 ?      Z    10:27   0:00 <defunct>
root         1820.00.0   70641556 pts/0    R+   10:28   0:00 ps aux

happySir1 发表于 2024-7-2 10:31:59

docker 中宝塔面板配置好网站后,单独运行我的网站,不开启宝塔面板就没有这个问题。

happySir1 发表于 2024-7-2 10:34:22

宿主机环境没有这个问题

运维技术阿闯 发表于 2024-7-2 10:55:39

happySir1 发表于 2024-7-2 10:34
宿主机环境没有这个问题

您在您docker中执行以下
您到服务器SSH终端中执行下面命令(非面板终端)修复面板
删除之前无法使用的面板环境
mv/www/server/panel/pyenv /www/backup/pyenv_backup
重新获取新的面板环境和更新包
curl http://download.bt.cn/install/update_panel.sh|bash

happySir1 发表于 2024-7-6 15:43:19

运维技术阿闯 发表于 2024-7-2 10:55
您在您docker中执行以下

按照此命令更新后,依然未解决问题,只运行了bt 3命令
root@Cloud:~/work/production_env# docker exec -it hiswi-cloud /bin/bash
root@bc13dbba782d:/# ps aux| grep python
root          750.20.0      0   0 ?      Z    15:38   0:00 <defunct>
root          870.01.1 129540 40084 ?      S    15:38   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Panel
root         1930.00.5 1075764 19180 ?       Rl   15:38   0:00 /www/server/panel/pyenv/bin/python3 /www/server/panel/BT-Task
root         2370.00.0      0   0 ?      Z    15:38   0:00 <defunct>
root         2440.00.0      0   0 ?      Z    15:38   0:00 <defunct>
root         2460.10.0      0   0 ?      Z    15:38   0:00 <defunct>
root         2480.10.0      0   0 ?      Z    15:38   0:00 <defunct>
root         2520.60.0      0   0 ?      Z    15:38   0:01 <defunct>
root         3180.10.0      0   0 ?      Z    15:39   0:00 <defunct>
root         3200.40.0      0   0 ?      Z    15:39   0:00 <defunct>
root         3360.30.0      0   0 ?      Z    15:40   0:00 <defunct>
root         3380.10.0      0   0 ?      Z    15:40   0:00 <defunct>
root         3400.90.0      0   0 ?      Z    15:40   0:00 <defunct>
root         3550.00.0   34721604 pts/1    S+   15:40   0:00 grep --color=auto python
root@bc13dbba782d:/# ps aux| grep python | wc -l
14
root@bc13dbba782d:/# ps aux| grep python3 | wc -l
16
root@bc13dbba782d:/# ps aux| grep python3 | wc -l
16
root@bc13dbba782d:/# ps aux| grep python3 | wc -l
16
root@bc13dbba782d:/# ps aux| grep python3 | wc -l
19
root@bc13dbba782d:/#

运维技术阿闯 发表于 2024-7-6 16:19:35

happySir1 发表于 2024-7-6 15:43
按照此命令更新后,依然未解决问题,只运行了bt 3命令
root@Cloud:~/work/production_env# docker exec - ...

您好,您这个应该就是进程结束,父进程没有收回,导致的僵尸进程
https://blog.csdn.net/weixin_70208651/article/details/136632878#
参考这个解决

happySir1 发表于 2024-8-3 01:12:47

运维技术阿闯 发表于 2024-7-6 16:19
您好,您这个应该就是进程结束,父进程没有收回,导致的僵尸进程
https://blog.csdn.net/weixin_70208651 ...

不是回收不回收的问题,是它一直在创建进程啊,你美看到他的pid的个数一直在增加吗,杀不完,根本杀不完,docker是一种很常见的成熟部署方式,希望你们能够解决。

运维技术阿闯 发表于 2024-8-12 09:53:20

happySir1 发表于 2024-8-3 01:12
不是回收不回收的问题,是它一直在创建进程啊,你美看到他的pid的个数一直在增加吗,杀不完,根本杀不完 ...

您好,临时关闭docker,然后将面板升级到最新版本后,执行bt 16修复一下,然后您看您的问题是否解决

happySir1 发表于 2024-8-16 11:39:44

运维技术阿闯 发表于 2024-8-12 09:53
您好,临时关闭docker,然后将面板升级到最新版本后,执行bt 16修复一下,然后您看您的问题是否解决 ...

您好:
      根据您提供的方法,更新到 9.10 版本后,运行半个小时,没有重复创建 python3进程,问题得到解决。
效果如下:
root@bc13dbba782d:/www# ps aux | grep python3 | wc -l
1
root@bc13dbba782d:/www#

      PS:更正您的“临时关闭docker,然后将面板升级到最新版本后”,bt 本身跑在docker里的,所以不用临时关闭 docker,不然无法更新。

      在此非常感谢宝塔官方团队的技术支持,后续会继续为官方提供准确的 bug 描述。

运维技术阿闯 发表于 2024-8-16 14:13:09

happySir1 发表于 2024-8-16 11:39
您好:
      根据您提供的方法,更新到 9.10 版本后,运行半个小时,没有重复创建 python3进程,问题得 ...

好的,问题解决了就好,这边后续也会持续观察一下的,您有新的问题可以在开新贴呢,这边就闭贴了,祝您生活愉快
页: [1]
查看完整版本: 【已完成】Docker环境中运行宝塔面板pids无限增加