GNOME Bugzilla – Bug 733274
EWS is very slow to download large messages
Last modified: 2014-07-21 12:00:10 UTC
While trying to debug the "listen for server change notifications" on Exchange 2010 SP1 and Evo EWS, I discovered that the nofications were blocked due to downloading of new message. This was blocking the new mail notifications from server and refreshing of GUI. So here's the issue: When EWS is used to access Exchange account (512 MB mailbox, maybe 250MB used) 1) "downloading messages for offline use" takes ages. I have to leave it overnight to download 2) likewise downloading a new but large message (ie 5MB, 10 MB) literally takes ages. Downloading same message with IMAP using Thunderbird takes maybe half a minute. For example, the 10 MB email that blocks Evo from receiving notifications of new mails downloaded in 14 minutes (12kb/sec). I'm requested to make a new bug report from this bug: https://bugzilla.gnome.org/show_bug.cgi?id=699349 which referred to this bug as a hint (similar issue with IMAP): https://bugzilla.gnome.org/show_bug.cgi?id=719475 This is Evolution, EDS and EWS compiled from git master on 13/07/2014.
I investigated the possibilities on the libsoup side and there are not many options. I tried both soup_request_send() and soup_message_set_chunk_allocator(). I can increase chunk size from 8KB to 16KB with both methods, but even if I tell to download larger chunks (which was the fix in IMAP), then the server still sends only up to 16KB chunks. I take this as a prove that comparing IMAP protocol with EWS protocol is misleading, both are different technologies with different implementations on the same server. I sometimes get quicker results with the tweaked libsoup (it doesn't matter whether with the chunk allocator or the request), but not always. It feels like a good thing to do, to request larger chunks, thus I'll do the change in the evolution-ews. I will use the deprecated soup_message_set_chunk_allocator(), to not have too many changes in the code. In any case, according to my tests, we cannot do better with EWS. I also tried with curl and that is also slow, thus it is not about libsoup, but about the server as such. Hopefully newer Exchange servers (2013+) do/will provide better response times. Created commit 3d6611f in ews master (3.13.4+) [1] Created commit 10eb3f4 in ews evolution-ews-3-12 (3.12.5+) [1] https://git.gnome.org/browse/evolution-ews/commit/?id=3d6611f
I forgot to add here a link to an article I noticed: http://stackoverflow.com/questions/10091745/exchange-web-services-attachment-load-is-slow
Thanks Milan for your effort and time trying to fix it. What I will try to do from my side is to see if Outlook is able to download faster. as far as I know, the new versions, at least the one on Mac OsX is also using EWS as its main protocol. If it is downloading fast, then maybe we are missing something.
Good idea, especially if you'll connect to the same server.