summary refs log tree commit diff
path: root/synapse/config/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/config/server.py')
-rw-r--r--synapse/config/server.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py
index e33cd51f7c..89d61a0503 100644
--- a/synapse/config/server.py
+++ b/synapse/config/server.py
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 # Copyright 2014-2016 OpenMarket Ltd
+# Copyright 2017 New Vector Ltd
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -148,22 +149,24 @@ 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.
+        # 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).
         #
-        # This is desirable for Synapse processes (especially workers), which are
-        # inherently single-threaded due to the GIL and can suffer a 30-40% slowdown
-        # due to cache blow-out and thread context switching if the scheduler happens
-        # to schedule the underlying threads across different cores.
-        # See https://www.mirantis.com/blog/improve-performance-python-programs-restricting-single-cpu/
+        # Pinning a Python process to a single CPU is desirable, because Python
+        # is inherently single-threaded due to the GIL, and can suffer a
+        # 30-40%% slowdown due to cache blow-out and thread context switching
+        # if the scheduler happens to schedule the underlying threads across
+        # different cores. See
+        # https://www.mirantis.com/blog/improve-performance-python-programs-restricting-single-cpu/.
         #
         # cpu_affinity: 0xFFFFFFFF