ps命令可以以快照的方式,一次显示所有或部分系统进程. 

ps a :当前和中断相关进程

[root@centos ~]# ps a
  PID TTY      STAT   TIME COMMAND
 2358 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3
 2360 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4
 2362 tty5     Ss+    0:00 /sbin/mingetty /dev/tty5
 2367 tty6     Ss+    0:00 /sbin/mingetty /dev/tty6
 2389 tty1     Ss+    0:03 /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/au
41983 tty2     Ss+    0:00 /sbin/mingetty /dev/tty2
44250 pts/0    Ss     0:00 -bash
44313 pts/1    Ss+    0:00 -bash
44365 pts/0    R+     0:00 ps a
#tty1-6是时间中断, tty1打开的是图形界面
#pts/0,1是虚拟中断, 也就是远程通过ssh打开的控制界面
#最后一行表示当前是pts/0在运行ps a命令

ps x : 显示与中断无关的进程

[root@centos ~]# ps x
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 /sbin/init
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00 [migration/0]
    4 ?        S      0:02 [ksoftirqd/0]
    5 ?        S      0:00 [stopper/0]
    6 ?        S      0:00 [watchdog/0]
    7 ?        S      2:10 [events/0]
    8 ?        S      0:00 [cgroup]
    9 ?        S      0:00 [khelper]
   10 ?        S      0:00 [netns]
   #只复制了一部分, 包括系统自己的进程和系统启动时自动启动的进程


ps axu: 以详细的方式显示所有进程

[root@centos ~]# ps axu
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19364  1484 ?        Ss   Oct06   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Oct06   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Oct06   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Oct06   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Oct06   0:00 [stopper/0]
root         6  0.0  0.0      0     0 ?        S    Oct06   0:00 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    Oct06   2:10 [events/0]
root         8  0.0  0.0      0     0 ?        S    Oct06   0:00 [cgroup]
root         9  0.0  0.0      0     0 ?        S    Oct06   0:00 [khelper]
root        10  0.0  0.0      0     0 ?        S    Oct06   0:00 [netns]
root        11  0.0  0.0      0     0 ?        S    Oct06   0:00 [async/mgr]

USER:进程是由那个用户运行

PID: 进程号

%CPU: 占用CPU百分比

%MEM: 占用内存百分比

VSZ Virutal Memory Size: 虚拟内存大小, 一般是线程指令大小+总共可用的共享内存+总共占用内存大小(包括swap)

RSS Resident Set Size: 是以内存占用大小, 实际用指令大小+实际共享内存大小+时间占用内存大小(不包括swap)

TTY:程序需在哪个终端运行, tty1-6, pts/0,1,2...

STAT:进程状态

    S: 中断睡眠, 等待其他进程或事件来唤醒. 

    s: 这个进程是父进程

    D: 不可中断睡眠, 一般是等待IO完成

    R: 运行状态

    T:停止状态

    Z: 僵死状态, 父进程丢失了的子进程

    +: 进程在前台

    -: 进程在后台

    N: 低优先级进程

    <: 高优先级进程

START: 进程开始时间

TIME: 进程运行时间

COOMMAND: 进程的运行程序, 在中括号中的为内核进程


top命令

top - 15:56:19 up 1 day, 22:10,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 122 total,   1 running, 121 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1012292k total,   895776k used,   116516k free,   174832k buffers
Swap:  2031612k total,      668k used,  2030944k free,   346588k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                  
    1 root      20   0 19364 1484 1208 S  0.0  0.1   0:01.94 init                      
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                  
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

top:分别显示

当前时间 在线时间, 几个用户在线, 过去1分钟, 5分钟, 15分钟的系统平均负载值大小

系统平均负载值大不代表有瓶颈, 还要根据vmstat具体分析

Tasks:一共多少个进程, 有几个在运行, 有几个睡眠状态, 几个停止, 几个僵尸状体

Cups: us: 用户空间的cpu占有率, sy:内核空间的cpu占有率, ni:用户空间更改过nice值的进程cpu的占有率, id: 空闲进程cpu占有率, wa:等待I/O完成的进程的CPU占有率, hi: 硬中断占用百分比. si: 软中断占用百分比. st: 虚拟机占用控件百分比.

Mem: , Swap: 分别表示内存和交换空间的占用信息. 

    buffers: 写入缓存

    cached: 读缓存



vmstat命令

[root@centos ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0    664 115028 176072 346644    0    0     4     5   31   48  0  0 100  0  0	

procs

r:进程队列的长度, 太长说明cpu慢

b: 阻塞队列长度, 太长说明I/O慢

memory

swap:物理内存放到硬盘大小

free: 物理内存多少空闲

buff: 缓冲, 加快写速度

cache: 缓存, 加快读速度

swap

si: 写入swap速度 kb/s

so: 读取swap速度 kb/s

io

bi: 块设备写入内存速度 kb/s

bo: 块设备读取内存速度kb/s

system

in:cpu中断速率

cs:cpu上下文切换速率