Skip site navigation (1)Skip section navigation (2)
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

--liOOAslEiF7prFVr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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. ;)

--liOOAslEiF7prFVr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="ridiculous-top-ouput.txt"

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]


--liOOAslEiF7prFVr--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111225214033.GA1933>