Giving more CPU time to a swapping process?
wmoran at collaborativefusion.com
Thu Apr 6 14:32:26 UTC 2006
usleepless at gmail.com wrote:
> i am just wondering myself: this has nothing to with "copy on write"?
> or does that not exist on neither platform?
COW is only relevent when a process forks and the OS can make decisions
about whether memory can be shared between the two processes. He hasn't
stated enough about the application to know whether that's relevent or
> On 4/6/06, Bill Moran <wmoran at collaborativefusion.com> wrote:
> > "Karl Ma" <freunden at gmail.com> 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
> > _______________________________________________
> > freebsd-questions at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
> This message scanned by the Collaborative Fusion, Inc. PineApp.
More information about the freebsd-questions