首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >beam.smp运行数百个(1000+)线程是正常的吗?

beam.smp运行数百个(1000+)线程是正常的吗?
EN

Server Fault用户
提问于 2022-03-20 18:06:48
回答 1查看 2K关注 0票数 0

我最近在Debian 11服务器上安装了RabbitMQ,并注意到现在绝大多数线程都属于同一个进程-- beam.smp。从我在互联网上发现的情况来看,这个过程是Erlang的运行时或VM,它依赖于RabbitMQ。ps的输出表明它是一个只有1200个线程的进程。

代码语言:javascript
运行
复制
$ ps -e | grep beam.smp | wc -l
1
$ ps -eLF | grep beam.smp | wc -l
1200

CPU使用率很低,所以所有这些线程都必须处于休眠状态。但是,对于一个进程来说,有那么多线程是非常奇怪的。

这是正常的还是一个错误的迹象?或者是个窃听器?它似乎没有引起任何直接的问题,但它会导致问题在以后的时间吗?

通常,我会提供配置文件的内容,但在本例中,我找不到负责beam.smp的配置文件。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-03-20 20:21:59

有了Erlang,成千上万的线程就容易了。很可能您可以按原样使用调优,特别是在资源使用是可管理的情况下。

光束是参考的Erlang,这是RabbitMQ的基础。Erlang具有本地并发性,轻量级进程执行消息传递。因此,轻量级RabbitMQ文档讨论了非常多的并发连接的200万个进程。其他资源限制限制了系统在实践中能够达到多大。

在Linux上,线程恰好是使运行时正常运行的实现。这意味着许多任务共享相同的组ID,它们显示为相同的进程ID (与Erlang进程的含义不同)。

在POSIX系统上,许多线程在应用程序中并不常见。了解PID是计数任务的唯一方法。例如,使用SMP,一个多线程PID可以超过100%的CPU.

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1096608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档