Uwe,
I'm running and old version of courier-imap-1.7.2p0 mostly with POP3
accounts, some imap too.
This patch i found on the courier-imap mailing list some years ago
helped me reduce the average
load of the machine, and was able to accept more accounts. I don't know
if it might be helpfull to you.
Also add imapproxy, that will reduce some load too.
Anyway, i'm having big load again due to much more accounts being added.
Currently it's holding
over 7000 email accounts on a pentium4 2.80ghz. The average load reaches
tops of 50 , and
is usually at 15 to 20. At night it comes down to a load average of 2.
The load average is mostly to disk usage, so i'm planning on upgrading
this to OpenBSD 4.3 as
soon as possible, and run the newest courier-imap software. Once there i
will split accounts on
two servers using Perdition or the courier-imap built-in proxy
aggregator. I will do this as soon i
get new hardware, i'm looking for a 1U IBM Server which i'd like to use
for this purpose.
Does anyone has experience with Perdition and/or the built-in proxy
aggregator? Which
one has best performance?
And, different subject , what 1U IBM Servers are supported by OpenBSD? I
had never had
the chance to get one to test. Reccomendations?
Oh yes, here's the patch i mentioned you
------begin-cut----
--- pop3dserver.c Mon Apr 28 15:40:19 2003
+++ /usr/ports/mail/courier-imap/pop3dserver.c Tue Jul 3 16:13:31 2007
@@ -314,6 +314,10 @@
struct msglist **prev_list;
int savesizes=0;
+// PATCH: dont scan every file, ignore rfc like qmail-pop3d
+char *p;
+long s;
+
if (msglist_cnt == 0) return;
if ((msglist_a=(struct msglist **)malloc(
@@ -349,6 +353,13 @@
}
else
{
+
+ // PATCH: dont scan every file, ignore rfc like qmail-pop3d
+ // msglist_a[i]->filename =~
1018021353.83146_0.host.dom,S=9249:2,S
+ if( (p=strstr(msglist_a[i]->filename,",S=")) &&
(s=atol(p+3))>0 )
+ msglist_a[i]->size = (off_t)s;
+ else // fallback to slow rfc-conformant scan
+
calcsize(msglist_a[i]);
savesizes=1;
}
------end-----cut--
Uwe Dippel escribió:
Stuart Henderson wrote:
You can restrict sessions per IP very easily with PF.
Yes, Stuart,
and no. It is never good engineering practice to turn two knobs at the
same time. Firstly, when opening a new folder, courier-imap honours
its limitation gracefully. Second, it would limit the communication
channel between daemon and client. An innocuous 'go to another folder'
or even 'stop search' (agree, it doesn't work as of now, but it
should!) would be dropped. It would still not deliver search results,
because it would spawn N identical searches (N defined by pf). I could
try, and I would as well have to look into it myself, because I don't
know how long the timed-out earlier requests would still count as
'link', since the client seems to consider them dead after
Thunderbirds 60-second mailnews.timeout.
Now, thinking of it, if you don't mind following the line of
arguments: even worse:
- the links are considered 'timed-out', then pf doesn't limit the
number of searches
- the links are considered 'active by pf, then any request by the
client of moving away and going to another folder is dropped
Couldn't be worse, could it!?
What bugs me as well: I have been discussing the matter on the
courier-imap list, but nobody answered, and the upstream writer never
wrote anything but that line of 'courier-imap does not fork'. Over the
years, I have entrusted by IMAP-clients to courier-imap thinking it
was well-written. I start to have my doubts.
Can anyone with dovecot on a very tiny box confirm or deny that it
acts differently? One needs to have more mails in a box than the
daemon can search within the 60 seconds time-out. Then, in the status
bar of Thunderbird, it will say something like 'Connecting to
imap.example.com ...' once per minute. Let it go for some minutes, and
then observe the resource usage on the server.
If dovecot is fine, I'll change immediately. :)
Uwe