[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200708220127.30698.a1426z@gawab.com>
Date: Wed, 22 Aug 2007 01:27:30 +0300
From: Al Boldi <a1426z@...ab.com>
To: Ingo Molnar <mingo@...e.hu>
Cc: Peter Zijlstra <peterz@...radead.org>,
Mike Galbraith <efault@....de>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
linux-kernel@...r.kernel.org
Subject: Re: CFS review
Ingo Molnar wrote:
> * Al Boldi <a1426z@...ab.com> wrote:
> > There is one workload that still isn't performing well; it's a
> > web-server workload that spawns 1K+ client procs. It can be emulated
> > by using this:
> >
> > for i in `seq 1 to 3333`; do ping 10.1 -A > /dev/null & done
>
> on bash i did this as:
>
> for ((i=0; i<3333; i++)); do ping 10.1 -A > /dev/null & done
>
> and this quickly creates a monster-runqueue with tons of ping tasks
> pending. (i replaced 10.1 with the IP of another box on the same LAN as
> the testbox) Is this what should happen?
Yes, sometimes they start pending and sometimes they run immediately.
> > The problem is that consecutive runs don't give consistent results and
> > sometimes stalls. You may want to try that.
>
> well, there's a natural saturation point after a few hundred tasks
> (depending on your CPU's speed), at which point there's no idle time
> left. From that point on things get slower progressively (and the
> ability of the shell to start new ping tasks is impacted as well), but
> that's expected on an overloaded system, isnt it?
Of course, things should get slower with higher load, but it should be
consistent without stalls.
To see this problem, make sure you boot into /bin/sh with the normal VGA
console (ie. not fb-console). Then try each loop a few times to show
different behaviour; loops like:
# for ((i=0; i<3333; i++)); do ping 10.1 -A > /dev/null & done
# for ((i=0; i<3333; i++)); do nice -99 ping 10.1 -A > /dev/null & done
# { for ((i=0; i<3333; i++)); do
ping 10.1 -A > /dev/null &
done } > /dev/null 2>&1
Especially the last one sometimes causes a complete console lock-up, while
the other two sometimes stall then surge periodically.
BTW, I am also wondering how one might test threading behaviour wrt to
startup and sync-on-exit with parent thread. This may not show any problems
with small number of threads, but how does it scale with 1K+?
Thanks!
--
Al
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists