diff --git a/manifests/storage/server.pp b/manifests/storage/server.pp index 5f05e7b1..8b2aea25 100644 --- a/manifests/storage/server.pp +++ b/manifests/storage/server.pp @@ -47,6 +47,14 @@ # writing to the root device. # Defaults to true. # +# [*servers_per_port*] +# (optional) Spawn multiple servers per device on different ports. +# Make object-server run this many worker processes per unique port of +# "local" ring devices across all storage policies. This can help provide +# the isolation of threads_per_disk without the severe overhead. The default +# value of 0 disables this feature. +# Defaults to 0. +# # [*user*] # (optional) User to run as # Defaults to 'swift'. @@ -151,6 +159,7 @@ define swift::storage::server( $max_connections = 25, $pipeline = ["${type}-server"], $mount_check = true, + $servers_per_port = 0, $user = 'swift', $workers = $::os_workers, $allow_versions = false, diff --git a/templates/object-server.conf.erb b/templates/object-server.conf.erb index 265feb89..b4c2cce0 100644 --- a/templates/object-server.conf.erb +++ b/templates/object-server.conf.erb @@ -3,6 +3,7 @@ devices = <%= @devices %> bind_ip = <%= @storage_local_net_ip %> bind_port = <%= @bind_port %> mount_check = <%= @mount_check %> +servers_per_port = <%= @servers_per_port %> user = <%= @user %> log_name = <%= @log_name %> log_facility = <%= @log_facility %>