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. Krishome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48691D7C.2090804>
