Where's the potential bottleneck? Should I use murder way or should I replace the backend?
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 ?
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 ?
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?
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 ?
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]