• top:

    * A: PID        = Process Id
    * E: USER       = User Name
    * H: PR         = Priority
    * I: NI         = Nice value
    * O: VIRT       = Virtual Image (kb)
    * Q: RES        = Resident size (kb)
    * T: SHR        = Shared Mem size (kb)
    * W: S          = Process Status
    * K: %CPU       = CPU usage
    * N: %MEM       = Memory usage (RES)
    * M: TIME+      = CPU Time, hundredths
    b: PPID       = Parent Process Pid
    c: RUSER      = Real user name
    d: UID        = User Id
    f: GROUP      = Group Name
    g: TTY        = Controlling Tty
    j: P          = Last used cpu (SMP)
    p: SWAP       = Swapped size (kb)
    l: TIME       = CPU Time
    r: CODE       = Code size (kb)
    s: DATA       = Data+Stack size (kb)
    u: nFLT       = Page Fault count
    v: nDRT       = Dirty Pages count
    y: WCHAN      = Sleeping in Function
    z: Flags      = Task Flags <sched.h>
    * X: COMMAND    = Command name/line

    Flags field:
    0×00000001  PF_ALIGNWARN
    0×00000002  PF_STARTING
    0×00000004  PF_EXITING
    0×00000040  PF_FORKNOEXEC
    0×00000100  PF_SUPERPRIV
    0×00000200  PF_DUMPCORE
    0×00000400  PF_SIGNALED
    0×00000800  PF_MEMALLOC
    0×00002000  PF_FREE_PAGES (2.5)
    0×00008000  debug flag (2.5)
    0×00024000  special threads (2.5)
    0×001D0000  special states (2.5)
    0×00100000  PF_USEDFPU (thru 2.4)

    进程的优先级和nice级别
    进程优先级是一个决定进程被CPU执行优先顺序的参数,内核会根据需要调整这个值。Nice值是一个对优先权的限制。进程优先级的值不能低于nice值。(nice值越低优先级越高)
    进程优先级是无法去手动改变的,只有通过改变nice值去间接的调整进程优先级。如果一个进程运行的太慢了,你可以通过指定一个较低的nice值去为它分 配更多的CPU资源。当然,这意味着其他的一些进程将被分配更少的CPU资源,运行更慢一些。Linux支持nice值的范围是19(低优先级)到 -20(高优先级),默认的值是0。如果需要改变一个进程的nice值为负数(高优先级),必须使用su命令登陆到root用户。下面是一些调整nice 值的命令示例,
    以nice值-5开始程序xyz
    #nice –n -5 xyz

    改变已经运行的程序的nice值
    #renice level pid

    将pid为2500的进程的nice值改为10
    #renice 10 2500

    vmstat:

    ·process(procs)
    r:等待运行时间的进程数量
    b:处在不可中断睡眠状态的进程
    w:被交换出去但是仍然可以运行的进程,这个值是计算出来的
    ·memoryswpd:虚拟内存的数量
    free:空闲内存的数量
    buff:用做缓冲区的内存数量
    ·swap
    si:从硬盘交换来的数量
    so:交换到硬盘去的数量
    ·IO
    bi:向一个块设备输出的块数量
    bo:从一个块设备接受的块数量
    ·system
    in:每秒发生的中断数量, 包括时钟
    cs:每秒发生的context switches的数量
    ·cpu(整个cpu运行时间的百分比)
    us:非内核代码运行的时间(用户时间,包括nice时间)
    sy:内核代码运行的时间(系统时间)
    id:空闲时间,在Linux 2.5.41之前的内核版本中,这个值包括I/O等待时间;
    wa:等待I/O操作的时间,在Linux 2.5.41之前的内核版本中这个值为0

    iostat:

    %user:user level(应用)的CPU占用率情况
    %nice:加入nice优先级的user level的CPU占用率情况
    %sys:system level(内核)的CPU占用情况
    %idle:空闲的CPU资源情况

    Device:块设备名
    Tps:设备每秒进行传输的数量(每秒的I/O请求)。多个单独的I/O请求可以被组成一个传输操作,因为一个传输操作可以是不同的容量。
    Blk_read/s, Blk_wrtn/s:该设备每秒读写的块的数量。块可能为不同的容量。
    Blk_read, Blk_wrtn:自系统启动以来读写的块设备的总量。

    块可能为不同的容量。块的大小一般为1024、2048、4048byte。可通过tune2fs或dumpe2fs获得:
    # tune2fs -l /dev/hda1|grep ‘Block size’
    Block size:               4096
    # dumpe2fs -h /dev/hda1|grep ‘Block size’
    dumpe2fs 1.35 (28-Feb-2004)
    Block size:               4096