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)
min(CPU_COUNT * 1.5, RAM_IN_GB - 1.5)
在大多数情况下,这应该是正常的,但对于一些使用模式调整,则需要限制专用于 Puma 的资源量(因此其他 Satellite 组件可以使用这些)或出于其他原因而需要。每个 Puma worker 消耗大约 1 GiB RAM。
查看您当前的 Satellite 服务器设置
cat /etc/systemd/system/foreman.service.d/installer.conf
# cat /etc/systemd/system/foreman.service.d/installer.conf
查看当前活跃的 Puma worker
systemctl status foreman
# systemctl status foreman
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
# satellite-installer \
--foreman-foreman-service-puma-workers=2 \
--foreman-foreman-service-puma-threads-max=5
5.2.3. 配置 Puma worker 复制链接链接已复制到粘贴板!
如果您有足够的 CPU,添加更多 worker 会增加性能。例如,我们将 Satellite 设置与 8 和 16 个 CPU 进行比较:
Satellite 虚拟机具有 8 个 CPU,40 GiB RAM | Satellite 虚拟机具有 16 个 CPU,40 GiB RAM |
---|---|
|
|
|
|
在 8 个 CPU 设置中,将 worker 数量从 2 改为 16,将并发注册时间提高 36%。在 16 个 CPU 设置中,相同的更改会导致 55% 的改进。
添加更多 worker 可以帮助进行总注册并发 Satellite 可以处理。在我们的测量中,使用 2 个 worker 设置可以处理 480 个并发注册,但添加更多 worker 提高了这种情况。
5.2.4. 配置 Puma 线程 复制链接链接已复制到粘贴板!
更多线程可以缩短并行注册主机的时间。例如,我们比较了这两个设置:
Satellite 虚拟机具有 8 个 CPU,40 GiB RAM | Satellite 虚拟机具有 8 个 CPU,40 GiB RAM |
---|---|
|
|
|
|
使用更多 worker 和相同的线程总数会导致在高度并发注册场景中速度大约为 11%。此外,添加更多 worker 不会消耗更多 CPU 和 RAM,但会获得更高的性能。