Date: Sun, 25 Dec 2011 21:40:33 +0000 From: Alexander Best <arundel@freebsd.org> To: freebsd-current@freebsd.org Subject: starting the annual discussion regarding top(1)'s CPU usage statistics Message-ID: <20111225214033.GA1933@freebsd.org>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
ok...so we all know that top(1) cannot compute the exact CPU usage for all
processes, since some processes get spawned and exit so fast that they don't
fall into the calculation range. i think nobody is getting angry when top(1)
is off by a few percent.
however please take a look at the following top(1) output. this is just
ridiculous! out of 800% of CPU power, almost 600% mysteriously vanished. is
there really nothing to improve top(1)'s behaviour when the CPU is dealing with
a lot of short processes (time wise) with a hugh CPU burst?
this output was gathered on HEAD (r227491) running on i386.
cheers.
alex
ps: no, switching between raw and weighted CPU stats did *not* make a
difference. ;)
[-- Attachment #2 --]
last pid: 1489; load averages: 7.58, 7.73, 7.01 up 10+01:22:28 21:21:04
170 processes: 2 running, 167 sleeping, 1 waiting
CPU 0: 13.4% user, 0.0% nice, 13.4% system, 3.9% interrupt, 69.3% idle
CPU 1: 48.8% user, 0.0% nice, 20.8% system, 0.0% interrupt, 30.4% idle
CPU 2: 52.8% user, 0.0% nice, 24.8% system, 0.0% interrupt, 22.4% idle
CPU 3: 59.2% user, 0.0% nice, 19.2% system, 0.0% interrupt, 21.6% idle
CPU 4: 70.4% user, 0.0% nice, 17.6% system, 0.0% interrupt, 12.0% idle
CPU 5: 42.5% user, 0.0% nice, 20.5% system, 0.0% interrupt, 37.0% idle
CPU 6: 59.5% user, 0.0% nice, 16.7% system, 0.0% interrupt, 23.8% idle
CPU 7: 55.2% user, 0.0% nice, 9.6% system, 0.0% interrupt, 35.2% idle
Mem: 333M Active, 6577M Inact, 332M Wired, 4436K Cache, 111M Buf, 763M Free
Swap: 8192M Total, 444K Used, 8191M Free
PID UID THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
11 0 8 155 ki31 0K 64K CPU7 7 1718.7 200.00% [idle]
12 0 18 -84 - 0K 144K WAIT 0 73:49 3.76% [intr]
1238 1233 1 52 0 8032K 552K wait 5 0:00 0.10% [cc]
1234 1233 1 52 0 9936K 1440K wait 2 0:00 0.10% sh -ev
1236 1233 1 52 0 9936K 1492K wait 2 0:00 0.10% [sh]
7 0 1 16 - 0K 8K syncer 0 55:42 0.00% [syncer]
13 0 3 -8 - 0K 24K - 2 13:43 0.00% [geom]
14 0 1 -16 - 0K 8K - 1 3:31 0.00% [yarrow]
9 0 1 -16 - 0K 8K sdflus 4 3:00 0.00% [softdepflush]
566 0 1 20 0 12128K 2380K select 5 2:59 0.00% /sbin/devd
8 0 1 -16 - 0K 8K vlruwt 2 1:32 0.00% [vnlru]
3 0 1 -16 - 0K 8K psleep 3 1:29 0.00% [pagedaemon]
6 0 1 -16 - 0K 8K psleep 1 1:13 0.00% [bufdaemon]
811 0 1 20 0 9784K 1356K select 1 0:22 0.00% /usr/sbin/rpcbind
975 0 1 20 0 11320K 1928K select 3 0:21 0.00% /usr/sbin/ntpd -c /etc/ntp.conf -p /var/run/ntpd.pid -f /var
1043 0 1 20 0 13080K 2396K select 2 0:20 0.00% /usr/sbin/sshd
1050 0 1 20 0 11340K 2356K select 3 0:12 0.00% sendmail: accepting connections (sendmail)
1006 1 1 20 0 9540K 1088K sbwait 4 0:09 0.00% /usr/sbin/rwhod
1 0 1 20 0 8032K 352K wait 7 0:09 0.00% [init]
1063 0 1 28 0 9656K 1388K nanslp 0 0:07 0.00% /usr/sbin/cron -s
735 0 1 20 0 9624K 1192K select 0 0:06 0.00% /usr/sbin/syslogd -s
814 0 1 20 0 9552K 1308K select 1 0:04 0.00% /usr/sbin/ypbind
0 0 8 -52 0 0K 64K - 7 0:03 0.00% [kernel]
937 0 1 20 0 4408K 404K nanslp 2 0:03 0.00% /root/mfid clusteradm@freebsd.org
59391 1233 1 52 0 28512K 23144K select 6 0:02 0.00% make DIRPRFX=lib/libc/ all
75317 1233 1 52 0 20320K 14032K select 1 0:01 0.00% make DIRPRFX=secure/lib/libcrypto/ all
17282 1233 1 20 0 8032K 616K select 1 0:01 0.00% make buildworld TARGET=arm TARGET_ARCH=armeb
17285 1233 1 20 0 8032K 616K select 6 0:01 0.00% make buildworld TARGET=amd64 TARGET_ARCH=amd64
17279 1233 1 20 0 8032K 616K select 0 0:01 0.00% make buildworld TARGET=arm TARGET_ARCH=arm
17299 1233 1 20 0 8032K 616K select 1 0:01 0.00% make buildworld TARGET=mips TARGET_ARCH=mipsel
17290 1233 1 20 0 8032K 616K select 2 0:01 0.00% make buildworld TARGET=mips TARGET_ARCH=mipseb
17293 1233 1 20 0 8032K 616K select 1 0:01 0.00% make buildworld TARGET=mips TARGET_ARCH=mips64el
17298 1233 1 20 0 8032K 616K select 2 0:01 0.00% make buildworld TARGET=mips TARGET_ARCH=mipsn32eb
17294 1233 1 20 0 8032K 616K select 3 0:01 0.00% make buildworld TARGET=mips TARGET_ARCH=mips64eb
17919 1233 1 20 0 8032K 996K select 1 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
17928 1233 1 20 0 8032K 932K select 0 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
18122 1233 1 20 0 8032K 996K select 6 0:01 0.00% /scratch/tmp/arundel/obj/dumpster/home/arundel/src/make.i386
17946 1233 1 20 0 8032K 928K select 7 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
17902 1233 1 20 0 8032K 932K select 1 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
17950 1233 1 20 0 8032K 936K select 3 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
17940 1233 1 20 0 8032K 932K select 5 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
17951 1233 1 20 0 8032K 932K select 2 0:01 0.00% make -m /dumpster/home/arundel/src/share/mk -f Makefile.inc1
96695 1233 1 20 0 15820K 4344K select 6 0:00 0.00% sshd: arundel@pts/2 (sshd)
37628 937 1 20 0 10280K 2104K select 4 0:00 0.00% screen -e^Bb
97334 1233 1 20 0 8032K 992K select 1 0:00 0.00% /scratch/tmp/arundel/obj/dumpster/home/arundel/src/make.i386
92868 1233 1 20 0 8032K 928K select 3 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/mips.
91735 1233 1 20 0 8032K 928K select 5 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/mips.
91731 1233 1 20 0 8032K 916K select 0 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/arm.a
93498 1233 1 20 0 8032K 928K select 1 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/mips.
92535 1233 1 20 0 8032K 928K select 3 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/mips.
7980 1233 1 20 0 8032K 928K select 1 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/mips.
18132 0 1 -16 - 0K 8K - 7 0:00 0.00% [nfsiod 0]
1056 25 1 20 0 11340K 2228K pause 1 0:00 0.00% sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue
78679 1233 1 21 0 8032K 1020K select 6 0:00 0.00% /scratch/tmp/arundel/obj/dumpster/home/arundel/src/make.i386
75016 1233 1 21 0 8032K 952K select 2 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
80527 1233 1 20 0 8032K 940K select 2 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
79754 1233 1 47 0 8032K 940K select 2 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
80938 1233 1 20 0 8032K 956K select 0 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
79324 1233 1 46 0 8032K 940K select 5 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
94045 1233 1 20 0 8032K 956K select 2 0:00 0.00% make -f Makefile.inc1 _prebuild_libs
36468 0 1 20 0 9656K 1440K pipewr 4 0:00 0.00% cron: running job (cron)
36466 0 1 20 0 9656K 1432K pipewr 3 0:00 0.00% cron: running job (cron)
98751 1233 1 52 0 8032K 3308K select 5 0:00 0.00% make DIRPRFX=kerberos5/lib/libroken/ all
47882 1233 1 20 0 8032K 968K select 1 0:00 0.00% make -f Makefile.inc1 _startup_libs
99001 1233 1 52 0 8032K 3188K select 3 0:00 0.00% make DIRPRFX=kerberos5/lib/libroken/ all
42348 1233 1 20 0 8032K 968K select 6 0:00 0.00% make -f Makefile.inc1 DESTDIR=/scratch/tmp/arundel/obj/amd64
99546 1233 1 52 0 8032K 2172K select 0 0:00 0.00% make DIRPRFX=secure/lib/libssl/ all
99544 1233 1 52 0 8032K 2292K select 2 0:00 0.00% /scratch/tmp/arundel/obj/dumpster/home/arundel/src/make.i386
96711 1233 1 20 0 3304K 2668K pause 0 0:00 0.00% -zsh (zsh)
1467 1233 1 52 0 16548K 10720K nfsreq 0 0:00 0.00% [cc1]
37630 937 1 20 0 10952K 2372K ttyin 4 0:00 0.00% /bin/tcsh
97311 0 1 24 0 15820K 4272K select 0 0:00 0.00% sshd: arundel [priv] (sshd)
4996 1233 1 20 0 8032K 676K select 0 0:00 0.00% make -j8 tinderbox
17207 1233 1 20 0 8032K 720K select 1 0:00 0.00% make DOING_TINDERBOX=YES universe
96675 0 1 21 0 15820K 4324K select 4 0:00 0.00% sshd: arundel [priv] (sshd)
4993 0 1 20 0 9656K 1492K piperd 3 0:00 0.00% cron: running job (cron)
97810 1233 1 20 0 15820K 4280K select 2 0:00 0.00% sshd: arundel@pts/8 (sshd)
97904 1233 1 30 0 3120K 2476K ttyin 2 0:00 0.00% -zsh (zsh)
2634 937 1 20 0 10952K 2348K ttyin 1 0:00 0.00% /bin/tcsh
1224 1233 1 52 0 8032K 908K select 2 0:00 0.00% make DIRPRFX=lib/libopie/ depend
1362 1233 1 52 0 8032K 908K select 5 0:00 0.00% make DIRPRFX=lib/libopie/ depend
1474 1233 1 52 0 13236K 6316K nfsreq 7 0:00 0.00% [cc1]
5 0 1 155 ki31 0K 8K pgzero 6 0:00 0.00% [pagezero]
1128 0 1 20 0 9624K 1052K ttyin 6 0:00 0.00% /usr/libexec/getty std.9600 ttyu0
1476 1233 1 52 0 13164K 5428K nfs 1 0:00 0.00% [cc1]
1477 1233 1 52 0 13164K 5428K nfsreq 6 0:00 0.00% [cc1]
1337 1233 1 20 0 9964K 1972K CPU5 5 0:00 0.00% top -P -d2 99999
1468 1233 1 52 0 8032K 4456K piperd 0 0:00 0.00% /scratch/tmp/arundel/obj/arm.arm/dumpster/home/arundel/src/t
1487 1233 1 52 0 8032K 4456K piperd 3 0:00 0.00% /scratch/tmp/arundel/obj/arm.armeb/dumpster/home/arundel/src
1125 0 1 52 0 9624K 1048K ttyin 6 0:00 0.00% /usr/libexec/getty Pc ttyv5
1122 0 1 52 0 9624K 1048K ttyin 5 0:00 0.00% /usr/libexec/getty Pc ttyv2
17276 1233 1 52 0 9936K 1440K wait 6 0:00 0.00% sh -ev
1123 0 1 52 0 9624K 1044K ttyin 1 0:00 0.00% /usr/libexec/getty Pc ttyv3
1124 0 1 52 0 9624K 1052K ttyin 3 0:00 0.00% /usr/libexec/getty Pc ttyv4
17277 1233 1 52 0 9936K 1440K wait 4 0:00 0.00% sh -ev
1368 1233 1 52 0 8032K 548K wait 5 0:00 0.00% [cc]
17275 1233 1 52 0 9936K 1440K wait 3 0:00 0.00% sh -ev
1120 0 1 52 0 9624K 1048K ttyin 2 0:00 0.00% /usr/libexec/getty Pc ttyv0
17269 1233 1 52 0 9936K 1440K wait 0 0:00 0.00% sh -ev
1126 0 1 52 0 9624K 1048K ttyin 4 0:00 0.00% /usr/libexec/getty Pc ttyv6
1121 0 1 52 0 9624K 1048K ttyin 5 0:00 0.00% /usr/libexec/getty Pc ttyv1
1127 0 1 52 0 9624K 1048K ttyin 0 0:00 0.00% /usr/libexec/getty Pc ttyv7
17893 1233 1 52 0 9936K 1444K wait 3 0:00 0.00% sh -ev
17274 1233 1 52 0 9936K 1440K wait 0 0:00 0.00% sh -ev
1485 1233 1 52 0 8032K 3080K piperd 6 0:00 0.00% /scratch/tmp/arundel/obj/mips.mips64eb/dumpster/home/arundel
17266 1233 1 52 0 9936K 1440K wait 2 0:00 0.00% sh -ev
17936 1233 1 52 0 9936K 1444K wait 6 0:00 0.00% sh -ev
92547 1233 1 32 0 9936K 1444K wait 6 0:00 0.00% sh -ev
17934 1233 1 52 0 9936K 1444K wait 4 0:00 0.00% sh -ev
97333 1233 1 29 0 9936K 1448K wait 3 0:00 0.00% sh -ev
17267 1233 1 52 0 9936K 1440K wait 2 0:00 0.00% sh -ev
17268 1233 1 52 0 9936K 1440K wait 5 0:00 0.00% sh -ev
17937 1233 1 52 0 9936K 1444K wait 1 0:00 0.00% sh -ev
1218 1233 1 52 0 9936K 1452K wait 2 0:00 0.00% sh -ev
98392 1233 1 46 0 9936K 1452K wait 1 0:00 0.00% sh -ev
98630 1233 1 52 0 9936K 1456K wait 0 0:00 0.00% sh -ev
98621 1233 1 52 0 9936K 1452K wait 0 0:00 0.00% sh -ev
1475 1233 1 52 0 8032K 3076K piperd 1 0:00 0.00% /scratch/tmp/arundel/obj/mips.mipsel/dumpster/home/arundel/s
97896 1233 1 45 0 9936K 1452K wait 5 0:00 0.00% sh -ev
17945 1233 1 52 0 9936K 1444K wait 1 0:00 0.00% sh -ev
42345 1233 1 31 0 9936K 1448K wait 7 0:00 0.00% sh -ev
97359 1233 1 32 0 9936K 1448K wait 1 0:00 0.00% sh -ev
66754 1233 1 37 0 9936K 1456K wait 1 0:00 0.00% sh -ev
36465 0 1 20 0 9656K 1440K ppwait 1 0:00 0.00% cron: running job (cron)
91730 1233 1 28 0 9936K 1448K wait 4 0:00 0.00% sh -ev
48744 1233 1 29 0 9936K 1456K wait 3 0:00 0.00% sh -ev
7999 1233 1 33 0 9936K 1448K wait 0 0:00 0.00% sh -ev
17921 1233 1 52 0 9936K 1444K wait 2 0:00 0.00% sh -ev
1351 1233 1 52 0 9936K 1452K wait 4 0:00 0.00% sh -ev
1478 1233 1 52 0 9936K 1432K wait 3 0:00 0.00% sh -ev
1367 1233 1 52 0 9936K 1492K wait 5 0:00 0.00% [sh]
17914 1233 1 52 0 9936K 1444K wait 5 0:00 0.00% sh -ev
92867 1233 1 27 0 9936K 1448K wait 3 0:00 0.00% sh -ev
1484 1233 1 52 0 13164K 4984K nfsreq 5 0:00 0.00% [cc1]
1365 1233 1 52 0 9936K 1440K wait 0 0:00 0.00% sh -ev
92887 1233 1 33 0 9936K 1444K wait 0 0:00 0.00% sh -ev
93509 1233 1 33 0 9936K 1448K wait 1 0:00 0.00% sh -ev
92534 1233 1 30 0 9936K 1448K wait 0 0:00 0.00% sh -ev
91743 1233 1 31 0 9936K 1452K wait 0 0:00 0.00% sh -ev
91733 1233 1 29 0 9936K 1448K wait 7 0:00 0.00% sh -ev
93497 1233 1 28 0 9936K 1448K wait 0 0:00 0.00% sh -ev
7979 1233 1 29 0 9936K 1448K wait 2 0:00 0.00% sh -ev
1481 1233 1 52 0 9936K 1436K wait 5 0:00 0.00% sh -ev
91750 1233 1 33 0 9936K 1444K wait 6 0:00 0.00% sh -ev
1480 1233 1 52 0 9936K 1432K wait 1 0:00 0.00% sh -ev
42369 1233 1 30 0 9936K 1448K wait 0 0:00 0.00% sh -ev
1486 1233 1 52 0 13164K 5068K nfsreq 2 0:00 0.00% [cc1]
18120 1233 1 37 0 9936K 1444K wait 0 0:00 0.00% sh -ev
1472 1233 1 52 0 9936K 1432K wait 6 0:00 0.00% sh -ev
1479 1233 1 52 0 8032K 516K nfsreq 1 0:00 0.00% [cc]
1488 1233 1 52 0 9936K 1432K wait 4 0:00 0.00% sh -ev
1483 1233 1 52 0 8032K 536K wait 1 0:00 0.00% [cc]
1465 1233 1 52 0 9936K 1436K wait 1 0:00 0.00% sh -ev
17206 1233 1 52 0 9936K 1444K wait 0 0:00 0.00% sh -ev
1482 1233 1 52 0 8032K 532K wait 2 0:00 0.00% [cc]
1473 1233 1 52 0 8032K 536K wait 0 0:00 0.00% [cc]
17283 1233 1 52 0 9936K 1452K wait 1 0:00 0.00% sh -ev
17292 1233 1 52 0 9936K 1452K wait 3 0:00 0.00% sh -ev
1466 1233 1 52 0 8032K 536K wait 0 0:00 0.00% [cc]
17295 1233 1 52 0 9936K 1452K wait 5 0:00 0.00% sh -ev
17291 1233 1 52 0 9936K 1452K wait 5 0:00 0.00% sh -ev
17296 1233 1 52 0 9936K 1452K wait 2 0:00 0.00% sh -ev
17280 1233 1 52 0 9936K 1452K wait 6 0:00 0.00% sh -ev
1489 1233 1 52 0 8032K 520K nfsreq 0 0:00 0.00% [cc]
17278 1233 1 52 0 9936K 1452K wait 5 0:00 0.00% sh -ev
17289 1233 1 52 0 9936K 1452K wait 2 0:00 0.00% sh -ev
36464 0 1 20 0 9656K 1432K ppwait 4 0:00 0.00% cron: running job (cron)
2 0 1 -16 - 0K 8K waitin 5 0:00 0.00% [sctp_iterator]
4 0 1 -16 - 0K 8K psleep 2 0:00 0.00% [vmdaemon]
10 0 1 -16 - 0K 8K audit_ 0 0:00 0.00% [audit]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111225214033.GA1933>
