5.2. Puma 调优


puma 是一个 ruby 应用程序服务器,用于为客户端提供 Foreman 相关请求。对于任何应该处理大量客户端或频繁操作的 Satellite 配置,务必要相应地调整 Puma。

5.2.1. puma worker 和线程自动调整

如果您没有使用 satellite-installer 提供任何 Puma worker 和 thread 值,或者 Satellite 配置中没有它们,satellite-installer 会配置均衡的 worker 数量。它遵循以下公式:

min(CPU_COUNT * 1.5, RAM_IN_GB - 1.5)
Copy to Clipboard Toggle word wrap

在大多数情况下,这应该是正常的,但对于一些使用模式调整,则需要限制专用于 Puma 的资源量(因此其他 Satellite 组件可以使用这些)或出于其他原因而需要。每个 Puma worker 消耗大约 1 GiB RAM。

查看您当前的 Satellite 服务器设置

# cat /etc/systemd/system/foreman.service.d/installer.conf
Copy to Clipboard Toggle word wrap

查看当前活跃的 Puma worker

# systemctl status foreman
Copy to Clipboard Toggle word wrap

5.2.2. 手动调整 Puma worker 和线程计数

如果您决定不依赖 第 5.2.1 节 “puma worker 和线程自动调整”,您可以为这些可调项应用自定义数字。在以下示例中,我们使用 2 个 worker 和 5 个线程:

# satellite-installer \
--foreman-foreman-service-puma-workers=2 \
--foreman-foreman-service-puma-threads-max=5
Copy to Clipboard Toggle word wrap

5.2.3. 配置 Puma worker

如果您有足够的 CPU,添加更多 worker 会增加性能。例如,我们将 Satellite 设置与 8 和 16 个 CPU 进行比较:

Expand
表 5.1. 用于测试 worker 数量效果的 satellite-installer 选项
Satellite 虚拟机具有 8 个 CPU,40 GiB RAMSatellite 虚拟机具有 16 个 CPU,40 GiB RAM

--foreman-foreman-service-puma-threads-max=16

--foreman-foreman-service-puma-threads-max=16

--foreman-foreman-service-puma-workers={2|4|8|16}

--foreman-foreman-service-puma-workers={2|4|8|16}

在 8 个 CPU 设置中,将 worker 数量从 2 改为 16,将并发注册时间提高 36%。在 16 个 CPU 设置中,相同的更改会导致 55% 的改进。

添加更多 worker 可以帮助进行总注册并发 Satellite 可以处理。在我们的测量中,使用 2 个 worker 设置可以处理 480 个并发注册,但添加更多 worker 提高了这种情况。

5.2.4. 配置 Puma 线程

更多线程可以缩短并行注册主机的时间。例如,我们比较了这两个设置:

Expand
Satellite 虚拟机具有 8 个 CPU,40 GiB RAMSatellite 虚拟机具有 8 个 CPU,40 GiB RAM

--foreman-foreman-service-puma-threads-max=16

--foreman-foreman-service-puma-threads-max=8

--foreman-foreman-service-puma-workers=2

--foreman-foreman-service-puma-workers=4

使用更多 worker 和相同的线程总数会导致在高度并发注册场景中速度大约为 11%。此外,添加更多 worker 不会消耗更多 CPU 和 RAM,但会获得更高的性能。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat