8.2 + apache == a LOT of sigprocmask
Doug Barton
dougb at FreeBSD.org
Mon Nov 14 21:59:22 UTC 2011
On 11/14/2011 12:56, John Baldwin wrote:
> On Monday, November 14, 2011 3:31:43 pm Doug Barton wrote:
>> Trying to track down a load problem we're seeing on 8.2-RELEASE-p4 i386
>> in a busy web hosting environment I came across the following post:
>>
>> http://lists.freebsd.org/pipermail/freebsd-questions/2011-
> October/234520.html
>>
>> That basically describes what we're seeing as well, including the
>> "doesn't happen on Linux" part.
>>
>> Does anyone have any ideas about this?
>>
>> With incredibly similar stuff running on 7.x we didn't see this problem,
>> so it seems to be something new in 8.
>
> I suspect it has to do with some of the changes to rtld such that it now
> always blocks signals while resolving symbols (or something along those
> lines IIRC). It makes throwing exceptions slow as well.
The calls to sigprocmask() in rtld seem to be doing what you suggest
here, but they involve setting and restoring the mask. In my followup
post I pasted what we're seeing, which is different, and much more
voluminous. For example, 13,500 calls in 30 seconds from a single apache
worker process.
Although this does seem to explain why our test cases have more calls
when compiled with C++ than they do when compiled with C. :)
Thanks for the response in any case.
Doug
--
"We could put the whole Internet into a book."
"Too practical."
Breadth of IT experience, and depth of knowledge in the DNS.
Yours for the right price. :) http://SupersetSolutions.com/
More information about the freebsd-stable
mailing list