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> References: <20080630165205.GA3033@lpthe.jussieu.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48691D7C.2090804>