/proc/stat: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
No edit summary
 
(36 intermediate revisions by the same user not shown)
Line 4: Line 4:
* [[Linux proc|The /proc filesystem]]
* [[Linux proc|The /proc filesystem]]


=Overview=


/proc/stat
A file containing kernel/system statistics. All counters are computed from the last boot.
              kernel/system statistics. Varies with architecture. Common
              entries include:


              cpu  3357 0 4313 1362393
=Example=
                    The amount of time, measured in units of USER_HZ
                    (1/100ths of a second on most architectures, use
                    sysconf(_SC_CLK_TCK) to obtain the right value), that
                    the system spent in various states:


                    user  (1) Time spent in user mode.
<pre>
cpu  51867872 12504 17293071 1007053375 43884956 0 734997 28476 0 0
cpu0 26424972 5655 8522768 507855710 17916771 0 160989 12217 0 0
cpu1 25442899 6848 8770302 499197664 25968185 0 574008 16259 0 0
intr 5629954620 57 10 0 0 1010 0 3 0 0 0 26 0 15 0 0 0 0 0 0 0 0 0 0 0 0 59505018 0 1142434 0 24 0 311547405 5895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 8988684252
btime 1499371654
processes 7911606
procs_running 1
procs_blocked 0
softirq 3871680971 7 1707177643 34840 444108079 0 0 12422 745916301 0 974431679
</pre>


                    nice  (2) Time spent in user mode with low priority
=Contents=
                            (nice).


                    system (3) Time spent in system mode.
==cpu==


                    idle   (4) Time spent in the idle task.  This value
