From 04c2339cc1179cf8e0d70227f2272b1fcd94d09d Mon Sep 17 00:00:00 2001 From: embr Date: Sat, 4 Sep 2021 11:07:04 +0200 Subject: [PATCH] nixos/mastodon: Add configurable web- and streaming concurrency Might as well do this while I'm at it. (cherry picked from commit 0d719125baee88e2e8d29e6bb2ff3100ba1b2da0) --- nixos/modules/services/web-apps/mastodon.nix | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix index e3bc70791cf..5bda7d5a5dd 100644 --- a/nixos/modules/services/web-apps/mastodon.nix +++ b/nixos/modules/services/web-apps/mastodon.nix @@ -9,6 +9,13 @@ let RAILS_ENV = "production"; NODE_ENV = "production"; + # mastodon-web concurrency. + WEB_CONCURRENCY = toString cfg.webProcesses; + MAX_THREADS = toString cfg.webThreads; + + # mastodon-streaming concurrency. + STREAMING_CLUSTER_NUM = toString cfg.streamingProcesses; + DB_USER = cfg.database.user; REDIS_HOST = cfg.redis.host; @@ -146,12 +153,30 @@ in { type = lib.types.port; default = 55000; }; + streamingProcesses = lib.mkOption { + description = '' + Processes used by the mastodon-streaming service. + Defaults to the number of CPU cores minus one. + ''; + type = lib.types.nullOr lib.types.int; + default = null; + }; webPort = lib.mkOption { description = "TCP port used by the mastodon-web service."; type = lib.types.port; default = 55001; }; + webProcesses = lib.mkOption { + description = "Processes used by the mastodon-web service."; + type = lib.types.int; + default = 2; + }; + webThreads = lib.mkOption { + description = "Threads per process used by the mastodon-web service."; + type = lib.types.int; + default = 5; + }; sidekiqPort = lib.mkOption { description = "TCP port used by the mastodon-sidekiq service.";