Where's the potential bottleneck? Should I use murder way or should I replace the backend?

2003-02-13 Thread Lin Wang
Hello, dear All:

I just made a test for cyrus-imapd-2.1.12 on a single Sun Blade 2000, with
10,000 mailboxes created.
I started 10 connections, appending a 16K message to the 10,000 mailboxes
simultaneously.
While I found there seems to be a limitation of about 1.5 msg/sec on each
connection, or a total throughput about 240KB/s (16K*1.5*10).

However, I want to improve the throughput to some degree, say 2MB/s, to
support a high-throughput application. So I want to know where is the
potential bottleneck of cyrus-imapd, the single pattern? or the backend
Berkeley?
Should I use the Murder way?  or should I replace the backend with Oracle?
or both of them?

Thanks for any help!


BR,
LinFeb 13, 2003
[EMAIL PROTECTED]





Any suggestion ?

2003-02-10 Thread Lin Wang
BlankHello, All:

When I installed db-4.0.14, cyrus-sasl-2.1.6 and cyrus-imapd-2.1.5 on a new
Solaris platform, with gcc-2.95.3, make-3.79.1 and perl-5.8.0, which went
through on another machine.
Unfortunately this time there was a strange problem which had tortured me
for a whole day:
When I connected to port 143 and tried to login as cyrus (in admins of
/etc/imapd.conf), I got this:
1 NO Login failed: user not found
Or when I run the script: cyradm --user=cyrus --server=localhost, after
inputing the passwd, I got this:
Login failed: user not found at
/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/Cyrus/IMAP/Admin.pm line
114
cyradm: cannot authenticate to server with  as cyrus

But the user cyrus does exist and I checked by
/usr/local/sbin/sasldblistusers2.
Meanwhile, I could login as anonymous if I choosed the option. however
it was no use!

I guess it's sth wrong with SASL procedure, but no idea on it. grateful
for ANY suggestion !


my imap.conf:
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: root cyrus
srvtab: /var/imap/srvtab
sasl_pwcheck_method: auxprop
sasl_passwd_check: shadow
allowanonymouslogin: yes

my cyrus.conf:
START {
  recover   cmd=ctl_cyrusdb -r
}
SERVICES {
  imap  cmd=imapd listen=imap prefork=0
  pop3  cmd=pop3d listen=pop3 prefork=0
  sieve cmd=timesieved listen=sieve prefork=0
# lmtp cmd=lmtpd listen=lmtp prefork=0
  lmtpunix  cmd=lmtpd listen=/var/imap/socket/lmtp prefork=0
}
EVENTS{
  checkpoint   cmd=ctl_cyrusdb -c period=5
  delprune cmd=ctl_deliver -E 3 period=1440
  tlsprune cmd=tls_prune period=1440
}






Broken Pipe ?

2002-12-10 Thread Lin Wang
I made and installed db-4.1.24, cyrus-sasl-2.1.9 and cyrus-imapd-2.1.10.
All the things seem all right.
Ater I had configured /etc/imapd.conf, /etc/inetd.conf, /var/imap...
I started /usr/cyrus/bin/master, and it did run.
Then I connected to 143 port of the server, but this time it failed.
Then I using: 
cyradm --server localhost
It didn't work and appeared the message Broken Pipe.

I don't know why, who could tell me?

BR,
LinDec 11, 2002




What's tsl_prune?

2002-11-19 Thread Lin Wang
BlankDear All:
I run cyrus-imapd for several days and got such information from syslog
file:
... ...
Nov 17 17:29:50 blade1 master[11953]: [ID 578325 local6.error] can't
exec /usr/cyrus/bin/tsl_prune on schedule: No
such file or directory
Nov 18 17:29:50 blade1 master[12466]: [ID 578325 local6.error] can't
exec /usr/cyrus/bin/tsl_prune on schedule: No
such file or directory
Nov 19 17:29:50 blade1 master[13086]: [ID 578325 local6.error] can't
exec /usr/cyrus/bin/tsl_prune on schedule: No
such file or directory

What's tsl_prune? Why can't I find it under the directory? Thanks.



Sincerely,
LinNov 20, 2002
[EMAIL PROTECTED]




background vs. foreground ?

2002-11-04 Thread Lin Wang
Hello, All:
I installed cyrus-imapd-2.1.5 in solaris 2.8, with db-4.0.14 and
cyrus-sasl-2.1.6 altogether.
Now I'm testing a c++ program treating with the concurrent accesses
(Read/Write) to the mailboxes of Cyrus IMAPD, each as an independent
process.

When I run /usr/cyrus/bin/master as a foreground proc, it works well;
However, if I run it as background proc (like /usr/cyrus/bin/master), there
was problem: almost all the processing be blocked on uid fetch command,
where my codes like this:

FD_ZERO(fdRead);
FD_SET(m_nSocket, fdRead);
nRes = select(m_nSocket + 1, fdRead, NULL, NULL, timeout);
if ( nRes  0 )
continue;
else if ( nRes == 0 )
return RECV_RESP_TIMEOUT;//Request TimeOut

if ( FD_ISSET(m_nSocket, fdRead) ) {
nRecvLen += recv(m_nSocket, bufRecv.begin() + nRecvLen,
bufRecv.size(), 0);
... ...
}

I don't know why it got blocked? what happened when running background?
and it sounds strange, doesn't it?
Thanks for any help!


Sincerely,
LinNov 5, 2002
[EMAIL PROTECTED]