进程管理工具: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

相关推荐

  • SELinux详解及其优缺点

    SELinux简介:        SELinux:Secure Enahanced Linux 安全增强的Linux SELinux是2.6版本的Linux内核中提供的强制访问控制(MAC)系统。对于目前可用的Linux安全模块来说,SELinux是功能最全面,而且测试最充分的…

    Linux干货 2017-05-21
  • 用户权限过滤练习(w4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@keyou ~]# cp -r /etc/skel/ /home/tuser1 | chmod -R g-rwx,o-rw…

    系统运维 2016-11-20
  • MariaDB数据库基于SSL实现远程访问和主从复制

    MariaDB数据库基于SSL实现远程访问和主从复制 实验环境 系统环境:Centos6.5 数据库版本:5.5.36-MariaDB-log MariaDB Server 虚机数量:2 方案实施: 1,配置CA;并为node1和node2生成key和证书 2,在node1和node2上安装Mariadb 3,配置节点1为MariaDB主节点 4,配置节点2…

    Linux干货 2016-05-18
  • N22-第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1    (复制/etc/skel为/home/tuser1) [root@localho…

    Linux干货 2016-09-05
  • LVS-几种负载方式的区别

    LVS的原理很重要,很重要。每一个知识点都要做到熟记与脑,谨记于心,张口就来。 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 使用集群技术和Linux操作系统实现一个高性能、高可用的服务器. 很好的可伸缩性(Scal…

    Linux干货 2017-05-11
  • Linux用户和组的相关管理命令(一、用户的相关命令)

    Linux是一个可以实现多用户登录的操作系统,通过su – 用户名 可以进行用户之间的切换,从而完成不同登录用户下对私有文件的操作,同时,每个用户有且只有一个主组,但是可以有零个或多个附加组,每个组可以是一个用户的主组,同时还可以是多个用户的附加组。因此,熟练掌握用户和组的相关命令十分重要。 首先,要了解用户和组的配置文件各有两个: 与用户相关的…

    2017-07-22