View Single Post
  #8 (permalink)  
Old 02-25-2008, 09:59 AM
mmorse mmorse is offline
Moderator
 
Posts: 6,236
Default

All: Could you set zimbraMailPurgeSleepInterval to 1h or 1m please? (1m will be the new default)

To explain it better: There really is no concept of a "purge interval". The purge thread is constantly running, purging mailboxes in memory, one at a time. Between every one-two mailboxes it sleeps for the interval specified by zimbraMailPurgeSleepInterval. I have much fewer mailboxes on my server so 1d is fine for me - set accordingly after you work out the math This is way more robust than the old method & allows for spreading the load out overtime, which is especially nice for larger setups.

Work on this was done via Bug 13435 - User-definable expiration policy for systems folders where PurgeThread was implemented, which iterates all the mailboxes on the server and purges them one at a time. Mailboxes are only purged if they're loaded into the server cache & the thread sleeps between subsequent purges.
In short, the current mailbox purge algorithm only affects mailboxes that are in memory - as the theory is that if a mailbox is not in memory, it's not being accessed, not receiving mail, and therefore has less of a need to be purged.
Bug 20720 - Guarantee that mailboxes will be purged was filed for the issue of wanting a double check - possibly by making use of a zimbraMailLastPurgedTimestamp.

And yes zmpurgemessages, which used to produce some heavier load, was removed from cron/libexec in Bug 20705 - Remove zmpurgemessages

Rob: Matt & I have marked Bug 25018 - Spam not being purged from junk folders a dupe for now, as your description when you opened it didn't give mention that you had already tried setting the interval:
Quote:
Originally Posted by rob in bug 25018
With a COS setting of Spam Lifetime = 30d in the Admin web interface, I am seeing older spam accumulate in the junk folders. This started after an upgrade
from 4.5.10 to 5.0.2.
Of course then I saw your forum post - should this not work we'll reopen/redirect.

If you're curious the attribute properties read:
Quote:
<attr id="542" name="zimbraMailPurgeSleepInterval" type="duration" cardinality="single" optionalIn="globalConfig,server" flags="serverInherited,domainAdminModifiable" callback="MailboxPurge">
<globalConfigValue>0</globalConfigValue>
<desc>Sleep time between subsequent mailbox purges. 0 means that mailbox purging is disabled.</desc>
</attr>
I generally set it at the server level, do note that if at any point you set server, it won't inherit from global anymore till it's reset "" - server overrides global - so for instance:
zmprov ms server.domain.com zimbraMailPurgeSleepInterval 1h
overrides:
zmprov mcf zimbraMailPurgeSleepInterval 1m

You can check your values by:
zmprov gacf | grep zimbraMailPurgeSleepInterval
zmprov gs server.domain.com | grep zimbraMailPurgeSleepInterval

To find out who last got cleaned up simply run:
zmprov gs server.domain.com | grep zimbraMailLastPurgedMailboxId

5.0.3 should have: Bug 24823 - expose zimbraMailPurgeSleepInterval in Admin Console. & solve this for others via Bug 23842 - Purging off by default in 5.0 (need upgrade step) -default will be 1m.

Last edited by mmorse; 02-26-2008 at 11:26 AM..
Reply With Quote