Skip to content

Commit

Permalink
Update puma threads tunings (#3248)
Browse files Browse the repository at this point in the history
  • Loading branch information
Imaanpreet authored Dec 11, 2024
1 parent a7e8794 commit 1675c0a
Showing 1 changed file with 4 additions and 12 deletions.
16 changes: 4 additions & 12 deletions guides/common/modules/con_puma-threads.adoc
Original file line number Diff line number Diff line change
@@ -1,21 +1,13 @@
[id="Puma_Threads_{context}"]
= Puma threads

Number of Puma threads (per Puma worker) is configured by using two values: `threads_min` and `threads_max`.
To configure the number of Puma threads (per Puma worker), use these values: `threads_min` and `threads_max`.

Value of `threads_min` determines how many threads each worker spawns at a worker start.
Then, as concurrent requests are coming and more threads is needed, worker will be spawning more and more workers up to `threads_max` limit.

We recommend setting `threads_min` to same value as `threads_max` as having fewer Puma threads lead to higher memory usage on your {ProjectServer}.

For example, we have compared these two setups by using concurrent registrations test:

[width="100%",cols="50%,50%",options="header",]
|===
|{Project} VM with 8 CPUs, 40 GiB RAM |{Project} VM with 8 CPUs, 40 GiB RAM
|`--foreman-foreman-service-puma-threads-min=0` |`--foreman-foreman-service-puma-threads-min=16`
|`--foreman-foreman-service-puma-threads-max=16` |`--foreman-foreman-service-puma-threads-max=16`
|`--foreman-foreman-service-puma-workers=2` |`--foreman-foreman-service-puma-workers=2`
|===

Setting the minimum Puma threads to `16` results in about 12% less memory usage as compared to `threads_min=0`.
For example, we have compared these two setups on a virtual machine with 8 CPUs and 40 GiB RAM using concurrent registrations test.
They both used `--foreman-foreman-service-puma-threads-max=16` and `--foreman-foreman-service-puma-workers=2`.
Setting the minimum Puma threads to `16` by using `--foreman-foreman-service-puma-threads-min=16` results in about 12% less memory usage as compared to `0`.

0 comments on commit 1675c0a

Please sign in to comment.