From owner-freebsd-questions@FreeBSD.ORG Tue Sep 26 16:37:03 2006 Return-Path: X-Original-To: questions@freebsd.org Delivered-To: freebsd-questions@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6CE1316A40F for ; Tue, 26 Sep 2006 16:37:03 +0000 (UTC) (envelope-from freebsd@philip.pjkh.com) Received: from bravo.pjkh.com (bravo.pjkh.com [72.36.232.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id A6C6643D45 for ; Tue, 26 Sep 2006 16:37:02 +0000 (GMT) (envelope-from freebsd@philip.pjkh.com) Received: from bravo.pjkh.com (bravo.pjkh.com [72.36.232.219]) by bravo.pjkh.com (Postfix) with ESMTP id 84E6F13D76E; Tue, 26 Sep 2006 11:43:40 -0500 (CDT) Received: by bravo.pjkh.com (Postfix, from userid 1000) id 53A4013C828; Tue, 26 Sep 2006 11:43:40 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by bravo.pjkh.com (Postfix) with ESMTP id 526C713C80B; Tue, 26 Sep 2006 11:43:40 -0500 (CDT) Date: Tue, 26 Sep 2006 11:43:40 -0500 (CDT) From: Philip Hallstrom To: Brett Glass In-Reply-To: <7.0.1.0.2.20060926090533.083a2a88@lariat.net> Message-ID: <20060926114326.J27863@bravo.pjkh.com> References: <7.0.1.0.2.20060926090533.083a2a88@lariat.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: ClamAV using ClamSMTP Cc: questions@freebsd.org Subject: Re: Best way to "renice" a process by name? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Sep 2006 16:37:03 -0000 > I'm working with a machine that's operating as a NAT router and recursive DNS > resolver and is also running the Squid disk cache. Squid, in turn, spawns the > "diskd" daemon, which does disk accesses on behalf of Squid. When Squid > spawns diskd, it gives it a priority level 6 greater than itself. In other > words, if Squid is launched normally, it gets a priority of 2 (normal) while > diskd gets a priority of -4 (very high). > > Unfortunately, diskd is not an efficient user of CPU (it seems to be polling > for I/O completion) and is starving other processes on the machine (for > example, natd) which need to operate in near real time. > > I'd like to keep diskd running on that machine, because having disk access > done by a separate process is very efficient -- even more so if the system > uses SMP. But I need to re-prioritize Squid and diskd to keep the rest of the > machine functional. In particular, I'd like to nice Squid down by 1 (so that > natd and named have priority over it) and have diskd run at standard priority > (so that it can't starve other processes). This will keep diskd at a higher > priority than Squid itself, which in turn will hopefully prevent message > queues from overflowing. > > Reducing Squid's priority is simple; I can just edit the script that starts > Squid so that /usr/bin/nice is used to invoke it. But taming diskd is more > difficult, because diskd is a child process of Squid. I have to make sure it > has started (which may require a delay loop), find out its PID, and then > "renice" it by whatever increment is required to get it to the system's > standard priority (2 by convention). Is there a "renice by name" utility for > FreeBSD (sort of an equivalent of "killall")? I could gin one up, but since > this seems like something that people would want to do frequently, find it > hard to believe that someone hasn't already written one. Google is your friend :) http://www.google.com/search?q=reniceall very first link.