reactor.netty.ioWorkerCount 不同的默认计数

问题描述 投票:0回答:2

根据netty文档,默认的reactor.netty.ioWorkerCount计数是max(4,核心数),这在本地环境中似乎是正确的。我有一台 6 核笔记本电脑,reactor-http-io 线程数为 6。

但是在 kuberenetes 中部署 docker 镜像时,我们发现reactor-http-epoll (linux) 线程数为 36。我们的 CPU 配置是:请求 4,限制 6。

@ROCKY 在Spring WebFlux 和 Reactor 的线程模型中的一条评论中也提出了这个疑问。 好像还没有答案。

有什么东西可以解释这种行为吗?

spring-boot spring-webflux reactor-netty
2个回答
1
投票

我想我们已经找到答案了。我们的机器有 36 个核心。但我们的 Pod 是 4 核的配置。所以看起来 netty 正在获取机器配置而不是我们的 pod 配置,所以这似乎是 netty 中的错误或我们缺少的其他内容。

我们使用的是Spring boot 2.2.0.RELEASE和reactor-netty 0.9.9版本。


0
投票

我认为这是 kubernetes 的问题,而不是 netty 的问题。尝试在容器中安装 htop 并检查 pod 有多少个真正活跃的 cpu。我刚刚开始了解 kubernetes 清单的设置,但我遇到了同样的事情:默认情况下,它会看到运行工作线程的虚拟机的所有处理器核心(或者服务器,如果你不这样做的话)没有虚拟机),以及我们的配置 - 这是将分配给 Pod 的处理器时间量,而不是对其可以使用的核心数量的严格限制。抱歉我的英语不好,我用谷歌翻译写了答案

© www.soinside.com 2019 - 2024. All rights reserved.