Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jun 2008 19:53:00 +0200
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Michel Talon <talon@lpthe.jussieu.fr>
Cc:        questions@freebsd.org
Subject:   Re: Too Much Context Switching?
Message-ID:  <48691D7C.2090804@FreeBSD.org>
In-Reply-To: <20080630165205.GA3033@lpthe.jussieu.fr>

index | next in thread | previous in thread | raw e-mail

Michel Talon wrote:
> Kris Kennaway wrote:
> 
>> In 6.x. the default thread library is quite inefficient although it can 
>> make use of multiple CPUs (again, providing the application is giving 
>> them work to do).  For multi-threaded performance you will be better off 
>> switching to the libthr library (see libmap.conf(5)) or updating to 7.0 
>> (where it is the default).  This isn't likely to be the underlying issue 
>> if you are trying to debug a loss of performance relative to the same 
>> configuration in the past though.
> 
> Indeed Plone is written in python, and python has a "Big Giant Lock"
> inside which insures that only one thread can execute, in order to
> protect the python structures. This lock is only released under special
> circumstances, such as doing IO. Hence it is necessary to run several
> instances of python programs and do synchronization work, if one wants
> to make use of several CPUs, or use python threads, and immediately make 
> some IOs, or similar techniques. It may be that using Jython, if
> possible, yields better threading behavior. When doing some work
> according to these ideas, i had found quite severe contention, and this
> was not cured when switching native threading libraries (libksd, libthr,
> etc.). The problem is really inside python.

Yep, it could be that -- what confuses me though is that it is claimed 
that performance suddenly regressed.  If so then this cannot be the 
underlying cause.

Kris


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48691D7C.2090804>