Hi Andrzej, What operating system is this on? I suspect maybe it's that the locks or mmaps are significantly more expensive on this platform than on the places I've used it.
Also if you can give specifics of your config that might help a lot in tracking down what's going on. I wonder if setting `reverseacls: true` in your imapd.conf might fix this. If it's locking and unlocking that frequently then it seems like maybe it's doing a mailbox scan that we could be avoiding. Cheers, Bron. On Fri, Nov 5, 2021, at 10:20, Andrzej Kwiatkowski wrote: > > Before Upgrade on old 2.5.x cyrus we have about 250k mailboxes with > about 500k folders. > We made upgrade with imapsync , because of problem with path > compatibility with unixhierarchysep set on yes. > > After upgrade to 3.4.2 we have problem that fcntl locks on mailboxes.db > are very long. For tests we have made copy of one production servers, > and run without load, reconstruct for empty mailbox lasts 4-5 seconds, > and strace shows us: > > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > stat("/store/usermailboxes//config/mailboxes.db", {st_mode=S_IFREG|0600, > st_size=104625064, ...}) = 0 > fcntl(3, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fcntl(3, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=0, > l_len=0}) = 0 > fstat(3, {st_mode=S_IFREG|0600, st_size=104625064, ...}) = 0 > > For reconstruct single mailbox there is sometimes 27k operation for RDLCK. > > One of our server have database with only 50k folders, and there is > everythink ok.We also made dump, restore mailboxes.db, conversion to > skipstamp and back for twoskip. > Without progress. With zeroskip is much worse. > > We also test on XFS,EXT4. Mailboxes.db on ramdisk for removing disk > performance issue.. > > Any idea ? > > Regards > > AK -- Bron Gondwana, CEO, Fastmail Pty Ltd br...@fastmailteam.com ------------------------------------------ Cyrus: Info Permalink: https://cyrus.topicbox.com/groups/info/T61dd54ebdc77fdc5-M668cd6a988cc43afb98e4755 Delivery options: https://cyrus.topicbox.com/groups/info/subscription