Cyrus, Solaris 10, ZFS? (and NIS?)
Dale Ghent
daleg at umbc.edu
Thu Oct 5 16:32:45 EDT 2006
On Oct 5, 2006, at 1:59 PM, Elizabeth Schwartz wrote:
> >There's a bug in ZFS regarding performance problems when fsync'ing
> >file descriptors -- there's apparently going to be a patch coming
> >"real soon now" -- your options are:
>
> Thanks!
>
> Ugh, that would be bad news. Except, I think the delay is happening
> earlier. The delay is between the A001 login and A001 ok, and the
> only zfs file system is the mail spool (I should have spelled that
> out)
Have you verified the contents of /etc/nsswitch.conf ? Have you tried
pointing its ypservers at localhost (since you say this server is
also a NIS slave)? Also check the contents of /etc/nscd.conf on your
old server and compare it to the new.
> I've been playing with the dtrace toolkit this afternoon - still a
> bit stuck on how to get from my tcp port connection to the process
> number to run dtrace dtruss (lsof *should* be the right tool but
> I'm missing a step somewhere)
Do this:
To simplify, telnet to your imap server's imap port from a machine
that otherwise has no connections to that server.
On the imap server, and assuming that your imapd processes run under
a certain username such as "cyrus", run the following command,
replacing the -u argument in pgrep with your imapd user and the IP
address in the egrep portion with the IP address you are telnetting
from:
pfiles `pgrep -u cyrus imapd` | egrep '(imapd|xxx.xxx.xxx.xxx)'
You will then get output similar to the following:
25723: imapd
26910: imapd
25084: imapd
27962: imapd
peername: AF_INET xxx.xxx.xxx.xxx port: 50630
peername: AF_INET xxx.xxx.xxx.xxx port: 50630
peername: AF_INET xxx.xxx.xxx.xxx port: 50630
8772: imapd
With the above, imapd PID 27962 is your process to debug your problem
with.
Run 'pldd <PID> | grep libsasl2' and not the full name of the
libsasl2 library your imapd uses, such as "libsasl2.so.2.0.21" sans
the preceding path (ie, leave off /usr/local/lib)
Download the Dtrace Toolkit (google for it) and run the dappprof
program. Now run it against the imapd PID and only key in on the
calls made by the SASL library:
dappprof -u libsasl2.so.2.0.21 -F -p <PID>
Over in your imapd telnet window, issue a login command (A001 LOGIN
foo bar). After the login returns, hit Ctrl-C in dappprof and look at
the times (which are in microseconds, so move the decimal place as
you see fit to better understand the times).
Look for which function in SASL takes the longest to return.
/dale
--
Dale Ghent
UNIX Systems Specialist
UMBC - Office of Information Technology
ECS 201 - x51705
More information about the Info-cyrus
mailing list