# # 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//status) @ proc.psinfo.blocked_s blocked signals mask in string form (from /proc//status) @ proc.psinfo.sigignore_s ignored signals mask in string form (from /proc//status) @ proc.psinfo.sigcatch_s caught signals mask in string form (from /proc//status) @ proc.psinfo.threads number of threads (from /proc//status) @ proc.psinfo.cgroups list of processes cgroups (from /proc//cgroup) @ proc.psinfo.labels list of processes security labels (from /proc//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//maps @ proc.memory.vmsize total virtual memory (from /proc//status) @ proc.memory.vmlock locked virtual memory (from /proc//status) @ proc.memory.vmrss resident virtual memory (from /proc//status) @ proc.memory.vmdata virtual memory used for data (from /proc//status) @ proc.memory.vmstack virtual memory used for stack (from /proc//status) @ proc.memory.vmexe virtual memory used for non-library executable code (from /proc//status) @ proc.memory.vmlib virtual memory used for libraries (from /proc//status) @ proc.memory.vmswap virtual memory that has been brought in and out. @ proc.id.uid real user ID from /proc//status @ proc.id.euid effective user ID from /proc//status @ proc.id.suid saved user ID from /proc//status @ proc.id.fsuid filesystem user ID from /proc//status @ proc.id.gid real group ID from /proc//status @ proc.id.egid effective group ID from /proc//status @ proc.id.sgid saved group ID from /proc//status @ proc.id.fsgid filesystem group ID from /proc//status @ proc.id.uid_nm real user name based on real user ID from /proc//status @ proc.id.euid_nm effective user name based on effective user ID from /proc//status @ proc.id.suid_nm saved user name based on saved user ID from /proc//status @ proc.id.fsuid_nm filesystem user name based on filesystem user ID from /proc//status @ proc.id.gid_nm real group name based on real group ID from /proc//status @ proc.id.egid_nm effective group name based on effective group ID from /proc//status @ proc.id.sgid_nm saved group name based on saved group ID from /proc//status @ proc.id.fsgid_nm filesystem group name based on filesystem group ID from /proc//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)).