stressapptest seems to always divide one CPU's worth of time.

225 views
Skip to first unread message

David Mathog

unread,
Sep 23, 2010, 4:00:45 PM9/23/10
to stressapptest-discuss
Hi,

On a 4 core system with 16GB I am trying to use stressapptest to
exercise the memory system while another program runs, in order to see
what kind of interference might result. The thing is, if I run N
copies of stressapptest "top" shows each using 100%/N CPU time, that
held for N up to 7, which is as far as the tests went That would seem
to indicate that all instances are running on one core. I tried all
of these forms with the same results:

(MASK set to 1,2,4,8 for instances 1->4)
taskset $MASK stressapptest -M 1024 -m 1 -s 20000 --remote_numa
taskset $MASK stressapptest -M 1024 -m 1 -s 20000 --local_numa
stressapptest -M 1024 -m 1 -s 20000
stressapptest -M 32 -m 1 -s 20000

This seems to be something specific about this program. For
instance, using the NCBI's blastall program for N=1->4 "top" showed
each blastall instance at 99.9%.

This doesn't make a lot of sense to me. The machine is a Dell Dell
PowerEdge T110 with one Xeon X3470. The machine is a test node added
to a Rocks cluster. It is
running kernel 2.6.18 (something). Not sure which version of rocks it
is. It is definitely a 32 bit OS. /proc/meminfo shows

MemTotal: 16623108 kB
MemFree: 15628076 kB

so it can see all the memory in the system. Sorry to be a bit vague
about the machine details, but it isn't my cluster.

David Mathog

unread,
Sep 23, 2010, 4:18:46 PM9/23/10
to stressapptest-discuss
Hmm, apparently these are not running on one just CPU, but they are
splitting CPU time as if 100% of CPU is all they can use (sorry about
the wrap):

ps -eo pid,user,pri,psr,ni,vsz,rss,pcpu,pmem,time,comm | grep stress
31084 mathog 24 0 0 1100872 1049180 23.7 6.3 00:00:17
stressapptest
31096 mathog 24 2 0 1101896 1049180 22.4 6.3 00:00:15
stressapptest
31108 mathog 24 2 0 1101896 1049180 21.5 6.3 00:00:14
stressapptest
31127 mathog 24 3 0 1101896 1049184 18.5 6.3 00:00:10
stressapptest
31139 mathog 24 2 0 1101896 1049180 18.5 6.3 00:00:10
stressapptest
31151 mathog 24 1 0 1101896 1049180 18.6 6.3 00:00:09
stressapptest

snapshot from top of the same:


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31096 mathog 15 0 1076m 1.0g 428 S 17.9 6.3 0:33.28
stressapptest
31084 mathog 15 0 1075m 1.0g 428 S 15.9 6.3 0:34.65
stressapptest
31108 mathog 15 0 1076m 1.0g 428 S 15.9 6.3 0:32.17
stressapptest
31127 mathog 15 0 1076m 1.0g 428 S 15.9 6.3 0:27.72
stressapptest
31139 mathog 15 0 1076m 1.0g 428 S 15.9 6.3 0:27.55
stressapptest
31151 mathog 15 0 1076m 1.0g 428 S 15.9 6.3 0:27.43
stressapptest

David Mathog

unread,
Sep 23, 2010, 4:35:11 PM9/23/10
to stressapptest-discuss
Also...

taskset 2 stressapptest -M 1024 -m 4 -s 20000 &
taskset -p $!
pid 31562's current affinity mask: 2

Where "top" shows a CPU usage of 400%, so it must be running on all
cores, even though taskset should have restricted it to one.

taskset 2 stressapptest -M 1024 -m 5 -s 20000 &

runs at 100% CPU. Ditto for any value greater than 5. This suggests
that the way to get one running on each of 3 CPUs is:

taskset 2 stressapptest -M 1024 -m 5 -s 20000 &
taskset 4 stressapptest -M 1024 -m 5 -s 20000 &
taskset 8 stressapptest -M 1024 -m 5 -s 20000 &

Yes, that does it. Each process runs at 100% CPU, and "ps" shows them
to be on CPUs 1,2, and 3.
Reply all
Reply to author
Forward
0 new messages