summaryrefslogtreecommitdiff
path: root/src/pmdas/linux_proc/help
blob: 6640a08765d294b50adc011bfa12cd48df7fe422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
#
# Copyright (c) 2000,2004-2008 Silicon Graphics, Inc.  All Rights Reserved.
# Portions Copyright (c) International Business Machines Corp., 2002
# Portions Copyright (c) 2007-2009 Aconex.  All Rights Reserved.
# Portions Copyright (c) 2013 Red Hat.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# Linux proc PMDA help file in the ASCII format
#
# lines beginning with a # are ignored
# lines beginning @ introduce a new entry of the form
#  @ metric_name oneline-text
#  help test goes
#  here over multiple lines
#  ...
#
# the metric_name is decoded against the default PMNS -- as a special case,
# a name of the form NNN.MM (for numeric NNN and MM) is interpreted as an
# instance domain identification, and the text describes the instance domain
#
# blank lines before the @ line are ignored
#

@ cgroup.subsys.hierarchy subsystem hierarchy from /proc/cgroups
@ cgroup.subsys.count count of known subsystems in /proc/cgroups
@ cgroup.mounts.subsys mount points for each cgroup subsystem
@ cgroup.mounts.count count of cgroup filesystem mount points

@ proc.nprocs instantaneous number of processes
@ proc.psinfo.pid process identifier
@ proc.psinfo.psargs full command string
@ proc.psinfo.cmd command name
@ proc.psinfo.sname process state identifier (see ps(1)). See also proc.runq metrics.
@ proc.psinfo.ppid parent process identifier
@ proc.psinfo.pgrp process group identifier
@ proc.psinfo.session process session identifier
@ proc.psinfo.tty controlling tty device number (zero if none)
@ proc.psinfo.tty_pgrp controlling tty process group identifier
@ proc.psinfo.flags process state flags, as a bitmap
@ proc.psinfo.minflt count of minor page faults (i.e. reclaims)
@ proc.psinfo.cmin_flt count of minor page faults (i.e. reclaims) of all exited children
@ proc.psinfo.maj_flt count of page faults other than reclaims
@ proc.psinfo.cmaj_flt count of page faults other than reclaims of all exited children
@ proc.psinfo.utime time (in ms) spent executing user code since process started
@ proc.psinfo.stime time (in ms) spent executing system code (calls) since process started
@ proc.psinfo.cutime time (in ms) spent executing user code of all exited children
@ proc.psinfo.cstime time (in ms) spent executing system code of all exited children
@ proc.psinfo.priority priority value
@ proc.psinfo.nice process nice value (negative nice values are lower priority)
@ proc.psinfo.it_real_value current interval timer value (zero if none)
@ proc.psinfo.start_time start time of the process relative to system boot time in seconds
@ proc.psinfo.vsize virtual size of the process in Kbytes
@ proc.psinfo.rss resident set size (i.e. physical memory) of the process
@ proc.psinfo.rss_rlim limit on resident set size of process
@ proc.psinfo.start_code address of the start of the code segment for the process
@ proc.psinfo.end_code address of the end of the code segment for the process
@ proc.psinfo.start_stack address of the stack segment for the process
@ proc.psinfo.esp the value in the esp field of struct task_struct for the process
@ proc.psinfo.eip the value in the eip field of struct task_struct for the process
@ proc.psinfo.signal the value in the signal field of struct task_struct for the process
@ proc.psinfo.blocked the value in the blocked field of struct task_struct for the process
@ proc.psinfo.sigignore the value in the sigignore field of struct task_struct for the process
@ proc.psinfo.sigcatch the value in the sigcatch field of struct task_struct for the process
@ proc.psinfo.wchan wait channel, kernel address this process is blocked or sleeping on
@ proc.psinfo.nswap count of page swap operations
@ proc.psinfo.cnswap count of page swap operations of all exited children
@ proc.psinfo.exit_signal the value in the exit_signal field of struct task_struct for the process
@ proc.psinfo.ttyname name of controlling tty device, or "?" if none. See also proc.psinfo.tty.
@ proc.psinfo.processor last CPU the process was running on
@ proc.psinfo.wchan_s name of an event for which the process is sleeping (if blank, the process is running).
This field needs access to a namelist file for proper 
address-to-symbol name translation. If no namelist file
is available, the address is printed instead. The namelist
file must match the current Linux kernel exactly.
The search path for the namelist file is as follows:
	/boot/System.map-`uname -r`
	/boot/System.map
	/lib/modules/`uname -r`/System.map
	/usr/src/linux/System.map
	/System.map
