From 3b4e562faf4b098412ceb6fe25b660eea9b22cb7 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Mon, 9 Mar 2020 14:39:45 +0100 Subject: [PATCH] Add object_server_mb_per_sync The default mb_per_sync value of Swift leads to adding a lot of latencies when transfering to an object store. This patch adds the possibility to override this value for object store (it is less relevant for other backend which rarely will reach the cache size anyway). According to our tests, a value of 16 MB is very good in production. Change-Id: Id379d4221bc7e2a0c16125b97140e39b7726fd02 --- manifests/storage/all.pp | 24 +++++++++++++++--------- manifests/storage/server.pp | 5 +++++ templates/object-server.conf.erb | 1 + 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/manifests/storage/all.pp b/manifests/storage/all.pp index 866d33f5..d7565bf9 100644 --- a/manifests/storage/all.pp +++ b/manifests/storage/all.pp @@ -109,6 +109,10 @@ # (optional) Number of account server workers. # Defaults to $::os_workers. # +# [*object_server_mb_per_sync*] +# (optional) Number of MB allocated for the cache. +# Defaults to 512, which is the swift default value. +# # [*splice*] # (optional) Use splice for zero-copy object GETs. This requires Linux Kernel # version 3.0 or greater. @@ -141,6 +145,7 @@ class swift::storage::all( $account_server_workers = $::os_workers, $container_server_workers = $::os_workers, $object_server_workers = $::os_workers, + $object_server_mb_per_sync = 512, $splice = false, ) { @@ -201,14 +206,15 @@ class swift::storage::all( } swift::storage::server { $object_port: - type => 'object', - config_file_path => 'object-server.conf', - pipeline => $object_pipeline, - log_facility => $log_facility, - log_requests => $log_requests, - incoming_chmod => $incoming_chmod, - outgoing_chmod => $outgoing_chmod, - workers => $object_server_workers, - splice => $splice, + type => 'object', + config_file_path => 'object-server.conf', + pipeline => $object_pipeline, + log_facility => $log_facility, + log_requests => $log_requests, + incoming_chmod => $incoming_chmod, + outgoing_chmod => $outgoing_chmod, + workers => $object_server_workers, + splice => $splice, + object_server_mb_per_sync => $object_server_mb_per_sync, } } diff --git a/manifests/storage/server.pp b/manifests/storage/server.pp index 87331604..4b91449c 100644 --- a/manifests/storage/server.pp +++ b/manifests/storage/server.pp @@ -164,6 +164,10 @@ # version 3.0 or greater. # Defaults to false. # +# [*object_server_mb_per_sync*] +# (optional) Number of MB allocated for the cache. +# Defaults to 512, which is the swift default value. +# define swift::storage::server( $type, $storage_local_net_ip, @@ -202,6 +206,7 @@ define swift::storage::server( $disk_chunk_size = 65536, $auditor_disk_chunk_size = undef, $splice = false, + $object_server_mb_per_sync = 512, ) { include swift::deps diff --git a/templates/object-server.conf.erb b/templates/object-server.conf.erb index 90126bb2..3b819d0a 100644 --- a/templates/object-server.conf.erb +++ b/templates/object-server.conf.erb @@ -38,6 +38,7 @@ set log_level = <%= @log_level %> set log_requests = <%= @log_requests %> set log_address = <%= @log_address %> splice = <%= @splice %> +mb_per_sync = <%= @object_server_mb_per_sync %> [object-replicator] concurrency = <%= @replicator_concurrency %>