From 93f5b416c9bf4cf5cb038dc98c4597642661d336 Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Mon, 18 Jun 2018 12:39:30 -0500 Subject: Call `set_mqd_off_heap` for critical processes This uses the new `couch_util:set_mqd_off_heap/0` function to set message queues to off_heap for some of our critical processes that receive a significant amount of load in terms of message volume. --- src/couch/src/couch_server.erl | 2 ++ src/couch_log/src/couch_log_server.erl | 1 + src/ddoc_cache/src/ddoc_cache_lru.erl | 1 + src/mem3/src/mem3_shards.erl | 1 + src/rexi/src/rexi_server.erl | 1 + 5 files changed, 6 insertions(+) diff --git a/src/couch/src/couch_server.erl b/src/couch/src/couch_server.erl index 05af0ed54..903eb09cd 100644 --- a/src/couch/src/couch_server.erl +++ b/src/couch/src/couch_server.erl @@ -210,6 +210,8 @@ close_db_if_idle(DbName) -> init([]) -> + couch_util:set_mqd_off_heap(), + % Mark pluggable storage engines as a supported feature config:enable_feature('pluggable-storage-engines'), diff --git a/src/couch_log/src/couch_log_server.erl b/src/couch_log/src/couch_log_server.erl index be44af8ff..ea5def891 100644 --- a/src/couch_log/src/couch_log_server.erl +++ b/src/couch_log/src/couch_log_server.erl @@ -58,6 +58,7 @@ log(Entry) -> init(_) -> + couch_util:set_mqd_off_heap(), process_flag(trap_exit, true), {ok, #st{ writer = couch_log_writer:init() diff --git a/src/ddoc_cache/src/ddoc_cache_lru.erl b/src/ddoc_cache/src/ddoc_cache_lru.erl index e94934d04..248a76dc8 100644 --- a/src/ddoc_cache/src/ddoc_cache_lru.erl +++ b/src/ddoc_cache/src/ddoc_cache_lru.erl @@ -87,6 +87,7 @@ refresh(DbName, DDocIds) -> init(_) -> + couch_util:set_mqd_off_heap(), process_flag(trap_exit, true), BaseOpts = [public, named_table], CacheOpts = [ diff --git a/src/mem3/src/mem3_shards.erl b/src/mem3/src/mem3_shards.erl index c84b87397..da3b69a61 100644 --- a/src/mem3/src/mem3_shards.erl +++ b/src/mem3/src/mem3_shards.erl @@ -184,6 +184,7 @@ handle_config_terminate(_Server, _Reason, _State) -> erlang:send_after(?RELISTEN_DELAY, whereis(?MODULE), restart_config_listener). init([]) -> + couch_util:set_mqd_off_heap(), ets:new(?SHARDS, [ bag, public, diff --git a/src/rexi/src/rexi_server.erl b/src/rexi/src/rexi_server.erl index 3d3f272e4..954ca88cb 100644 --- a/src/rexi/src/rexi_server.erl +++ b/src/rexi/src/rexi_server.erl @@ -39,6 +39,7 @@ start_link(ServerId) -> gen_server:start_link({local, ServerId}, ?MODULE, [], []). init([]) -> + couch_util:set_mqd_off_heap(), {ok, #st{}}. handle_call(get_errors, _From, #st{errors = Errors} = St) -> -- cgit v1.2.1