Hi,
I have the following trouble: If I delete (move to trash) several messages one after the other, roundcube get slow after deleting a few messages (around 5). Slow means, that it takes around a minute to delete a single message.
In the logs I see, that for every delete operation, roundcube issues a new connection/login to the imap server. I suspect that after a few such operations, to "pool" of available connections to the imap server is exhausted, which causes the delay. This is supported by the observation that the delete operation seems to complete as soon as an "old" connection is closed, which seems to happen after 60 s (keep_alive time).
I wonder if I configured something wrong, because to my opinion it would be more efficient if roundcube just uses the established-connection instead of opening a new one for every (delete) operation.
I just realized, that for every operation (i.e. view a message) roundcube issues a new login/connection to the imap server. Is this really intended?
Any hints welcome.
cheers, Hp
List info: http://lists.roundcube.net/users/
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hanspeter Kunz wrote:
Hi,
I have the following trouble: If I delete (move to trash) several messages one after the other, roundcube get slow after deleting a few messages (around 5). Slow means, that it takes around a minute to delete a single message.
In the logs I see, that for every delete operation, roundcube issues a new connection/login to the imap server. I suspect that after a few such operations, to "pool" of available connections to the imap server is exhausted, which causes the delay. This is supported by the observation that the delete operation seems to complete as soon as an "old" connection is closed, which seems to happen after 60 s (keep_alive time).
I wonder if I configured something wrong, because to my opinion it would be more efficient if roundcube just uses the established-connection instead of opening a new one for every (delete) operation.
I just realized, that for every operation (i.e. view a message) roundcube issues a new login/connection to the imap server. Is this really intended?
Any hints welcome.
cheers, Hp
I use IMAPPROXY (http://www.imapproxy.org/) to speedup my webmail setup. This proxy does this by closing the connection to the server only after a predetermined time, thus for each action that's preformed, a new connection is not necessary, it just reuses an already existing one.
Jorge Valdes
List info: http://lists.roundcube.net/users/
On Fri, 2010-04-23 at 13:57 -0600, Jorge Valdes wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hanspeter Kunz wrote:
Hi,
I have the following trouble: If I delete (move to trash) several messages one after the other, roundcube get slow after deleting a few messages (around 5). Slow means, that it takes around a minute to delete a single message.
In the logs I see, that for every delete operation, roundcube issues a new connection/login to the imap server. I suspect that after a few such operations, to "pool" of available connections to the imap server is exhausted, which causes the delay. This is supported by the observation that the delete operation seems to complete as soon as an "old" connection is closed, which seems to happen after 60 s (keep_alive time).
I wonder if I configured something wrong, because to my opinion it would be more efficient if roundcube just uses the established-connection instead of opening a new one for every (delete) operation.
I just realized, that for every operation (i.e. view a message) roundcube issues a new login/connection to the imap server. Is this really intended?
Any hints welcome.
cheers, Hp
I use IMAPPROXY (http://www.imapproxy.org/) to speedup my webmail setup. This proxy does this by closing the connection to the server only after a predetermined time, thus for each action that's preformed, a new connection is not necessary, it just reuses an already existing one.
Thanks, that would be a solution. But isn't this a workaround? Is roundcube supposed to open a new connection for every single operation? I wonder why there is a keep_alive setting if this is really the case.
cheers, Hp
List info: http://lists.roundcube.net/users/
On Apr 23, 2010, at 3:04 PM, Hanspeter Kunz wrote:
I use IMAPPROXY (http://www.imapproxy.org/) to speedup my webmail setup. This proxy does this by closing the connection to the server only after a predetermined time, thus for each action that's preformed, a new connection is not necessary, it just reuses an already existing one.
I second the awesomeness of IMAPPROXY, my message access times went from ~2.5 sec to < 0.5 sec once I started using IMAPPROXY.
Thanks, that would be a solution. But isn't this a workaround? Is roundcube supposed to open a new connection for every single operation? I wonder why there is a keep_alive setting if this is really the case.
Yes round cube is supposed to open a new connection for every operation.
Any stateless webmail client (squirrelmail, roundcube etc) is going to be unable to persist connections across requests, that is exactly why IMAPPROXY was created:
from www.imapproxy.org/faq.html
Why was imapproxy written in the first place? imapproxy was written to compensate for webmail clients that are unable to maintain persistent connections to an IMAP server. Most webmail clients need to log in to an IMAP server for nearly every single transaction. This behaviour can cause tragic performance problems on the IMAP server. imapproxy tries to deal with this problem by leaving server connections open for a short time after a webmail client logs out. When the webmail client connects again, imapproxy will determine if there's a cached connection available and reuse it if possible.
It is a piece of cake to setup.
--ryan
-- Ryan Horrisberger Software Developer
--- 8< --- detachments --- 8< --- The following attachments have been detached and are available for viewing. http://detached.gigo.com/rc/D9/76bBL5ED/smime.p7s Only click these links if you trust the sender, as well as this message. --- 8< --- detachments --- 8< ---
List info: http://lists.roundcube.net/users/
On Fri, 2010-04-23 at 16:02 -0500, Ryan Horrisberger wrote:
On Apr 23, 2010, at 3:04 PM, Hanspeter Kunz wrote:
I use IMAPPROXY (http://www.imapproxy.org/) to speedup my webmail setup. This proxy does this by closing the connection to the server only after a predetermined time, thus for each action that's preformed, a new connection is not necessary, it just reuses an already existing one.
I second the awesomeness of IMAPPROXY, my message access times went from ~2.5 sec to < 0.5 sec once I started using IMAPPROXY.
Thanks, that would be a solution. But isn't this a workaround? Is roundcube supposed to open a new connection for every single operation? I wonder why there is a keep_alive setting if this is really the case.
Yes round cube is supposed to open a new connection for every operation.
Any stateless webmail client (squirrelmail, roundcube etc) is going to be unable to persist connections across requests, that is exactly why IMAPPROXY was created:
ok, I see, thank you for pointing out the obvious to me. I will give it a try.
cheers, Hp
List info: http://lists.roundcube.net/users/
On Fri, 23 Apr 2010 21:07:41 +0200, Hanspeter Kunz hkunz@ifi.uzh.ch wrote:
I have the following trouble: If I delete (move to trash) several messages one after the other, roundcube get slow after deleting a few messages (around 5). Slow means, that it takes around a minute to delete a single message.
Just mark all messages that you want to be deleted using CTRL key and then delete.
On Sat, 2010-04-24 at 09:45 +0200, A.L.E.C wrote:
On Fri, 23 Apr 2010 21:07:41 +0200, Hanspeter Kunz hkunz@ifi.uzh.ch wrote:
I have the following trouble: If I delete (move to trash) several messages one after the other, roundcube get slow after deleting a few messages (around 5). Slow means, that it takes around a minute to delete a single message.
Just mark all messages that you want to be deleted using CTRL key and then delete.
sure. I could also change the settings to only mark messages as deleted (and not moving them to the trash). In those circumstances, roundcube is fast enough.
I am not interested in looking for workarounds. I am sure that moving messages cannot take 60 seconds.
It has also been suggested that I use imapproxy. While that *is* a very valuable suggestion (and I will give it a try) it is still a mystery to me, while deleting messages in sequence takes up around 60 s. Clearly, this is either a problem with my configuration or something which should be improved in roundcube.
cheers, Hp
List info: http://lists.roundcube.net/users/
Dnia Sat, 24 Apr 2010 11:03:15 +0200 Hanspeter Kunz hkunz@ifi.uzh.ch napisał(a):
Clearly, this is either a problem with my configuration or something which should be improved in roundcube.
I think, there is something wrong with your roundcube or IMAP server. I can delete messages in sequence with no noticeable delay.
SysAdmin put forth on 4/24/2010 4:28 AM:
Dnia Sat, 24 Apr 2010 11:03:15 +0200 Hanspeter Kunz hkunz@ifi.uzh.ch napisał(a):
Clearly, this is either a problem with my configuration or something which should be improved in roundcube.
I think, there is something wrong with your roundcube or IMAP server. I can delete messages in sequence with no noticeable delay.
Sounds like his connection concurrency on his imap server is set too low. I can consistently duplicate this long command delay behavior by setting mail_max_userip_connections = 1 or max_mail_processes = 1 in dovecot and connecting with a default TBird client which makes 5 concurrent imap connections upon startup.
I can't duplicate this problem with my RC server as it runs on the same host as dovecot, thus bypassing the TCP stack. Since the connection isn't through TCP, none of dovecot's concurrency limits are triggered. They only apply to remote imap connections.
On Sat, 2010-04-24 at 07:29 -0500, Stan Hoeppner wrote:
SysAdmin put forth on 4/24/2010 4:28 AM:
Dnia Sat, 24 Apr 2010 11:03:15 +0200 Hanspeter Kunz hkunz@ifi.uzh.ch napisał(a):
Clearly, this is either a problem with my configuration or something which should be improved in roundcube.
I think, there is something wrong with your roundcube or IMAP server. I can delete messages in sequence with no noticeable delay.
Sounds like his connection concurrency on his imap server is set too low. I can consistently duplicate this long command delay behavior by setting mail_max_userip_connections = 1 or max_mail_processes = 1 in dovecot and connecting with a default TBird client which makes 5 concurrent imap connections upon startup.
yes, that is what I suspected too first. Indeed, I had to increase the max_userip_connections limit in the past. Since then, our dovecot server works fine with all clients (Evolution, TBird, Applemail, ...), except for roundcube. And there is no indication in the logs that the max_userip_connections limit is hit.
But I agree, as others report having no problems deleting mail sequentially, that the problem has to be here somewhere. I will investigate further.
Thanks for the suggestions, Hp
List info: http://lists.roundcube.net/users/
Dnia Sat, 24 Apr 2010 16:17:52 +0200 Hanspeter Kunz hkunz@ifi.uzh.ch napisał(a):
But I agree, as others report having no problems deleting mail sequentially, that the problem has to be here somewhere. I will investigate further.
Maybe this is some plugin related problem. Try to disable all of them, but this is of course blind guess.
On Sat, 2010-04-24 at 17:24 +0200, SysAdmin wrote:
Dnia Sat, 24 Apr 2010 16:17:52 +0200 Hanspeter Kunz hkunz@ifi.uzh.ch napisał(a):
But I agree, as others report having no problems deleting mail sequentially, that the problem has to be here somewhere. I will investigate further.
Maybe this is some plugin related problem. Try to disable all of them, but this is of course blind guess.
It wasn't the plugins, but thanks. Still investigating...
List info: http://lists.roundcube.net/users/
Hanspeter Kunz put forth on 4/24/2010 9:17 AM:
yes, that is what I suspected too first. Indeed, I had to increase the max_userip_connections limit in the past. Since then, our dovecot server works fine with all clients (Evolution, TBird, Applemail, ...), except for roundcube. And there is no indication in the logs that the max_userip_connections limit is hit.
This may not be an imap concurrency limit being hit but an auth process limit. The two are configured separately and auth has many more knobs.
Regardless, installing an imap proxy will very likely solve your problem painlessly and with little effort.
Please do install and properly configure an imap proxy on your RC server. It's very lightweight. You don't need a separate box for it. This Debian aptitude description pretty much spells out why (most) webmail servers need an imap proxy.
Description: IMAP protocol proxy UP-ImapProxy proxies IMAP transactions between an IMAP client and an IMAP server. The general idea is that the client should never know that it is not talking to the real IMAP server, but ImapProxy caches server connections.
ImapProxy was written to compensate for webmail clients that are unable to maintain persistent connections to an IMAP server. Most webmail clients need to log in to an IMAP server for nearly every single transaction; This behaviour can cause tragic performance problems on the IMAP server. ImapProxy tries to deal with this problem by leaving server connections open for a short time after a webmail client logs out. When the webmail client connects again, ImapProxy will determine if there is a cached connection available and reuse it if possible. Homepage: http://www.imapproxy.org
On Sat, 2010-04-24 at 11:59 -0500, Stan Hoeppner wrote:
Hanspeter Kunz put forth on 4/24/2010 9:17 AM:
yes, that is what I suspected too first. Indeed, I had to increase the max_userip_connections limit in the past. Since then, our dovecot server works fine with all clients (Evolution, TBird, Applemail, ...), except for roundcube. And there is no indication in the logs that the max_userip_connections limit is hit.
This may not be an imap concurrency limit being hit but an auth process limit. The two are configured separately and auth has many more knobs.
ah, good point. I increased auth_worker_max_count to 64 and this seems to have solved the problem. Thanks!
Regardless, installing an imap proxy will very likely solve your problem painlessly and with little effort.
yes, yes, you've already convinced me, I *will* install imapproxy, I promise :)
I first wanted to solve the problem and then to improve the system ;)
Many thanks to all of you, Hp
Please do install and properly configure an imap proxy on your RC server. It's very lightweight. You don't need a separate box for it. This Debian aptitude description pretty much spells out why (most) webmail servers need an imap proxy.
Description: IMAP protocol proxy UP-ImapProxy proxies IMAP transactions between an IMAP client and an IMAP server. The general idea is that the client should never know that it is not talking to the real IMAP server, but ImapProxy caches server connections.
ImapProxy was written to compensate for webmail clients that are unable to maintain persistent connections to an IMAP server. Most webmail clients need to log in to an IMAP server for nearly every single transaction; This behaviour can cause tragic performance problems on the IMAP server. ImapProxy tries to deal with this problem by leaving server connections open for a short time after a webmail client logs out. When the webmail client connects again, ImapProxy will determine if there is a cached connection available and reuse it if possible. Homepage: http://www.imapproxy.org
List info: http://lists.roundcube.net/users/