From e96654697da6ff3f90b4ca681fafe4f4a9701787 Mon Sep 17 00:00:00 2001 From: William Brown Date: Tue, 25 Jul 2017 16:11:32 +1000 Subject: [PATCH] Ticket 49331 - change autoscaling defaults Bug Description: In autotuning we default to a split of 40% to dbcache and 60 to entry. This isn't always the best split, given we cap the dbcache. In some performance tests I noticed an improvement when increasing the dbcache so I want to propose we change the scaling to 25% split and a cap of 1.5GB. Fix Description: Change the values to 25% and 1.5GB cap https://pagure.io/389-ds-base/issue/49331 Author: wibrown Review by: ??? --- ldap/servers/slapd/back-ldbm/ldbm_config.c | 2 +- ldap/servers/slapd/back-ldbm/start.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ldap/servers/slapd/back-ldbm/ldbm_config.c b/ldap/servers/slapd/back-ldbm/ldbm_config.c index b4fb734..2ef4652 100644 --- a/ldap/servers/slapd/back-ldbm/ldbm_config.c +++ b/ldap/servers/slapd/back-ldbm/ldbm_config.c @@ -1855,7 +1855,7 @@ static config_info ldbm_config[] = { {CONFIG_DB_HOME_DIRECTORY, CONFIG_TYPE_STRING, "", &ldbm_config_db_home_directory_get, &ldbm_config_db_home_directory_set, 0}, {CONFIG_IMPORT_CACHE_AUTOSIZE, CONFIG_TYPE_INT, "-1", &ldbm_config_import_cache_autosize_get, &ldbm_config_import_cache_autosize_set, CONFIG_FLAG_ALWAYS_SHOW | CONFIG_FLAG_ALLOW_RUNNING_CHANGE}, {CONFIG_CACHE_AUTOSIZE, CONFIG_TYPE_INT, "10", &ldbm_config_cache_autosize_get, &ldbm_config_cache_autosize_set, CONFIG_FLAG_ALWAYS_SHOW | CONFIG_FLAG_ALLOW_RUNNING_CHANGE}, - {CONFIG_CACHE_AUTOSIZE_SPLIT, CONFIG_TYPE_INT, "40", &ldbm_config_cache_autosize_split_get, &ldbm_config_cache_autosize_split_set, CONFIG_FLAG_ALWAYS_SHOW | CONFIG_FLAG_ALLOW_RUNNING_CHANGE}, + {CONFIG_CACHE_AUTOSIZE_SPLIT, CONFIG_TYPE_INT, "25", &ldbm_config_cache_autosize_split_get, &ldbm_config_cache_autosize_split_set, CONFIG_FLAG_ALWAYS_SHOW | CONFIG_FLAG_ALLOW_RUNNING_CHANGE}, {CONFIG_IMPORT_CACHESIZE, CONFIG_TYPE_SIZE_T, "16777216", &ldbm_config_import_cachesize_get, &ldbm_config_import_cachesize_set, CONFIG_FLAG_ALWAYS_SHOW | CONFIG_FLAG_ALLOW_RUNNING_CHANGE}, {CONFIG_IDL_SWITCH, CONFIG_TYPE_STRING, "new", &ldbm_config_idl_get_idl_new, &ldbm_config_idl_set_tune, CONFIG_FLAG_ALWAYS_SHOW}, {CONFIG_IDL_UPDATE, CONFIG_TYPE_ONOFF, "on", &ldbm_config_idl_get_update, &ldbm_config_idl_set_update, 0}, diff --git a/ldap/servers/slapd/back-ldbm/start.c b/ldap/servers/slapd/back-ldbm/start.c index 46cc212..fc70bf6 100644 --- a/ldap/servers/slapd/back-ldbm/start.c +++ b/ldap/servers/slapd/back-ldbm/start.c @@ -102,7 +102,7 @@ ldbm_back_start_autotune(struct ldbminfo *li) * default from ldbm_config.c */ if (li->li_cache_autosize_split == 0) { - autosize_db_percentage_split = 40; + autosize_db_percentage_split = 25; } else { autosize_db_percentage_split = li->li_cache_autosize_split; } @@ -134,12 +134,13 @@ ldbm_back_start_autotune(struct ldbminfo *li) /* It's valid, lets divide it up and set according to user prefs */ db_size = (autosize_db_percentage_split * zone_size) / 100; - /* Cap the DB size at 512MB, as this doesn't help perf much more (lkrispen's advice) */ + /* Cap the DB size at 1.5G, as this doesn't help perf much more (lkrispen's advice) */ /* NOTE: Do we need a minimum DB size? */ - if (db_size > (512 * MEGABYTE)) { - db_size = (512 * MEGABYTE); + if (db_size > (1536 * MEGABYTE)) { + db_size = (1536 * MEGABYTE); } + /* NOTE: Because of how we workout entry_size, even if * have autosize split to say ... 90% for dbcache, because * we cap db_size, we use zone_size - db_size, meaning that entry -- 1.8.3.1