进程管理工具:ps,top,htop,dstat

进程列表查看,系统资源使用情况查看,比如CPU占用情况,内存使用情况,网络IO,硬盘IO等等。本文介绍的几款工具帮您实现。

进程是指运行中的程序的一个副本,进程的有关信息映射在/proc/#下,ps等工具通过加工/proc/下文件而显示出进程列表。

linux内核属于抢占式多任务式,内核将CPU处理时间按时间片分配给各个进程,这里有一个优先级的问题,优先级越高,最先被处理。

进程有140个队列,0~139。

1-99属于实时优先级,数字越大优先级越高;

100-139属于静态优先级,数字越小优先级越高,对应着nice值-19~20,可以调整nice值来改变进程优先级。

再来简单介绍进程状态:

1、运行态:running,正在运行的进程,或是等待运行在CPU队列上。

2、睡眠态:分为两种

     (1)可中断:Interruptable,接受控制信号

      (2)不可中断:Uninterruptable,不接受控制信号

3、停止态:stopped,暂停与内存中,除非手动调度。

4、僵死态:zombie,执行完毕的进程,等待释放资源。

一、ps命令

ps – 报告当前进程的快照。

ps命令接受3种风格的选项指定:

    1、BSD风格,选项不带“-”

    2、UNIX风格,选项带“-”

    3、GNU风格,长选项“–”

1、BSD风格

选项

    a:所有与终端相关的进程

    x:所有与终端无关的进程

    u:以用户为中心组织进程状态信息

    o:指定显示字段

        常用字段:pid,ni,psr,pcpu,pmem,priority,stat,comm

常用组合ps aux ,ps axo user,pid,comm

blob.png

对第一行字段中

VSZ:占用的虚拟内存集大小

RSS:Resident Size,常驻内存集大小

STAT:进程状态

    R:runing

    S:interruptable sleeping

    D:uninterruptable sleeping

    T:stopped

    Z:zombie

        +:表示前台进程

        s:session leader,拥有子进程

        l:多线程的进程

        N:低优先级进程

        <:高优先级进程

        L:在内存中有锁定的页

2、UNIX风格

选项

    -e:显示所有进程

    -f:显示完整格式

    -F:显示更多字段

    -o:自定义字段显示

    -H:显示层级结构

常用组合:ps -ef,ps -efH,ps -eo pid,pcpu,comm

blob.png

C:cpu占用百分比

二、top命令

top – 显示linux任务列表

动态方式提供运行系统视图,显示汇总信息及进程列表。

常用选项

    -d # 指定刷新间隔时间

    -b  以批次显示,用于输出

    -n # 显示多少批次

    -M/G 指定内存单位,默认为KB

$ top -M

blob.png

load average:过去1分钟,5分钟,15分钟的平均负载,等待CPU队列长度。

Cpu一行:

    us:用户空间

    sy:系统空间

    ni:nice进程

    id:空闲进程

    wa:等待io进程

    hi:硬中断

    si:软中断

    st:steal,虚拟化占用的百分比

进程列表字段

    VIRT:Virtual Image (kb),虚拟内存集

    RES:Resident size (kb),常驻内存集

    SHR:Shared Mem size (kb),共享内存集

交互按钮

1)排序

    P:按占用cpu百分比排序

    M:按占用内存排序

    T:按累积占用cpu时间排序

    R:反转排序次序

    <,>:移动排序的字段

2)修改刷新时间:s

3)停止进程:k

4)退出:q

三、htop命令

htop类似与top工具,但是支持垂直和水平滚动,这样可以看到所有进程的信息。

另外使用htop需要从epel源安装。

用法:htop [-dChusv]

-d 刷新间隔,单位十分之一秒

-p pid… 查看指定pid列表

-u 查看指定用户的进程列表

blob.png

快捷键F1~F10,帮助,设置,查询,过滤,树形结构,排序选择,nice值更改,停止进程,退出。

