diff options
author | Richard van der Hoff <richard@matrix.org> | 2017-08-15 17:08:28 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2017-08-15 17:08:28 +0100 |
commit | 10d8b701a1fa585c5fc2d5edcea8d4d02ae360a4 (patch) | |
tree | 5c6a455a53db8c5eb91c8b648d0eb92daf05098e /synapse/config | |
parent | Factor out common application start (diff) | |
download | synapse-10d8b701a1fa585c5fc2d5edcea8d4d02ae360a4.tar.xz |
Allow configuration of CPU affinity
Make it possible to set the CPU affinity in the config file, so that we don't need to remember to do it manually every time.
Diffstat (limited to 'synapse/config')
-rw-r--r-- | synapse/config/server.py | 12 | ||||
-rw-r--r-- | synapse/config/workers.py | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py index 28b4e5f50c..4e4bf6b432 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -29,6 +29,7 @@ class ServerConfig(Config): self.user_agent_suffix = config.get("user_agent_suffix") self.use_frozen_dicts = config.get("use_frozen_dicts", False) self.public_baseurl = config.get("public_baseurl") + self.cpu_affinity = config.get("cpu_affinity") # Whether to send federation traffic out in this process. This only # applies to some federation traffic, and so shouldn't be used to @@ -147,6 +148,17 @@ class ServerConfig(Config): # When running as a daemon, the file to store the pid in pid_file: %(pid_file)s + # CPU affinity mask. Setting this restricts the CPUs on which the process + # will be scheduled. It is represented as a bitmask, with the lowest order + # bit corresponding to the first logical CPU and the highest order bit + # corresponding to the last logical CPU. Not all CPUs may exist on a + # given system but a mask may specify more CPUs than are present. + # For example: + # 0x00000001 is processor #0, + # 0x00000003 is processors #0 and #1, + # 0xFFFFFFFF is all processors (#0 through #31). + # cpu_affinity: 0xFFFFFFFF + # Whether to serve a web client from the HTTP/HTTPS root resource. web_client: True diff --git a/synapse/config/workers.py b/synapse/config/workers.py index 99d5d8aaeb..c5a5a8919c 100644 --- a/synapse/config/workers.py +++ b/synapse/config/workers.py @@ -33,6 +33,7 @@ class WorkerConfig(Config): self.worker_name = config.get("worker_name", self.worker_app) self.worker_main_http_uri = config.get("worker_main_http_uri", None) + self.worker_cpu_affinity = config.get("worker_cpu_affinity") if self.worker_listeners: for listener in self.worker_listeners: |