From 31dc95fd151e4cc770b61c7b1af4ec13f8e6096a Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Tue, 18 Sep 2018 12:00:05 +0200 Subject: [PATCH] Add servers_per_port parameter in object-server According to the doc at this URL: https://docs.openstack.org/swift/latest/deployment_guide.html for performance reasons, it is desirable to use forks of the object-server, each on a different port, one per device. This is what I'm doing in openstack-cluster-install in Debian. For this, I've been using this patch. It'd be nice to have it upstream as well. Change-Id: I9224eb7022871e92cc18f82e9985d91d5e0c2823 --- manifests/storage/server.pp | 9 +++++++++ templates/object-server.conf.erb | 1 + 2 files changed, 10 insertions(+) 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 %>