From owner-freebsd-performance@FreeBSD.ORG Mon Feb 26 00:22:36 2007 Return-Path: X-Original-To: performance@FreeBSD.org Delivered-To: freebsd-performance@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4137716A400; Mon, 26 Feb 2007 00:22:36 +0000 (UTC) (envelope-from kris@obsecurity.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 33A6F13C4B5; Mon, 26 Feb 2007 00:22:36 +0000 (UTC) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (elvis.mu.org [192.203.228.196]) by elvis.mu.org (Postfix) with ESMTP id 0EFFF1A3C19; Sun, 25 Feb 2007 16:22:36 -0800 (PST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id 7B7F551E81; Sun, 25 Feb 2007 19:22:35 -0500 (EST) Date: Sun, 25 Feb 2007 19:22:35 -0500 From: Kris Kennaway To: current@FreeBSD.org Message-ID: <20070226002234.GA80974@xor.obsecurity.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.2i Cc: performance@FreeBSD.org Subject: Anyone interested in improving postgresql scaling? X-BeenThere: freebsd-performance@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Performance/tuning List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Feb 2007 00:22:36 -0000 If so, then your task is the following: Make SYSV semaphores less dumb about process wakeups. Currently whenever the semaphore state changes, all processes sleeping on the semaphore are woken, even if we only have released enough resources for one waiting process to claim. i.e. there is a thundering herd wakeup situation which destroys performance at high loads. Fixing this will involve replacing the wakeup() calls with appropriate amounts of wakeup_one(). Kris