Current-Users archive

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

Re: Dramatic perl + mysql slowness when running a compile in parallel



On Tuesday 08 July 2008, Sverre Froyen wrote:
> Hi,
>
> The other day I was testing some perl modules when I decided to compile
> some pkgsrc program.   After starting the compilation, my perl tests
> appeared to hang.  Finally, I figured out that if I waited long enough, the
> tests would eventually finish, but that they would take almost 4 minutes
> rather than the usual 1.2 seconds.   Here's an example:

<snip>

I've reduced the problem to mysql (no perl) and investigated the system calls 
that myqld does with ktruss -R.  Is there a way to get the time spent in the 
system call?  It looks like ktruss timestamps only report the start of the 
call.  It would be useful to know when it returned as well.  The ktruss 
traces suggest that __sigprocmask14  may be using significant time.  Here's 
an excerpt:

  5420      2 mysqld   0.000009220 __sigtimedwait(0xba5ffd88, 0xba5ffcbc, 0) = 
0
  5420      2 mysqld   0.000007822 __sigprocmask14(0x3, 0x84e6f30, 0xba5ffd30) 
= 0
  5420      3 mysqld   0.480001654 _lwp_unpark(0x2, 0x84e6f10) = 0
  5420      3 mysqld   0.000008382 __sigprocmask14(0x3, 0xba3ffa40, 0) = 0
  5420      3 mysqld   0.000010057 fcntl(0x14, 0x4, 0x2) = 0

It may, of course, be the case that __sigprocmask14 returns immediately and 
that the 0.5 s is spent in mysqld.

Thanks,
Sverre


Home | Main Index | Thread Index | Old Index