Linux Display System Statistics Gathered From /proc

by on March 18, 2011 · 8 comments· LAST UPDATED March 18, 2011

in

How do I display information from /proc such as memory, Load average, uptime, page activity, context, disk status, interrupts using a shell or perl script?

You can write a shell or perl script to grab all info from /proc file system. But Linux comes with the procinfo command to gather some system data from the /proc directory and prints it nicely formatted on the screen.

Install procinfo Command

Open a command-line terminal (select Applications > Accessories > Terminal), and then type the following commands under Debian or Ubuntu Linux:
$ sudo apt-get update
$ sudo apt-get install procinfo

The command apt-get update is used tell apt to refresh its package information by querying the configured repositories and then install the procinfo package. If you are using CentOS / RHEL / Fedora / Redhat Linux, enter:
# yum install procinfo

How Do I Use procinfo Command?

Simply type the following command, enter:
# procinfo
Sample outputs:

Fig.01:  procinfo - display system statistics gathered from /proc

Fig.01: procinfo - display system statistics gathered from /proc


Where,
The information displayed is:

  • Memory: Display amount of free and used memory in the system
  • Bootup: The time the system was booted.
  • Load average: The average number of jobs running, followed by the number of runnable processes and the total number of processes, followed by the PID of the last process run. The pid of the last running process will probably always be procinfo's PID.
  • user: The amount of time spent running jobs in user space.
  • nice: The amount of time spent running niced jobs in user space.
  • system: The amount of time spent running in kernel space. Note: the time spent servicing interrupts is not counted by the kernel (and nothing that procinfo can do about it).
  • idle: The amount of time spent doing nothing.
  • uptime: The time that the system has been up. The above four should more or less add up to this one.
  • page in: The number of disk blocks paged into core from disk. 1 block is equal to 1 kiB.
  • page out: The number of disk blocks paged out of core to disk. This includes regular disk-writes.
  • swap in: The number of memory pages paged in from swap.
  • swap out: The number of memory pages paged out to swap.
  • context: The number of context switches, either since bootup or per interval.
  • Disk stats(sda, hda, sdb etc): The number of reads and writes made to disks, whether CD-ROM, hard-drive, or USB. Shows all disks if they either are an hdX or sdX, or if they have a non-zero read/write count.
  • Interrupts: Number of interrupts serviced since boot, or per interval, listed per IRQ.

Task: Run procinfo Continuously Full-screen

The -f option can run procinfo continuously on screen and the default is 5 seconds between update. The -n option can be used to set pause update time. In this example procinfo will pause 20 seconds between update:
# procinfo -f -n 20
You can change its behaviour by pressing d, D, S, r, b, and q which toggle the flags quits the program. The flags also correspond to their same-named commandline-options

       -d     For memory, CPU times, paging, swapping, disk, context and interrupt stats, display values per second rather than totals. This option implies -f.
       -D     Same as -d, except that memory stats are displayed as totals.
       -S     When running with -d or -D, always show values per second, even when running with -n N with N greater than one second.
       -b     Display numbers of bytes rather than number of I/O requests.
       -r     This option adds an extra line to the memory info showing 'real' free memory, just as free(1) does. The numbers produced assume that Buffers and Cache are disposable.

(Fig. 02: Source man page).

References:

See procinfo man page for more information.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 8 comments… read them below or add one }

1 sempft March 18, 2011 at 2:02 pm

on ubuntu it’s “procinfo”, not “proceinfo”
probably the same on debian

Reply

2 halohell March 18, 2011 at 2:07 pm

well there is a typo,
sudo apt-get install procinfo
and
yum install procinfo

Reply

3 nixCraft March 18, 2011 at 2:33 pm

Thanks for the heads up!

Reply

4 Roman March 19, 2011 at 6:44 am

Procinfo-NG is even better!
Procinfo-NG, a replacement for procinfo. Has most of the same features, but is written in clean C++ and has fixed many of the features that were broken due to changes in the 2.4 and 2.6 kernels.

Plus, it uses uint64 for almost everything, and thus should be 64-bit safe.

Reply

5 abdulkerim March 21, 2011 at 4:57 pm

how to be learn beginner oracle . thanks

Reply

6 Jack Wade May 16, 2011 at 5:11 am

Don’t forget linfo – a php script that when ran under linux gets its info from /proc

http://linfo.sf.net

ex: http://jrgp.u13.net/linfo/

Reply

7 me February 15, 2012 at 8:03 am

I sure wish someone would show how to determine/decipher this data from the /proc filesystem, without having to install some program to do it for us…

Reply

8 Sanjay K May 6, 2013 at 5:26 am

In CentOS -6.3 , this is not available

yum install procinfo

No package procinfo available.
Error: Nothing to do

~Sanjay

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: