On 11/2/21 14:10, Neal Gompa wrote:
On Tue, Nov 2, 2021 at 9:07 AM Sasi Olin
wrote: Am 2. November 2021 13:48:54 MEZ schrieb Per Jessen
: * more mailman stuff - 'uwsgi' keeps getting killed by the oom killer, 3-4-5 times a day. The machine has 8Gb, but very little swap.
It would likely be a good idea to use something else than uwsgi, since that doesn't have the best performance. I may have a look into alternative solutions, but can't promise anything >
Pagure uses gunicorn, maybe that's worth looking into for HyperKitty and Postorius?
Regarding the OOM kills I'm not entirely sure whether uwsgi is the culprit. My own test mailman installation required 1,6 GB of RAM while essentially doing nothing. FWIW I've also migrated all my web apps to run under control of gunicorn instead of uwsgi. The main reason was not performance but missing packages on some Linux distros (e.g. no uwsgi on CentOS8). Also you can remove mod_proxy_uwsgi from Apache config and use standard mod_proxy_http even if gunicorn listens on a Unix domain socket. However there's a subtle difference between gunicorn and uwsgi regarding when custom, non-worker *threads* are started. It required a change in my old-fashioned web app to deal with lazy thread initialization after initial gunicorn process fork. Likely mailman's worker processes are not affected by this though: https://mailman-bundler.readthedocs.io/en/stable/README.html#running-on-guni... It also took me a while to mentally accept that ProxyPass directive needs a pseudo IP address / port combo even if gunicorn only listens on a Unix domain socket - which is IMO pretty counterintuitive. Example: ProxyPass unix:/run/ae-dir/gunicorn/ae-dir-pwd/ae-dir-pwd.sock|http://127.0.0.1:8081/ If you're running into problems migrating to gunicorn feel free to contact me. Ciao, Michael.