Set LD_PRELOAD to load jemalloc in Dockerfile-workers. (#14182)

1.103.0-whithout-watcha
realtyem 2 years ago committed by GitHub
parent c3e4edb4d6
commit c7446906bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      changelog.d/14182.docker
  2. 12
      docker/configure_workers_and_start.py

@ -0,0 +1 @@
Set LD_PRELOAD to use jemalloc memory allocator in Dockerfile-workers.

@ -39,6 +39,7 @@
# continue to work if so.
import os
import platform
import subprocess
import sys
from pathlib import Path
@ -632,14 +633,23 @@ def main(args: List[str], environ: MutableMapping[str, str]) -> None:
with open(mark_filepath, "w") as f:
f.write("")
# Lifted right out of start.py
jemallocpath = "/usr/lib/%s-linux-gnu/libjemalloc.so.2" % (platform.machine(),)
if os.path.isfile(jemallocpath):
environ["LD_PRELOAD"] = jemallocpath
else:
log("Could not find %s, will not use" % (jemallocpath,))
# Start supervisord, which will start Synapse, all of the configured worker
# processes, redis, nginx etc. according to the config we created above.
log("Starting supervisord")
os.execl(
os.execle(
"/usr/local/bin/supervisord",
"supervisord",
"-c",
"/etc/supervisor/supervisord.conf",
environ,
)

Loading…
Cancel
Save