专栏首页二狗的DBA之路进程管理工具之top、htop、glances、dstat

进程管理工具之top、htop、glances、dstat

进程管理经常用到的工具有:top、htop、glances、dstat,下面一一介绍。

htop、glances、dstat都是epel源里面的工具,需要单独安装。

推荐阿里云的yum镜像站点:

    CentOS6 :http://mirrors.aliyun.com/epel/6Server/x86_64/

    CentOS7 :http://mirrors.aliyun.com/epel/7/x86_64

top命令

top命令常用参数:

-d 1    # 设置刷新时间间隔为1s【默认是3秒】

-b      # 批显示模式

-n 接数字   # 设置显示迭代的次数

-b -n 3# 批显示模式,显示3次即退出top命令

-U 用户名   # 仅显示对应用户的top命令进程信息

load average: 三个数分别代表不同时间段的系统平均负载(一分钟、五分钟、以及十五分钟)

使用top命令或者uptime命令查看系统负载,如果这个数除以CPU的数目(grep 'model name' /proc/cpuinfo |wc -l),所得值大于5就表明系统在超负荷运转。

具体请参考博文:http://blog.csdn.net/evenness/article/details/7658221

在top运行界面,各按键对应的功能如下:

    M   按照内存占用大小排序。

    P   按照CPU占用率排序

    T   按照累计占据CPU的时长排序

    l   显示或隐藏load average和启动时间

    m   显示或隐藏Memory、swap占有率

    t   显示或隐藏进程summary信息及CPU使用信息

    c   显示完整的命令行信息

    q   退出top命令

    V   树状视图(CentOS 7上支持)

输入d 会提示修改top命令的刷新时间间隔。

输入k 会提示输入pid号以结束对应的进程。

输入r 会提示输入pid号以修改对应的nice值

CPU信息一行(如下图)所对应的英文缩写

    us = user mode  用户空间占用CPU的百分比

    sy = system mode内核空间占用CPU的百分比

    ni = low priority user mode (nice) 改变过优先级的进程占用CPU的百分比

    id = idle task  空闲CPU百分比

    wa = I/O waiting IO等待占用CPU的百分比

    hi = servicing IRQs硬中断(Hardware IRQ)占用CPU的百分比

    si = servicing soft IRQs软中断(Software Interrupts)占用CPU的百分比

    st = steal (time given to other DomU instances)  被偷走的时间这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

htop命令

top命令很老了,htop支持鼠标操作,更加人性化,支持鼠标。

htop是epel源里面的文件,请确保epel源配置正确。

yum install htop -y

终端界面直接输入htop即可,如下图:

在htop界面,常用如下操作:

  • 按F2键,可以设置显示格式、显示哪些数据。
  • 按F9键,可以给选定的进程发送信号(重启、关闭信号等)。Enter确认操作,ESC取消操作。
  • 按F5键或者小写的t键,可以以进程树的方式查看。
  • 按F3键,可以搜索指定的进程。
  • 按l键(小写字母),列出指定进程打开的文件列表
  • 按a键,将选定的进程绑定至某指定CPU核心
  • 按s键,跟踪选定进程的系统调用

htop的常用的几个命令行选项:

-s 选项     # sort 按指定的列排序,如htop -s PID

-u 用户名   # 显示指定用户名的进程信息

-d 数值    # 修改htop刷新时间间隔

glances命令

glances的牛逼之处在于可以自动高亮利用最高系统资源的程序,并为Linux提供尽可能多的信息。

glances工具属于epel源里面的,是一款跨平台的系统资源监视器。

运行效果如下图:

    glances命令:

        # 参考博文:http://linux.cn/article-2782-1.html

参数:

        glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

内建命令:

              a  Sort processes automatically     l  Show/hide logs

              c  Sort processes by CPU%           b  Bytes or bits for network I/O

              m  Sort processes by MEM%           w  Delete warning logs

              p  Sort processes by name           x  Delete warning and critical logs

              i  Sort processes by I/O rate       1  Global CPU or per-CPU stats

              d  Show/hide disk I/O stats         h  Show/hide this help screen

              f  Show/hide file system stats      t  View network I/O as combination

              n  Show/hide network stats          u  View cumulative network I/O

              s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)

              y  Show/hide hddtemp stats