@ proc.psinfo.signal_s pending signals mask in string form (from /proc/<pid>/status)
@ proc.psinfo.blocked_s blocked signals mask in string form (from /proc/<pid>/status)
@ proc.psinfo.sigignore_s ignored signals mask in string form (from /proc/<pid>/status)
@ proc.psinfo.sigcatch_s caught signals mask in string form (from /proc/<pid>/status)
@ proc.psinfo.threads number of threads (from /proc/<pid>/status)
@ proc.psinfo.cgroups list of processes cgroups (from /proc/<pid>/cgroup)
@ proc.psinfo.labels list of processes security labels (from /proc/<pid>/attr/current)
@ proc.memory.size instantaneous virtual size of process, excluding page table and task structure.
@ proc.memory.rss instantaneous resident size of process, excluding page table and task structure.
@ proc.memory.share instantaneous amount of memory shared by this process with other processes 
@ proc.memory.textrss instantaneous resident size of process code segment in Kbytes
@ proc.memory.librss instantaneous resident size of library code mapped by the process, in Kbytes
@ proc.memory.datrss instantaneous resident size of process data segment, in Kbytes
@ proc.memory.dirty instantaneous amount of memory that has been modified by the process, in Kbytes
@ proc.memory.maps table of memory mapped by process in string form from /proc/<pid>/maps
@ proc.memory.vmsize total virtual memory (from /proc/<pid>/status)
@ proc.memory.vmlock locked virtual memory (from /proc/<pid>/status)
@ proc.memory.vmrss resident virtual memory (from /proc/<pid>/status)
@ proc.memory.vmdata virtual memory used for data (from /proc/<pid>/status)
@ proc.memory.vmstack virtual memory used for stack (from /proc/<pid>/status)
@ proc.memory.vmexe virtual memory used for non-library executable code (from /proc/<pid>/status)
@ proc.memory.vmlib virtual memory used for libraries (from /proc/<pid>/status)
@ proc.memory.vmswap virtual memory that has been brought in and out.
@ proc.id.uid real user ID from /proc/<pid>/status
@ proc.id.euid effective user ID from /proc/<pid>/status
@ proc.id.suid saved user ID from /proc/<pid>/status
@ proc.id.fsuid filesystem user ID from /proc/<pid>/status
@ proc.id.gid real group ID from /proc/<pid>/status
@ proc.id.egid effective group ID from /proc/<pid>/status
@ proc.id.sgid saved group ID from /proc/<pid>/status
@ proc.id.fsgid filesystem group ID from /proc/<pid>/status
@ proc.id.uid_nm real user name based on real user ID from /proc/<pid>/status
@ proc.id.euid_nm effective user name based on effective user ID from /proc/<pid>/status
@ proc.id.suid_nm saved user name based on saved user ID from /proc/<pid>/status
@ proc.id.fsuid_nm filesystem user name based on filesystem user ID from /proc/<pid>/status
@ proc.id.gid_nm real group name based on real group ID from /proc/<pid>/status
@ proc.id.egid_nm effective group name based on effective group ID from /proc/<pid>/status
@ proc.id.sgid_nm saved group name based on saved group ID from /proc/<pid>/status
@ proc.id.fsgid_nm filesystem group name based on filesystem group ID from /proc/<pid>/status

