
Using the uwsgi.ini from the virtualenv method documentation, mailmanweb is constantly using 2GB RAM on my server. My database (MariaDB) size is 2GB.
Is this expected?
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]

We are using gunicorn rather than uwsgi. It was getting a ton of traffic, and seemed to have memory leaks at the same time, so I am trying this now:
workers = 5 threads = 4 max_requests = 1200 max_requests_jitter = 50
constantly using 2GB RAM
Our server has settled in around 2GB also. It's working well. Which is certainly better than even much more memory and crashing. :-)

Odhiambo Washington via Mailman-users writes:
Using the uwsgi.ini from the virtualenv method documentation, mailmanweb is constantly using 2GB RAM on my server.
Do you mean only HyperKitty + Postorius? That seems like a lot. My experience is that even on an insanely heavily loaded server (20k+ lists) the whole suite uses about 2.0G. Since on that server, Mailman core was forking 22 processes at ~83MB each (very little shared, not sure the technical reason for that, maybe the Python heap just can't be shared?), core was taking up about 1.8G. HyperKitty and Postorius took a little more (I don't recall exactly, maybe 250MB?)
My more standard setup (that one had like 2 IN queue slices and 8 OUT queue slices) I ran Mailman suite + PostgreSQL (dedicated to Mailman)
- Postfix + nginx (also mostly dedicated to Mailman) + Cyrus IMAPd in a nominal 2GB Digital Ocean droplet. It didn't run "comfortably", adding any serious load that chewed up 100s of MB RAM would get things OOM-killed, but 2GB total (including kernel and all) was barely enough for that system in normal situations.
My database (MariaDB) size is 2GB.
Do you mean in memory or on disk? Either way that should have ~0 effect on the size of the Mailman core and web processes.
Is this expected?
Depends on if you mean exactly what you said ("mailmanweb"). If so, no, I would expect mailmanweb (only) to run in 500MB easily and probably be OK in 250MB. If you mean "when I start Mailman and mailmanweb, memory usage jumps by about 2GB", then yes, that's what I'd expect.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

On Sat, Oct 11, 2025 at 5:10 PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Odhiambo Washington via Mailman-users writes:
Using the uwsgi.ini from the virtualenv method documentation, mailmanweb is constantly using 2GB RAM on my server.
Do you mean only HyperKitty + Postorius? That seems like a lot. My experience is that even on an insanely heavily loaded server (20k+ lists) the whole suite uses about 2.0G. Since on that server, Mailman core was forking 22 processes at ~83MB each (very little shared, not sure the technical reason for that, maybe the Python heap just can't be shared?), core was taking up about 1.8G. HyperKitty and Postorius took a little more (I don't recall exactly, maybe 250MB?)
Yes, just Hyperkitty+Postorius: Please see https://imgur.com/a/LPAY69N It represents what I see daily when I run btop.It's always around 2GB, but rarely do I see above. I only have 1 major active mailing list on this server. There are other inactive ones. The main ML has been active since 2005. I migrated it to MM3 from MM2.1.39.
My more standard setup (that one had like 2 IN queue slices and 8 OUT queue slices) I ran Mailman suite + PostgreSQL (dedicated to Mailman)
- Postfix + nginx (also mostly dedicated to Mailman) + Cyrus IMAPd in a nominal 2GB Digital Ocean droplet. It didn't run "comfortably", adding any serious load that chewed up 100s of MB RAM would get things OOM-killed, but 2GB total (including kernel and all) was barely enough for that system in normal situations.
My database (MariaDB) size is 2GB.
Do you mean in memory or on disk? Either way that should have ~0 effect on the size of the Mailman core and web processes.
My MM3 database size on disk.
Is this expected?
Depends on if you mean exactly what you said ("mailmanweb"). If so, no, I would expect mailmanweb (only) to run in 500MB easily and probably be OK in 250MB. If you mean "when I start Mailman and mailmanweb, memory usage jumps by about 2GB", then yes, that's what I'd expect.
In my case, the ~2GB RAM consumption by the uwsgi process is a constant.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]

Odhiambo Washington via Mailman-users writes:
On Sat, Oct 11, 2025 at 5:10?PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Do you mean only HyperKitty + Postorius? That seems like a lot.
Yes, just Hyperkitty+Postorius: Please see https://imgur.com/a/LPAY69N It represents what I see daily when I run btop. It's always around 2GB, but rarely do I see above. I only have 1 major active mailing list on this server. There are other inactive ones.
I'm not sure what's going on. I'm pretty sure you would save up to 1.5GB by switching to gunicorn vs the uwsgi configuration you have.
But the uswgi project has acquired functionality the way systemd has over the last few years. It seems likely that you could configure it to save a lot of memory by removing functionality you don't use. Not sure whether than involves recompiling or just disabling unused plugins, I'm not really familiar with uwsgi, since even for the largest instances I've seen gunicorn is sufficiently performant and secure.
The MySQL footprint also seems a bit high. but not insane, my PostgreSQL weighs in at about 1.2GB-1.5GB.
Overall, you don't have an insane configuration, but it depends on what you're optimizing for.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

On Sun, Oct 12, 2025 at 9:48 AM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Odhiambo Washington via Mailman-users writes:
On Sat, Oct 11, 2025 at 5:10?PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Do you mean only HyperKitty + Postorius? That seems like a lot.
Yes, just Hyperkitty+Postorius: Please see https://imgur.com/a/LPAY69N It represents what I see daily when I run btop. It's always around 2GB, but rarely do I see above. I only have 1 major active mailing list on this server. There are other inactive ones.
I'm not sure what's going on. I'm pretty sure you would save up to 1.5GB by switching to gunicorn vs the uwsgi configuration you have.
But the uswgi project has acquired functionality the way systemd has over the last few years. It seems likely that you could configure it to save a lot of memory by removing functionality you don't use. Not sure whether than involves recompiling or just disabling unused plugins, I'm not really familiar with uwsgi, since even for the largest instances I've seen gunicorn is sufficiently performant and secure.
I will switch to gunicorn and see how that goes.
The MySQL footprint also seems a bit high. but not insane, my PostgreSQL weighs in at about 1.2GB-1.5GB.
My MariaDB is running some WordPress websites. Mailman is just one other application using it. Last week, I tried to migrate the MM3 DB to PostgreSQL, but didn't quite succeed at the last minute. It's an exercise for another day.
Overall, you don't have an insane configuration, but it depends on
what you're optimizing for.
Thank you for looking into this. I will update once I have made the changes.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
participants (3)
-
Odhiambo Washington
-
Sam Darwin
-
Stephen J. Turnbull