From e986edb8657563c34b28a28e46af1841e9819679 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Tue, 20 Oct 2020 10:44:42 +0000 Subject: Take number of response threads and number of network threads into account. --- configdefinitions/src/vespa/stor-filestor.def | 5 +++++ storage/src/vespa/storage/config/stor-communicationmanager.def | 2 ++ .../src/vespa/storage/persistence/filestorage/filestormanager.cpp | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/configdefinitions/src/vespa/stor-filestor.def b/configdefinitions/src/vespa/stor-filestor.def index 8ac372c0575..bf1b4294b5b 100644 --- a/configdefinitions/src/vespa/stor-filestor.def +++ b/configdefinitions/src/vespa/stor-filestor.def @@ -31,6 +31,11 @@ num_threads int default=8 restart ## Negative number will choose a good number based on # cores. num_response_threads int default=2 restart +## Number of handler objects that might be created by networkthreads +## This is a temporary setting that only skilled vespa developers should modify +## This must be kept in line with stor-communicationmanager:rpc.num_network_threads +num_network_threads int default=1 restart + ## Type of sequenced thread executor use for persistence replies. response_sequencer_type enum {LATENCY, THROUGHPUT, ADAPTIVE} default=ADAPTIVE restart diff --git a/storage/src/vespa/storage/config/stor-communicationmanager.def b/storage/src/vespa/storage/config/stor-communicationmanager.def index cabb8516153..3511899728d 100644 --- a/storage/src/vespa/storage/config/stor-communicationmanager.def +++ b/storage/src/vespa/storage/config/stor-communicationmanager.def @@ -68,6 +68,8 @@ rpc.num_network_threads int default=1 ## The bucket id associated with a message is used to select the RPC target. ## This ensures the same RPC target is used for all messages to the same bucket to the same node, ## and the RPC target itself handles sequencing of these messages. +## NB !! It is vital that this number is kept in sync with stor-filestor:num_network_threads. +## Only skilled vespa core devolpers should touch this. rpc.num_targets_per_node int default=1 # Minimum size of packets to compress (0 means no compression) diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp index 34e8f599f8f..dd0a933af26 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp @@ -155,7 +155,8 @@ FileStorManager::configure(std::unique_ptrnumThreads; size_t numStripes = std::max(size_t(1u), numThreads / 2); - _metrics->initDiskMetrics(1, _component.getLoadTypes()->getMetricLoadTypes(), numStripes, numThreads); + _metrics->initDiskMetrics(1, _component.getLoadTypes()->getMetricLoadTypes(), numStripes, + numThreads + config->numResponseThreads + config->numNetworkThreads); _filestorHandler = std::make_unique(numThreads, numStripes, *this, *_metrics, _compReg); uint32_t numResponseThreads = computeNumResponseThreads(_config->numResponseThreads); -- cgit v1.2.3