@ proc.runq.runnable number of runnable (on run queue) processes
Instantaneous number of runnable (on run queue) processes, state 'R' in ps
@ proc.runq.blocked number of processes in uninterruptible sleep
Instantaneous number of processes in uninterruptible sleep, state 'D' in ps
@ proc.runq.sleeping number of processes sleeping
Instantaneous number of processes sleeping, state 'S' in ps
@ proc.runq.stopped number of traced, stopped or suspended processes
Instantaneous number of traced, stopped or suspended processes, state
'T' in ps
@ proc.runq.swapped number of processes that are swapped
Instantaneous number of processes (excluding kernel threads) that are
swapped, state 'SW' in ps
@ proc.runq.defunct number of defunct/zombie processes
Instantaneous number of defunct/zombie processes, state 'Z' in ps
@ proc.runq.unknown number of processes is an unknown state
Instantaneous number of processes is an unknown state, including all
kernel threads
@ proc.runq.kernel number of kernel threads
Instantaneous number of processes with virtual size of zero (kernel threads)

@ proc.io.rchar read(), readv() and sendfile() receive bytes
Extended accounting information - count of the number of bytes that
have passed over the read(2), readv(2) and sendfile(2) syscalls by
each process.

@ proc.io.wchar write(), writev() and sendfile() send bytes
Extended accounting information - count of the number of bytes that
have passed over the write(2), writev(2) and sendfile(2) syscalls by
each process.

@ proc.io.syscr read(), readv() and sendfile() receive system calls
Extended accounting information - count of number of calls to the
read(2), readv(2) and sendfile(2) syscalls by each process.

@ proc.io.syscw write(), writev() and sendfile() send system calls
Extended accounting information - count of number of calls to the
write(2), writev(2) and sendfile(2) syscalls by each process.

@ proc.io.read_bytes physical device read bytes
Number of bytes physically read on by devices on behalf of this process.
@ proc.io.write_bytes physical device write bytes
Number of bytes physically written to devices on behalf of this process.
This must be reduced by any truncated I/O (proc.io.cancelled_write_bytes).
@ proc.io.cancelled_write_bytes physical device write cancelled bytes
Number of bytes cancelled via truncate by this process.  Actual physical
writes for an individual process can be calculated as:
	proc.io.write_bytes - proc.io.cancelled_write_bytes.

@ proc.schedstat.cpu_time runnable (scheduled) + run time
Length of time in nanoseconds that a process has been running, including
scheduling time.
@ proc.schedstat.run_delay run queue time
Length of time in nanoseconds that a process spent waiting to be scheduled
to run in the run queue.
@ proc.schedstat.pcount number of times a process is allowed to run
Number of times a process has been scheduled to run on a CPU (this is
incremented when a task actually reaches a CPU to run on, not simply
when it is added to the run queue).

@ proc.fd.count open file descriptors
Number of file descriptors this process has open.

@ proc.control.all.threads process indom includes threads
If set to one, the process instance domain as reported by pmdaproc
contains all threads as well as the processes that started them.
If set to zero, the process instance domain contains only processes.

This setting is persistent for the life of pmdaproc and affects all
client tools that request instances and values from pmdaproc.
Use either pmstore(1) or pmStore(3) to modify this metric.

@ proc.control.perclient.threads for a client, process indom includes threads
If set to one, the process instance domain as reported by pmdaproc
contains all threads as well as the processes that started them.
If set to zero, the process instance domain contains only processes.

This setting is only visible to the active client context.  In other
words, storing into this metric has no effect for other monitoring
tools.  See proc.control.all.threads, if that is the desired outcome.
Only pmStore(3) can effectively set this metric (pmstore(1) cannot).

@ proc.control.perclient.cgroups for a client, process indom reflects specific cgroups
If set to the empty string (the default), the process instance domain
as reported by pmdaproc contains all processes.  However, a cgroup
name (full path) can be stored into this metric in order to restrict
processes reported to only those within the specified cgroup.  This
set is further affected by the value of proc.control.perclient.threads.

This setting is only visible to the active client context.  In other
words, storing into this metric has no effect for other monitoring
tools.  pmStore(3) must be used to set this metric (not pmstore(1)).