orchestrator: Cap maximum processes and threads by default
cloudkitty-orchestrator by default launches - N workers for rating processing - N workers for reprocessing and also launch 5 * N threads in each worker. N = Number of cpu cores This results in huge value in case a node has relatively many cpu cores (including pseudo cores in case hyper-threading is enabled). Cap the maximum numbers to avoid too many processes/threads used in node with many CPU cores. Change-Id: Id9b2f33777db2d7265ca41e9066135b56aca34d2 Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
@@ -10,21 +10,21 @@
|
|||||||
#
|
#
|
||||||
# [*max_workers*]
|
# [*max_workers*]
|
||||||
# (Optional) Maximum number of workers to execute the rating process.
|
# (Optional) Maximum number of workers to execute the rating process.
|
||||||
# Defaults to $facts['os_service_default']
|
# Defaults to $facts['os_workers']
|
||||||
#
|
#
|
||||||
# [*max_workers_reprocessing*]
|
# [*max_workers_reprocessing*]
|
||||||
# (Optional) Maximum number of workers to execute the reprocessing.
|
# (Optional) Maximum number of workers to execute the reprocessing.
|
||||||
# Defaults to $facts['os_service_default']
|
# Defaults to $facts['os_workers']
|
||||||
#
|
#
|
||||||
# [*max_threads*]
|
# [*max_threads*]
|
||||||
# (Optional) Maximal number of threads to use per worker.
|
# (Optional) Maximum number of threads to use per worker.
|
||||||
# Defaults to $facts['os_service_default']
|
# Defaults to 16,
|
||||||
#
|
#
|
||||||
class cloudkitty::orchestrator (
|
class cloudkitty::orchestrator (
|
||||||
$coordination_url = $facts['os_service_default'],
|
$coordination_url = $facts['os_service_default'],
|
||||||
$max_workers = $facts['os_service_default'],
|
$max_workers = $facts['os_workers'],
|
||||||
$max_workers_reprocessing = $facts['os_service_default'],
|
$max_workers_reprocessing = $facts['os_workers'],
|
||||||
$max_threads = $facts['os_service_default']
|
$max_threads = 16,
|
||||||
) {
|
) {
|
||||||
include cloudkitty::deps
|
include cloudkitty::deps
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Default values of the following parameters have been changed to avoid
|
||||||
|
using too many processes or threads in node with many cores.
|
||||||
|
|
||||||
|
- ``cloudkitty::orchestrator::max_workers`` now defaults to
|
||||||
|
the ``os_workers`` fact.
|
||||||
|
- ``cloudkitty::orchestrator::max_workers_reprocessing`` now defaults to
|
||||||
|
the ``os_workers`` fact.
|
||||||
|
- ``cloudkitty::orchestrator::max_threads`` now defaults to `16`.
|
||||||
@@ -14,9 +14,9 @@ describe 'cloudkitty::orchestrator' do
|
|||||||
:backend_url => '<SERVICE DEFAULT>',
|
:backend_url => '<SERVICE DEFAULT>',
|
||||||
:manage_config => false,
|
:manage_config => false,
|
||||||
)
|
)
|
||||||
is_expected.to contain_cloudkitty_config('orchestrator/max_workers').with_value('<SERVICE DEFAULT>')
|
is_expected.to contain_cloudkitty_config('orchestrator/max_workers').with_value(4)
|
||||||
is_expected.to contain_cloudkitty_config('orchestrator/max_workers_reprocessing').with_value('<SERVICE DEFAULT>')
|
is_expected.to contain_cloudkitty_config('orchestrator/max_workers_reprocessing').with_value(4)
|
||||||
is_expected.to contain_cloudkitty_config('orchestrator/max_threads').with_value('<SERVICE DEFAULT>')
|
is_expected.to contain_cloudkitty_config('orchestrator/max_threads').with_value(16)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -49,7 +49,9 @@ describe 'cloudkitty::orchestrator' do
|
|||||||
}).each do |os,facts|
|
}).each do |os,facts|
|
||||||
context "on #{os}" do
|
context "on #{os}" do
|
||||||
let (:facts) do
|
let (:facts) do
|
||||||
facts.merge!(OSDefaults.get_facts())
|
facts.merge!(OSDefaults.get_facts(
|
||||||
|
:os_workers => 4,
|
||||||
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
it_configures 'cloudkitty::orchestrator'
|
it_configures 'cloudkitty::orchestrator'
|
||||||
|
|||||||
Reference in New Issue
Block a user