Re: Some timing info on populating mailboxes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 17 Dec 2006, at 14:12, Ross Boylan wrote:
Is it enough to set this on the listening IMAP socket, or does it need
to be set on the sockets that get opened up as the dialogue
progresses?  Put differently, can I write a little independent program
to set the socket options, or do I need to modify the cyrus sources
(or perhaps those of mailutils?)?

You need to insert it into both the client and server, it needs to happen within the program that uses the socket in question. The option is socket specific, it has no effect on the rest of the system. Ideally, you'd do it just after the connect() on the client or accept() on the server. I see that stock Cyrus doesn't have Nagel disabled. I can't think of what use enabling Nagel would have for Cyrus, and disabling Nagel would certainly tend to improve performance.

The problem as I understand it is with very small exchanges. So the client says something like "select this mailbox". Since it doesn't fill a buffer, Nagel says to hang on to it for a fraction of a second. Similarly, the server responds to something like the example "select" with "OKAY", which is also small and so is buffered. Since IMAP is characterized by these many small exchanges, the cumulative delay can be large, and the protocol doesn't operate at anywhere near maximum throughput. When full messages are exchanged, the buffers are filled, so those don't suffer from delays, but keep in mind that IMAP is designed to avoid sending the full message under most circumstances.

:wes
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux