Re: dovecot/config processes open, and consuming all memory
From: Aki Tuomi aki.tuomi@open-xchange.com
The *default* configuration for service config is usually just fine.
Is there some reason you decided to modify it in first place?
Are you asking me, or the OP?
I guess the blunt answer is ignorance on my part. However, I pointed
out that the docs about this setting is somewhat misleading -- it's used
to limit any potential memory leaks for long-lived processes by ensuring
it terminates periodically.
I read this and thought to myself "this is a good thing to do", without
realizing that it would have the opposite effect as lingering clients
could delay service termination indefinitely. The side effect is many
new processes are spawned to handle new clients, and eventually
the maximum process limit is reached, and chaos ensues.
So for services like imap-login and others that can have lingering
clients, the only sensible values for service_limit is {0,1}. If you
set service_limit>1, the asymptotic behaviour is like service_limit=1,
and process_limit would have to be adjusted accordingly.
The docs can explain this rather wordy and subtle explanation of
service_limit, or service_limit can be constrained to values {0,1} so that
others don't blunder along the same path I did.
Joseph Tam jtam.home@gmail.com
On 17/08/2022 00:57 EEST Joseph Tam jtam.home@gmail.com wrote:
From: Aki Tuomi aki.tuomi@open-xchange.com
The *default* configuration for service config is usually just fine.
Is there some reason you decided to modify it in first place?
Are you asking me, or the OP?
I guess the blunt answer is ignorance on my part. However, I pointed
out that the docs about this setting is somewhat misleading -- it's used
to limit any potential memory leaks for long-lived processes by ensuring
it terminates periodically.
I read this and thought to myself "this is a good thing to do", without
realizing that it would have the opposite effect as lingering clients
could delay service termination indefinitely. The side effect is many
new processes are spawned to handle new clients, and eventually
the maximum process limit is reached, and chaos ensues.
So for services like imap-login and others that can have lingering
clients, the only sensible values for service_limit is {0,1}. If you
set service_limit>1, the asymptotic behaviour is like service_limit=1,
and process_limit would have to be adjusted accordingly.
The docs can explain this rather wordy and subtle explanation of
service_limit, or service_limit can be constrained to values {0,1} so that
others don't blunder along the same path I did.
Joseph Tam jtam.home@gmail.com
Thanks for the feedback, and sharing this.
Aki
participants (2)
-
Aki Tuomi
-
Joseph Tam