1024 is a typical safe number. the highert this is, the more RAM you can potentially consume
to estimate, you can multiply max_ready x your average message size.
( like i did above)
Is there a unified setting place, or can only be set by tenants. Because the content sent by each tenant is not necessarily, I cannot be completely sure. My idea is to use the memory as much as possible, but when a certain threshold (80% of the memory) is reached, kumo should automatically control the max_ready
if you are using a version after March 19th, then it defaults to 80% of the soft limit, but that is not an absolute. This only tries to mitigate issues, it might not be able to solve issues if the messages are not moving at all.
I’m not sure what you mean by “Is there a unified setting place”. If you are using the helpers, you can set this in the shaping file
I haven’t set it max_ready, the default should be 1024, but now it is 409k, which is equivalent to 1024 max_ready there are 400 tenants, but there are less than 100 tenants in my system.
yeah, I use shaping heaper .
What is your average message size?
It is really difficult to predict, basically around 100K
KumoMTA internal: no sources for xxxx pool='xxxx' are eligible for selection at this time
There are a lot of logs(100K), because Spam
This means that all sources in that pool are suspended. Messages are just sitting in queues waiting to be assigned to IPs that are suspended, likely due to spam complaints.
basically, you have no outbound connections available
You could potentially admin bounce all the messages in those problem queues, but the IPs will likely be suspended again quickly if you try usineg then too soon.
Does this type of message take up memory? Will it take up when you enter the ready queue?
The two pictures are only 5 seconds apart.
A lot can happen in 5 seconds ![]()
After I looked at the log, I found a suspicious problem.
There are many type:Delayed logs in the log . and the next retry time for these messages will be about 5 seconds
Then if there are 10k messages, then there will create 100K always be messages sent from Delayed
According to max_ready documentation
If a message is promoted from its delayed queue to the ready queue and it would take the size of the ready queue above max_ready, the message will be delayed by a randomized interval of up to 60 seconds and placed back into the scheduled queue before being considered again.
Moving a message from ready to scheduled as a result of hitting this limit may trigger disk IO to save the content of the message if the message was received with deferred spooling enabled. In addition, other in-memory state is discarded to reduce memory utilization, and it will need to be re-loaded from the spool when the message is tried again later.
If I limit the sending speed of an Email provider, I currently increase the limit in queue.toml and shaping.toml. is it because this limit causes the Delayed of messages to loop all the time?

