热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

uwsgiworker不工作

用kubernetes起了2个uwsgi的pod,每个都有46个worker,listenqueue是128。我起了256个线程做并发测试,发现一个

用 kubernetes 起了 2 个 uwsgi 的 pod,每个都有 46 个 worker,listen queue 是 128。

我起了 256 个线程做并发测试,发现一个 pod 没有问题,另一个 pod 只有 worker1 和 worker2 在工作。

服务器 48 核 cpu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[uwsgi]

module = uwsgi_xx:xxx

strict = true



master = true

processes = 48

listen = 128



http = 0.0.0.0:8093

vacuum = true



enable-threads = true

single-interpreter = true

need-app = true



die-on-term = true



disable-logging = false

log-4xx = false

log-5xx = true

logformat = [worker_id: %(wid)|req: -/-] %(addr) [%(ctime)] %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs using %(core)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[uWSGI] getting INI configuration from chatbot.ini

*** Starting uWSGI 2.0.18 (64bit) on [Thu Nov 21 18:46:55 2019] ***

compiled with version: 7.4.0 on 16 November 2019 00:13:59

os: Linux-4.15.0-1054-aws #56-Ubuntu SMP Thu Nov 7 16:15:59 UTC 2019

nodename: chatbot-6544775c9f-l449f

machine: x86_64

clock source: unix

detected number of CPU cores: 48

current working directory: /code

detected binary path: /usr/local/bin/uwsgi

!!! no internal routing support, rebuild with pcre support !!!

uWSGI running as root, you can use --uid/--gid/--chroot options

*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

your memory page size is 4096 bytes

detected max file descriptor number: 1048576

lock engine: pthread robust mutexes

thunder lock: disabled (you can enable it with --thunder-lock)

uWSGI http bound on 0.0.0.0:8093 fd 4

uwsgi socket 0 bound to TCP address 127.0.0.1:38013 (port auto-assigned) fd 3

uWSGI running as root, you can use --uid/--gid/--chroot options

*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

Python version: 3.6.8 (default, Oct  7 2019, 12:59:55)  [GCC 8.3.0]

Python main interpreter initialized at 0x5600b36b6a80

uWSGI running as root, you can use --uid/--gid/--chroot options

*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

python threads support enabled

your server socket listen backlog is limited to 128 connections

your mercy for graceful operations on workers is 60 seconds

mapped 3427240 bytes (3346 KB) for 46 cores

*** Operational MODE: preforking ***

Starting chatbot

WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x5600b36b6a80 pid: 1 (default app)

uWSGI running as root, you can use --uid/--gid/--chroot options

*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

spawned uWSGI master process (pid: 1)

spawned uWSGI worker 1 (pid: 106, cores: 1)

spawned uWSGI worker 2 (pid: 107, cores: 1)

spawned uWSGI worker 3 (pid: 108, cores: 1)

spawned uWSGI worker 4 (pid: 109, cores: 1)

spawned uWSGI worker 5 (pid: 110, cores: 1)

spawned uWSGI worker 6 (pid: 111, cores: 1)

spawned uWSGI worker 7 (pid: 112, cores: 1)

spawned uWSGI worker 8 (pid: 113, cores: 1)

spawned uWSGI worker 9 (pid: 114, cores: 1)

spawned uWSGI worker 10 (pid: 115, cores: 1)

spawned uWSGI worker 11 (pid: 116, cores: 1)

spawned uWSGI worker 12 (pid: 117, cores: 1)

spawned uWSGI worker 13 (pid: 118, cores: 1)

spawned uWSGI worker 14 (pid: 119, cores: 1)

spawned uWSGI worker 15 (pid: 120, cores: 1)

spawned uWSGI worker 16 (pid: 121, cores: 1)

spawned uWSGI worker 17 (pid: 122, cores: 1)

spawned uWSGI worker 18 (pid: 123, cores: 1)

spawned uWSGI worker 19 (pid: 124, cores: 1)

spawned uWSGI worker 20 (pid: 125, cores: 1)

spawned uWSGI worker 21 (pid: 126, cores: 1)

spawned uWSGI worker 22 (pid: 127, cores: 1)

spawned uWSGI worker 23 (pid: 128, cores: 1)

spawned uWSGI worker 24 (pid: 129, cores: 1)

spawned uWSGI worker 25 (pid: 130, cores: 1)

spawned uWSGI worker 26 (pid: 131, cores: 1)

spawned uWSGI worker 27 (pid: 132, cores: 1)

spawned uWSGI worker 28 (pid: 133, cores: 1)

spawned uWSGI worker 29 (pid: 134, cores: 1)

spawned uWSGI worker 30 (pid: 135, cores: 1)

spawned uWSGI worker 31 (pid: 136, cores: 1)

spawned uWSGI worker 32 (pid: 137, cores: 1)

spawned uWSGI worker 33 (pid: 138, cores: 1)

spawned uWSGI worker 34 (pid: 139, cores: 1)

spawned uWSGI worker 35 (pid: 140, cores: 1)

spawned uWSGI worker 36 (pid: 141, cores: 1)

spawned uWSGI worker 37 (pid: 142, cores: 1)

spawned uWSGI worker 38 (pid: 143, cores: 1)

spawned uWSGI worker 39 (pid: 144, cores: 1)

spawned uWSGI worker 40 (pid: 145, cores: 1)

spawned uWSGI worker 41 (pid: 146, cores: 1)

spawned uWSGI worker 42 (pid: 147, cores: 1)

spawned uWSGI worker 43 (pid: 148, cores: 1)

spawned uWSGI worker 44 (pid: 149, cores: 1)

spawned uWSGI worker 45 (pid: 150, cores: 1)

spawned uWSGI worker 46 (pid: 151, cores: 1)

spawned uWSGI http 1 (pid: 152)

1
2
3
4
5
[worker_id: 1|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:02 2019] POST /dialog => generated 947 bytes in 251 msecs using 0

[worker_id: 2|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:02 2019] POST /dialog => generated 949 bytes in 278 msecs using 0

[worker_id: 1|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:03 2019] POST /dialog => generated 949 bytes in 250 msecs using 0

[worker_id: 2|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:03 2019] POST /dialog => generated 948 bytes in 268 msecs using 0

[worker_id: 1|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:03 2019] POST /dialog => generated 949 bytes in 244 msecs using 0

另一个正常

1
2
3
4
5
6
7
8
[worker_id: 44|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:06 2019] POST /dialog => generated 1697 bytes in 322 msecs using 0

[worker_id: 43|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:06 2019] POST /dialog => generated 1697 bytes in 277 msecs using 0

[worker_id: 46|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 2176 bytes in 354 msecs using 0

[worker_id: 45|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 1696 bytes in 358 msecs using 0

[worker_id: 44|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 1697 bytes in 393 msecs using 0

[worker_id: 37|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 2176 bytes in 487 msecs using 0

[worker_id: 46|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 1697 bytes in 275 msecs using 0

[worker_id: 43|req: -/-] 10.244.0.1 [Thu Nov 21 18:49:07 2019] POST /dialog => generated 1696 bytes in 258 msecs using 0

这种情况大家有遇到过吗

似乎一个 worker 占了一个 cpu,多出来的 worker 就没有工作。


推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
author-avatar
隆威SU_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有