cpu[ID] [[#user|user]] [[#nice|nice]] [[#system|system]] [[#idle|idle]] [[#iowait|iowait]] [[#irq|irq]] [[#softirq|softirq]] [[#steal|steal]] [[#guest|guest]] [[#guest_nice|guest_nice]]
                            should be USER_HZ times the second entry in the
                            /proc/uptime pseudo-file.


                    iowait (since Linux 2.5.41)
"cpu" lines contain a list of values representing the amount of time, measured in units of [[Linux_General_Concepts#USER_HZ|USER_HZ]] that the system spent in various states. There is a cumulative "cpu" statistics line and immediately after it, lines containing the same values for each processor available in the system ("cpu0", "cpu1", etc.).
                            (5) Time waiting for I/O to complete.  This
                            value is not reliable, for the following
                            reasons:


                            1. The CPU will not wait for I/O to complete;
* <span id='user'></span>'''user''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent executing code in user mode. Also see [[Linux_cgroups#user|cgroups cpuacct.stat user time]].
                              iowait is the time that a task is waiting for
* <span id='nice'></span>'''nice''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent in user mode with low priority (nice).
                              I/O to complete. When a CPU goes into idle
* <span id='system'></span>'''system''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent in system mode: kernel executing system calls on behalf of processes. Also see [[Linux_cgroups#system|cgroups cpuacct.stat system time]].
                              state for outstanding task I/O, another task
* <span id='idle'></span>'''idle''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent in idle mode. This value should be USER_HZ times the second entry in [[/proc/uptime]].
                              will be scheduled on this CPU.
* <span id='iowait'></span>'''iowait''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units processes are waiting for I/O to complete. The CPU will not wait for IO, it will be schedule onto another task or will enter idle state. When a CPU goes into idle state for outstanding task I/O, another task will be scheduled on this CPU. On a multi-core CPU, the task waiting for I/O to complete is not running on any CPU, so the iowait of each CPU is difficult to calculate.
* <span id='irq'></span>'''irq''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent servicing hardware interrupts.
* <span id='softirq'></span>'''softirq''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent servicing softirqs.
* <span id='steal'></span>'''steal''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent in other operating systems when running in a virtualized environment. More details: [[Linux_Virtualization_Concepts#Steal_Time|Steal Time]].
* <span id='guest'></span>'''guest''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
* <span id='guest_nice'></span>'''guest_nice''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel).


                            2. On a multi-core CPU, the task waiting for I/O
==page==
                              to complete is not running on any CPU, so the
                              iowait of each CPU is difficult to calculate.


                            3. The value in this field may decrease in
page ''number-of-pages-paged-in'' ''number-of-pages-paged-out''
                              certain conditions.


                            irq (since Linux 2.6.0-test4)
The "page" line contains the number of pages the system paged in and the number that were paged out (from disk).
                              (6) Time servicing interrupts.


                            softirq (since Linux 2.6.0-test4)
==swap==
                              (7) Time servicing softirqs.


                            steal (since Linux 2.6.11)
swap 'number-of-pages-brought-in'' ''number-of-pages-brought-out''
                              (8) Stolen time, which is the time spent in
                              other operating systems when running in a
                              virtualized environment


                            guest (since Linux 2.6.24)
The "swap" line contains the number of swap pages that have been brought in and out.
                              (9) Time spent running a virtual CPU for
                              guest operating systems under the control of
                              the Linux kernel.


                            guest_nice (since Linux 2.6.33)
==intr==
                              (10) Time spent running a niced guest
                              (virtual CPU for guest operating systems
                              under the control of the Linux kernel).


                    page 5741 1808
intr ''total-count'' ''count1'' ''count2'' ...
                            The number of pages the system paged in and the
                            number that were paged out (from disk).


                    swap 1 0
The "into" line shows counts of interrupts serviced since boot time, for each of the possible system interrupts.  The first column is the total of all interrupts serviced including unnumbered architecture specific interrupts. Each subsequent column is the total for that particular numbered interrupt. Unnumbered interrupts are not shown, only summed into the total.
                            The number of swap pages that have been brought
                            in and out.


                    intr 1462898
==disk_io==
                            This line shows counts of interrupts serviced
                            since boot time, for each of the possible system
                            interrupts.  The first column is the total of
                            all interrupts serviced including unnumbered
                            architecture specific interrupts; each
                            subsequent column is the total for that
                            particular numbered interrupt.  Unnumbered
                            interrupts are not shown, only summed into the
                            total.


                    disk_io: (2,0):(31,30,5764,1,2) (3,0):...
disk_io (''major'', ''disk_idx''):(''noinfo'', ''read_io_ops'', ''blks_read'', ''write_io_ops'', ''blks_written'') ...
                            (major,disk_idx):(noinfo, read_io_ops,
                              
                            blks_read, write_io_ops, blks_written)
==ctxt==
                             (Linux 2.4 only)


                    ctxt 115315
ctxt ''context-switch-count''
                            The number of context switches that the system
                            underwent.


                    btime 769041601
The number of context switches since last boot.
                            boot time, in seconds since the Epoch,
                            1970-01-01 00:00:00 +0000 (UTC).


                    processes 86031
==btime==
                            Number of forks since boot.


                    procs_running 6
  btime ''seconds-since-epoch''
                            Number of processes in runnable state. (Linux
                            2.5.45 onward.)


                    procs_blocked 2
Boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
                            Number of processes blocked waiting for I/O to
 
                            complete. (Linux 2.5.45 onward.)
==processes==
 
processes ''fork-count-since-boot''
 
Number of forks since boot.
 
==procs_running==
 
procs_running ''runnable-state-process-count''
 
Number of processes in runnable state.
 
==procs_blocked==
 
procs_running ''blocked-process-count''
 
Number of processes blocked waiting for I/O to complete.

Latest revision as of 21:20, 2 May 2018

Internal

Overview

A file containing kernel/system statistics. All counters are computed from the last boot.

Example

cpu  51867872 12504 17293071 1007053375 43884956 0 734997 28476 0 0
cpu0 26424972 5655 8522768 507855710 17916771 0 160989 12217 0 0
cpu1 25442899 6848 8770302 499197664 25968185 0 574008 16259 0 0
intr 5629954620 57 10 0 0 1010 0 3 0 0 0 26 0 15 0 0 0 0 0 0 0 0 0 0 0 0 59505018 0 1142434 0 24 0 311547405 5895 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 8988684252
btime 1499371654
processes 7911606
procs_running 1
procs_blocked 0
softirq 3871680971 7 1707177643 34840 444108079 0 0 12422 745916301 0 974431679

Contents

cpu

cpu[ID] user nice system idle iowait irq softirq steal guest guest_nice

"cpu" lines contain a list of values representing the amount of time, measured in units of USER_HZ that the system spent in various states. There is a cumulative "cpu" statistics line and immediately after it, lines containing the same values for each processor available in the system ("cpu0", "cpu1", etc.).

  • user - time in USER_HZ units spent executing code in user mode. Also see cgroups cpuacct.stat user time.
  • nice - time in USER_HZ units spent in user mode with low priority (nice).
  • system - time in USER_HZ units spent in system mode: kernel executing system calls on behalf of processes. Also see cgroups cpuacct.stat system time.
  • idle - time in USER_HZ units spent in idle mode. This value should be USER_HZ times the second entry in /proc/uptime.
  • iowait - time in USER_HZ units processes are waiting for I/O to complete. The CPU will not wait for IO, it will be schedule onto another task or will enter idle state. When a CPU goes into idle state for outstanding task I/O, another task will be scheduled on this CPU. On a multi-core CPU, the task waiting for I/O to complete is not running on any CPU, so the iowait of each CPU is difficult to calculate.
  • irq - time in USER_HZ units spent servicing hardware interrupts.
  • softirq - time in USER_HZ units spent servicing softirqs.
  • steal - time in USER_HZ units spent in other operating systems when running in a virtualized environment. More details: Steal Time.
  • guest - time in USER_HZ units spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
  • guest_nice - time in USER_HZ units spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel).

page

page number-of-pages-paged-in number-of-pages-paged-out

The "page" line contains the number of pages the system paged in and the number that were paged out (from disk).

swap

swap 'number-of-pages-brought-in number-of-pages-brought-out

The "swap" line contains the number of swap pages that have been brought in and out.

intr

intr total-count count1 count2 ...

The "into" line shows counts of interrupts serviced since boot time, for each of the possible system interrupts. The first column is the total of all interrupts serviced including unnumbered architecture specific interrupts. Each subsequent column is the total for that particular numbered interrupt. Unnumbered interrupts are not shown, only summed into the total.

disk_io

disk_io (major, disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) ...
                           

ctxt

ctxt context-switch-count

The number of context switches since last boot.

btime

btime seconds-since-epoch

Boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).

processes

processes fork-count-since-boot

Number of forks since boot.

procs_running

procs_running runnable-state-process-count

Number of processes in runnable state.

procs_blocked

procs_running blocked-process-count

Number of processes blocked waiting for I/O to complete.