/proc/stat: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
 
(29 intermediate revisions by the same user not shown)
Line 6: Line 6:
=Overview=
=Overview=


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


=Example=
=Example=
Line 25: Line 25:
=Contents=
=Contents=


cpu[ID] user nice system idle iowait page swap
==cpu==


"cpu" lines contain a list of values representing 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. There is a cumulative "cpu" line and immediately after it, lines containing the same statistics for each processor ("cpu0", "cpu1", etc.):
cpu[ID] [[#user|user]] [[#nice|nice]] [[#system|system]] [[#idle|idle]] [[#iowait|iowait]] [[#irq|irq]] [[#softirq|softirq]] [[#steal|steal]] [[#guest|guest]] [[#guest_nice|guest_nice]]


* <span id='user'></span>user - time spent in user mode.
"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.).


                    nice   (2) Time spent in user mode with low priority
* <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]].
                            (nice).
* <span id='nice'></span>'''nice''' - time in [[Linux_General_Concepts#USER_HZ|USER_HZ]] units spent in user mode with low priority (nice).
* <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]].
* <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]].
* <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).


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


                    idle  (4) Time spent in the idle task. This value
  page ''number-of-pages-paged-in'' ''number-of-pages-paged-out''
                            should be USER_HZ times the second entry in the
                            /proc/uptime pseudo-file.


                    iowait (since Linux 2.5.41)
The "page" line contains the number of pages the system paged in and the number that were paged out (from disk).
                            (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;
==swap==
                              iowait is the time that a task is waiting for
                              I/O to complete.  When a CPU goes into idle
                              state for outstanding task I/O, another task
                              will be scheduled on this CPU.


                            2. On a multi-core CPU, the task waiting for I/O
swap 'number-of-pages-brought-in'' ''number-of-pages-brought-out''
                              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
The "swap" line contains the number of swap pages that have been brought in and out.
                              certain conditions.


                            irq (since Linux 2.6.0-test4)
==intr==
                              (6) Time servicing interrupts.


                            softirq (since Linux 2.6.0-test4)
intr ''total-count'' ''count1'' ''count2'' ...
                              (7) Time servicing softirqs.


                            steal (since Linux 2.6.11)
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.
                              (8) Stolen time, which is the time spent in
                              other operating systems when running in a
                              virtualized environment


                            guest (since Linux 2.6.24)
==disk_io==
                              (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)
disk_io (''major'', ''disk_idx''):(''noinfo'', ''read_io_ops'', ''blks_read'', ''write_io_ops'', ''blks_written'') ...
                              (10) Time spent running a niced guest
                           
                              (virtual CPU for guest operating systems
==ctxt==
                              under the control of the Linux kernel).


                    page 5741 1808
ctxt ''context-switch-count''
                            The number of pages the system paged in and the
                            number that were paged out (from disk).


                    swap 1 0
The number of context switches since last boot.
                            The number of swap pages that have been brought
                            in and out.


                    intr 1462898
==btime==
                            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):...
btime ''seconds-since-epoch''
                            (major,disk_idx):(noinfo, read_io_ops,
                            blks_read, write_io_ops, blks_written)
                            (Linux 2.4 only)


                    ctxt 115315
Boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
                            The number of context switches that the system
                            underwent.


                    btime 769041601
==processes==
                            boot time, in seconds since the Epoch,
                            1970-01-01 00:00:00 +0000 (UTC).


                    processes 86031
processes ''fork-count-since-boot''
                            Number of forks since boot.


                    procs_running 6
Number of forks since boot.
                            Number of processes in runnable state. (Linux
                            2.5.45 onward.)


                    procs_blocked 2
==procs_running==
                            Number of processes blocked waiting for I/O to
 
                            complete. (Linux 2.5.45 onward.)
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.