常用选项:

            -b: 以Byte为单位显示网卡数据速率;

            -d: 关闭磁盘I/O模块;

            -f /path/to/somefile: 设定输入文件位置;

            -o {HTML|CSV}:输出格式;

            -m: 禁用mount模块

            -n: 禁用网络模块

            -t #: 延迟时间间隔

            -1:每个CPU的相关数据单独显示;

        C/S模式下运行glances命令:

服务模式:

                glances -s -B LocalIP -P xxxx

                    # IPADDR: 指明监听于本机哪个地址

                    # -P 后面接明文密码

客户端模式:

                glances -c RemoteIP -P xxxx

                    # IPADDR:要连入的服务器端地址

                    # -P 后面接明文密码

dstat命令

dstat命令运行效果如下:

dstat命令行参数有:

-c  显示CPU的相关统计信息

-m  显示内存的相关统计信息

-n  显示网络的相关统计信息

-l  显示负载的相关统计信息(load average)

-d  显示Disk相关统计信息

-g  显示page相关统计数据

-p  显示process相关统计数据

-r  显示io请求相关的统计数据

-s  显示swapped相关的统计数据

--tcp

--udp

--unix

--raw

--socket

--ipc

--top-cpu:显示最占用CPU的进程;

--top-io: 显示最占用io的进程;

--top-mem: 显示最占用内存的进程;

--top-lantency: 显示延迟最大的进程;

例如:

dstat 3     # 每隔三秒刷新,但最新的数据都会每秒刷新显示。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实战 | 从任意文件下载到Getshell

    以上的总结都是一些固定位置的配置文件,当然实际中这些路径不一定对,需要你结合.bash_history等信息自己去猜测。

    天钧
  • Linux fork那些隐藏的开销

    fork是一个拥有50年历史的陈年系统调用,它是一个传奇!时至今日,它依旧灿烂。

    Linux阅码场
  • Docker容器实战(四) - 纷纷扰扰,终归尘土

    Docker公司的容器技术生态在云计算市场中稳步前进,围绕着Docker项目进行的各个层次的集成与创新产品,也如雨后春笋般出现在这个新兴市场当中。

    JavaEdge
  • 推荐一个超详细的Hadoop安装教程,已有32万次点击量

    安装Hadoop软件系列,首选Linux系统,比如Ubuntu。如果你的系统是Windows,建议再安装一个Ubuntu,组成双系统,如此可以发挥各自系统的特...

    double
  • 【Netty】浅谈Netty的线程模型

    说起netty的线程模型,首先我们应该能想到经典的Reactor线程模型,不同的NIO框架的实现方式尽管不同,但是本质上还是遵循了Reactor线程模型。

    周三不加班
  • C++ 如何进阶?如何准备 C++ 面试?

    在大多数开发或者准开发人员的认识中,C/C++ 是一门非常难的编程语言,很多人知道它的强大,但因为认为“难”造成的恐惧让很多人放弃。

    范蠡
  • 用Python获取计算机网卡信息

    正常情况下,如果想要查看电脑的网卡IP地址或是MAC地址,直接通过界面找到网卡进行查看就有了,亦或是通过命令如linux的ifconfig得到IP等信息,...

    点滴技术
  • Centos系统备份与恢复教程

    2018年11月19日 16:55:04 爱我所爱bravefly 阅读数 1369更多

    拓荒者
  • 容器的进程与namespace、rootfs

    在linux容器中有三个重要的概念:Namespace、Cgroups、rootfs。

    yaohong
  • 【每周NLP论文推荐】 聊天机器人中FAQ相关的论文推荐

    今天推荐FAQ相关的论文,FAQ是聊天机器人的一种,它主要是基于用户的question,匹配相应的答案,返回给用户answer,没有太多的多轮交互。FAQ有较多...

    用户1508658

扫码关注云+社区

领取腾讯云代金券