[kwlug-disc] Service resource management: i.e. Mailman3 vs Mailman2

Ronald Barnes ron at ronaldbarnes.ca
Fri Jan 31 18:53:04 EST 2025


Khalid Baheyeldin wrote on 2025-01-31 15:39:

>     The memory usage I showed earlier did not include PostgreSQL, it was a
>     gazillion Python interpreters and one shell.
> 
> 
> PostgreSQL itself will be using a lot of memory.
> 
> But my guess here is that it could very well be that processes that issue
> queries to the database do it in an inefficient way.

I should look closer at the processes being run.



Mailman v2 (slightly trimmed to avoid wrapping):

Command
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=ArchRunner
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=OutgoingRunner
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=VirginRunner
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=IncomingRunner
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=BounceRunner
/usr/bin/python2 /usr/lib/mailman/bin/mailmanctl -s start
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=CommandRunner-s
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=NewsRunner
/usr/bin/python2 /var/lib/mailman/bin/qrunner --runner=RetryRunners

Looks like all mail handling. No DB is used by v2.



Mailman v3:

/venv/bin/master -C /etc/mailman3/mailman.cfg
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=archive
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=bounces
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=command
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=in
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=lmtp
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=out
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=pipeline
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=rest
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=retry
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=task
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=virgin
/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=digest


And all those are for mail processing except --runner=rest, which I 
think is web interface.

One of those just for digests?  Shouldn't that be a cron job task, not a 
persistent one?


Mailman3-web:

/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini
/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini
/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini
/opt/mailman/venv/bin/mailman-web qcluster"
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster
/venv/bin/python /opt/mailman/venv/bin/mailman-web qcluster


All those uswgi are web services gateway interface stuff, as the service 
name indicates.

The rest of them?

Who even knows?

I bet one (or more) of these are for querying the DB and reading / 
feeding messages from mail queues / to web interface.



This all gives me a headache.




More information about the kwlug-disc mailing list