From owner-freebsd-questions@FreeBSD.ORG Thu Apr 6 14:01:01 2006 Return-Path: X-Original-To: freebsd-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 F059F16A427 for ; Thu, 6 Apr 2006 14:01:01 +0000 (UTC) (envelope-from wmoran@collaborativefusion.com) Received: from mx00.pub.collaborativefusion.com (mx00.pub.collaborativefusion.com [206.210.89.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6E2D143D60 for ; Thu, 6 Apr 2006 14:01:01 +0000 (GMT) (envelope-from wmoran@collaborativefusion.com) Received: from localhost (monrovll-cuda1-24-53-251-44.pittpa.adelphia.net [24.53.251.44]) (AUTH: LOGIN wmoran, TLS: TLSv1/SSLv3,256bits,AES256-SHA) by wingspan with esmtp; Thu, 06 Apr 2006 10:01:00 -0400 id 00056412.44351F1C.000032BB Date: Thu, 6 Apr 2006 10:00:59 -0400 From: Bill Moran To: "Karl Ma" Message-Id: <20060406100059.18767788.wmoran@collaborativefusion.com> In-Reply-To: <42a5f58c0604060143g5e68e806r870761a1beeefbb5@mail.gmail.com> References: <42a5f58c0604060143g5e68e806r870761a1beeefbb5@mail.gmail.com> Organization: Collaborative Fusion X-Mailer: Sylpheed version 1.0.6 (GTK+ 1.2.10; i386-portbld-freebsd5.4) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: Giving more CPU time to a swapping process? 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: Thu, 06 Apr 2006 14:01:02 -0000 "Karl Ma" wrote: > Hi, > > I have a python program in freebsd, doing a heavey indexing job involving a > mega size array. > > The process is so memory-hungry that it starts swap after the physical RAM > max out. (To be exact, I've lowered the per-process limitation to make this > possible). Why would you do this? I dare you to lower the per-process limitation on Window XP and see how the run times compare. If you lower the amount of resources, of course the process will perform badly. Any time a process has to swap, performance will suffer _greatly_. Either invest in more RAM or optimize the process to be more RAM efficient. > However, when I use top to monitor the status, the STATE of the process > started to stay as "swread" for most of the time (instead of RUN before > using swap) and its priority has dropped to -20; and the corresponding WCPU > drops to around 1% only. And the CPU consumption time in total (for the > whole job) would only increase a minute or two even the process has been > running for more than a few hours. Yes. That is the system automatically doing what you are asking how to do. Since the process is spending so much time waiting for data to swap in/out, the kernel lowers the priority (lower priority # on Unix systems means the process has a higher priority) so the process will be the first into the run queue when it has it's data. However, it can't run when it doesn't have the data it needs, and swapping takes time. > In Windows XP, which has less per-task resource restriction (I guess?), I > did successfully complete the task on the same hardware machine; although it > takes more than 30 mins. Did you lower the per-process limit on XP to match what you did on FreeBSD? If not, then why are you trying to compare apples to elephants? > How can I push up the priority of the whole paging task? If you want to change the priority of the paging task, you'll need to hack the kernel. > How can I > allocate more CPU attention to this process? I've tried using "nice" > but it does not help. nice is the correct command to allocate more CPU attention to the process. However, the process can't use the CPU if it doesn't have it's data in memory. -- Bill Moran Potential Technologies http://www.potentialtech.com