From: Roger Luethi <rl@hellgate.ch>
To: William Lee Irwin III <wli@holomorphy.com>,
linux-kernel@vger.kernel.org,
Albert Cahalan <albert@users.sf.net>, Paul Jackson <pj@sgi.com>
Subject: [BENCHMARK] nproc: Look Ma, No get_tgid_list!
Date: Tue, 31 Aug 2004 17:34:32 +0200 [thread overview]
Message-ID: <20040831153431.GA6010@k3.hellgate.ch> (raw)
In-Reply-To: <20040829170247.GA9841@k3.hellgate.ch>
This posting demonstrates a new method of monitoring all processes in
a large system.
You may remember what a /proc based tool does when monitoring some
10^5 processes -- it spends its time in the kernel hanging on to a
read task_list_lock:
==> 10000 processes: top -d 0 -b > /dev/null <==
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples % image name symbol name
35855 36.0707 vmlinux get_tgid_list
9366 9.4223 vmlinux pid_alive
7077 7.1196 libc-2.3.3.so _IO_vfscanf_internal
5386 5.4184 vmlinux number
3664 3.6860 vmlinux proc_pid_stat
3077 3.0955 libc-2.3.3.so _IO_vfprintf_internal
2136 2.1489 vmlinux __d_lookup
1720 1.7303 vmlinux vsnprintf
1451 1.4597 libc-2.3.3.so __i686.get_pc_thunk.bx
1409 1.4175 libc-2.3.3.so _IO_default_xsputn_internal
1258 1.2656 libc-2.3.3.so _IO_putc_internal
1225 1.2324 vmlinux link_path_walk
1210 1.2173 libc-2.3.3.so ____strtoul_l_internal
1199 1.2062 vmlinux task_statm
1157 1.1640 libc-2.3.3.so ____strtol_l_internal
794 0.7988 libc-2.3.3.so _IO_sputbackc_internal
776 0.7807 libncurses.so.5.4 _nc_outch
Here's a profile for an nproc based tool monitoring the same set
of processes:
==> 10000 processes: nprocbench <==
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples % app name symbol name
8641 24.8626 vmlinux __task_mem
2778 7.9931 vmlinux find_pid
2536 7.2968 vmlinux finish_task_switch
1872 5.3863 vmlinux netlink_recvmsg
1637 4.7101 vmlinux nproc_pid_fields
1373 3.9505 vmlinux __wake_up
1218 3.5045 vmlinux __copy_to_user_ll
1134 3.2628 vmlinux __task_mem_cheap
944 2.7162 vmlinux mmgrab
876 2.5205 vmlinux nproc_ps_do_pid
568 1.6343 vmlinux skb_dequeue
526 1.5135 libc-2.3.3.so __recv
514 1.4789 vmlinux alloc_skb
510 1.4674 vmlinux __might_sleep
485 1.3955 vmlinux skb_release_data
463 1.3322 vmlinux netlink_attachskb
363 1.0445 vmlinux sys_recvfrom
Resource usage is now dominated by field computation, rather than by
delivery overhead. By now it should be clear that nproc is not only a
cleaner interface with lower overhead for tools, it also scales a lot
better than /proc.
Roger
next prev parent reply other threads:[~2004-08-31 15:36 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-27 12:24 [0/2][ANNOUNCE] nproc: netlink access to /proc information Roger Luethi
2004-08-27 12:24 ` [1/2][PATCH] " Roger Luethi
2004-08-27 13:39 ` Roger Luethi
2004-08-27 12:24 ` [2/2][sample code] nproc: user space app Roger Luethi
2004-08-27 14:50 ` [0/2][ANNOUNCE] nproc: netlink access to /proc information James Morris
2004-08-27 15:26 ` Roger Luethi
2004-08-27 16:23 ` William Lee Irwin III
2004-08-27 16:37 ` Albert Cahalan
2004-08-27 16:41 ` William Lee Irwin III
2004-08-27 17:01 ` Roger Luethi
2004-08-27 17:08 ` William Lee Irwin III
2004-08-28 19:45 ` [BENCHMARK] " Roger Luethi
2004-08-28 19:56 ` William Lee Irwin III
2004-08-28 20:14 ` Roger Luethi
2004-08-29 16:05 ` William Lee Irwin III
2004-08-29 17:02 ` Roger Luethi
2004-08-29 17:20 ` William Lee Irwin III
2004-08-29 17:52 ` Roger Luethi
2004-08-29 18:16 ` William Lee Irwin III
2004-08-29 19:00 ` Roger Luethi
2004-08-29 20:17 ` Albert Cahalan
2004-08-29 20:46 ` William Lee Irwin III
2004-08-29 21:45 ` Albert Cahalan
2004-08-29 22:11 ` William Lee Irwin III
2004-08-29 21:41 ` Roger Luethi
2004-08-29 23:31 ` Albert Cahalan
2004-08-30 7:16 ` Roger Luethi
2004-08-30 10:31 ` Paulo Marques
2004-08-30 10:53 ` William Lee Irwin III
2004-08-30 12:23 ` Paulo Marques
2004-08-30 12:28 ` William Lee Irwin III
2004-08-30 13:43 ` Paulo Marques
2004-08-29 19:07 ` Paul Jackson
2004-08-29 19:17 ` William Lee Irwin III
2004-08-29 19:49 ` Roger Luethi
2004-08-29 20:25 ` William Lee Irwin III
2004-08-31 10:16 ` Roger Luethi
2004-08-31 15:34 ` Roger Luethi [this message]
2004-08-31 19:38 ` [BENCHMARK] nproc: Look Ma, No get_tgid_list! William Lee Irwin III
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040831153431.GA6010@k3.hellgate.ch \
--to=rl@hellgate.ch \
--cc=albert@users.sf.net \
--cc=linux-kernel@vger.kernel.org \
--cc=pj@sgi.com \
--cc=wli@holomorphy.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.