gpt4 book ai didi

django - 数以千计的外来 unicorn worker

转载 作者:行者123 更新时间:2023-12-04 19:13:26 25 4
gpt4 key购买 nike

我正在为 Django 项目(Ubuntu 14.04 机器)使用带有 nginx 反向代理的 gunicorn 19.7.1 appserver。
ps aux | grep gunicorn | grep -v grep | wc -l产量 3043 眼下。

而在 /etc/init/gunicorn.conf , 我一直有 -w 33 .然而,即使我这样做,这些额外的 worker 仍然存在 sudo service gunicorn stopsudo service gunicorn start .

我如何杀死无关的 worker ?

这怎么发生的?
33的 worker 数一直在我繁忙的生产系统上正确配置。

然而几个小时前,我在尝试 python 的 multiprocessing在服务器上,事情向南发展。 Gunicorn 工作人员吃掉了所有的内存并取出了常驻的 redis 实例。

enter image description here

我恢复了更改并设法使所有内容重新上线,除了内存尚未释放并且我不得不应对这些遗留的 gunicorn worker 。这是怎么回事?

最佳答案

Yet these extra workers persist even if I do sudo service gunicorn stop and sudo service gunicorn start.


service只管理 service - 启动进程,因此如果您在服务框架之外启动 Gunicorn worker ,即使您 stop,这些 worker 仍将继续存在。 .

How do I kill the extraneous workers?



快捷方式:

运行此命令列出所有 gunicorn进程 ID 并终止它们,然后重新启动 Gunicorn:

$ pkill gunicorn
$ sudo service gunicorn start

更好的方法:
  • 通过找到父级来确定您“想要的” Gunicorn worker :
    $ sudo service gunicorn status

    记下父进程 ID。假设它是 123 .
  • 保存所有“期望的” worker PID 的列表:
     $ echo 123 > desired_workers
    $ pgrep -P 123 >> desired_workers
  • 保存所有工作人员的 PID 列表:
     $ pgrep gunicorn > all_workers
  • 终止“不受欢迎的” worker :
     $ cat desired_workers all_workers | sort | uniq -u | xargs kill
  • 关于django - 数以千计的外来 unicorn worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858963/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com