几项特别功能快捷键:

l:列出进程打开的文件列表

s:跟踪选定进程的系统调用

t:层级结构关系显示

a:绑定指定CPU

四、dstat命令

dstat – 用来生成系统资源统计数据的多功能工具,十分强大。

dstat可以取代vmstat,iostat,ifstat工具。dstat克服了一些老工具的短板问题,而且新加很多功能。

另外需要从epel源安装。

用法: dstat [-afv] [options..] [delay [count]]

选项:

    -c 显示cpu统计

    -C #,# 显示指定cpu统计。以下大写选项均类似。

    -d 显示磁盘统计

    -D sda

    -n 显示网络统计(接收,发送)

    -N eth0

    -m 显示内存统计

    -s 显示交互分区统计

    -r 显示IO请求统计

    -g 显示page相关速率统计(page in, page out)

    -p 显示进程相关统计(runnable, uninterruptible, new)

    -y 显示系统统计(interrupts, context switches)

默认选项为-cdngy

$ dstat

blob.png

$ dstat -v   #equals -pmgdsc -D total

blob.png

长选项:

    –fs  显示文件系统统计(open files, inodes)

    –tcp  显示tcp统计(listen, established, syn, time_wait, close)

    –udp  显示udp统计

    –raw  显示裸套接字统计

    –socket 显示套接字统计(total, tcp, udp, raw, ip-fragments)

blob.png

插件:

dstat支持用户开发插件加入到dstat中,下面介绍一些实用插件

    –freespace  文件系统使用量

    –top-bio  最耗费块设备IO的进程

    –top-io  最耗费IO的进程

    –top-cpu  最耗费cpu的进程

    –top-cputime  占用cpu时间最多的进程

    –top-mem  最耗费内存的进程

    –top-latency  延迟最大的进程 

$ dstat --top-{io,bio,cpu,cputime,mem,latency}

blob.png

原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/47395

(0)
cutemsyucutemsyu
上一篇 2016-09-22
下一篇 2016-09-22

相关推荐

  • LVS(Linux Virtual Server)学习笔记

    LVS(Linux Virtual Server)学习笔记 此文主要对lvs负载均衡学习的总结,一为记录,二为巩固。主要介绍:1、lvs基础;2、lvs的配置;3、lvs的实现 前提:负载均衡(LB Cluster)     负载均衡实现方法有两种:硬件实现和软件实现;    &…

    Linux干货 2017-02-13
  • N25 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; 3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; 4、添加用户bash, testbash, basher, nol…

    Linux干货 2017-01-08
  • sed基本用法

    Stream EDitor, 行编辑器  sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space), 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’的特殊命令, 那会在两个循环之间清空模式空间,但不会…

    Linux干货 2017-08-20
  • 网卡别名与bonding

    网络接口配置-bonding Bonding简介 Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高 可用或者负载均衡。然,直接给两块网卡设置同一IP地址 是不可能的。通过bonding,虚拟一块网卡对外提供连接, 物理网卡的被修改为相同的MAC地址。 Bonding模式 Mode 0 (balance-rr) 轮转(Round-robi…

    Linux干货 2016-09-05
  • 马哥教育网络班21期+第6周课程练习

    VIM基础知识 常用模式: 编辑模式–>命令模式 输入模式 末行模式:内置的命令行接口 模式转换: 编辑模式–>输入模式 i:在光标所在处前转换为输入模式; a:在光标所在后面转入输入模式; o:在当前光标所在行的下方打开一个新行,并转为输入模式; I:在当前光标所在行的行首输入; A:在当前光标所在行的行尾输入; O:在当前光标所在行的上方…

    Linux干货 2016-08-15
  • IO重定向

    I/O(IN Out)重定向(本来位置被改到别处位置):            指的改变默认输入输出的位置    程序:数据+指令  IO          可用于输入的设备:文件     &nbsp…

    Linux干货 2017-04-03