【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

时间:2022-03-30 21:52:44
glances  
dstat  


glances命令详解

  相对于htop工具的使用,这里介绍一下glances工具的使用,我个人是比较喜欢这款工具的,主要就是由于glances这款工具可以将系统状态导出为文件,如果导出为html格式的则可以配合apache或者nginx等web程序来直接打开网页对服务器资源的查看。

        既然有优点那就也有缺点,不能通过上下箭头来选择要查看的某指定进程,也无法查看所有进程,它只能显示对系统资源占用较大的进程。不过它能很好的查看当前计算机里的网络、磁盘读写、磁盘分区等情况。

        glances的官方首页:http://nicolargo.github.io/glances/ 这里可下载对应的源码包

 

1、什么是 Glances?

Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。 通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况。

Glances 是一个用来监视 GNU/Linux 和 FreeBSD 操作系统的 GPL 授权的*软件。

Glances 同时也提供了很多实用的选项。 其中我们能够在配置文件见到的一项主要的功能就是设置关键值及相应的标签 (careful[小心], warning[警告] 和 critical[严重]), 然后她会自动帮我们用不同颜色标出系统达到某个瓶颈的信息。

2、Glances 主要功能

· CPU 信息 (用户的相关应用, 系统核心程序和空闲程序)

· 总内存信息,包括了物理内存,交换空间和空闲内存等等

· 之前的 1 分钟、5 分钟和 15 分钟平均的 CPU 负载

· 网络链接的下行和上行速度

· 处理器总数,以及其活动状态

· 硬盘 I/O 相关(读写)速度详情

· 当前挂载设备的磁盘使用情况

· 高 CPU 和内存使用的进程名,和相关应用的位置

· 在底部显示当前日期和时间

· 将消耗最高系统资源的进程用红色标出

在 Linux/Unix 系统中安装 Glances

虽然这个工具的发布比较晚,但你仍然可以在 Red Hat 系的系统中通过 EPEL 软件源安装。在终端用下面的命令安装:

对于 RHEL/CentOS/Fedora 发行版

1. # yum install -y glances

对于 Debian/Ubuntu/Linux Mint 发行版

1. $ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable

2. $ sudo apt-get update

3. $ sudo apt-get install glances

3、如何使用 Glances

首先,你需要在终端中输入以下命令

1. # glances

按下 ‘q‘ (‘ESC‘ 和 ‘Ctrl-C‘ 也可以) 退出 Glances 终端。 这里是从 CentOS 6.5 截取的另一张截图:

Glances 的默认刷新频率是 1 (秒),但是你可以通过在终端指定参数来手动定义其刷新频率

2. # glances -t 2  刷新频率变为2s

3、Glances 中颜色的含义

Glances 会用一下几种颜色来代表状态:

· 绿色:OK(一切正常)

· 蓝色:CAREFUL(需要注意)

· 紫色:WARNING(警告)

· 红色:CRITICAL(严重)

阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。

我们可以按照自己的需求在配置文件(默认在 /etc/glances/glances.conf)中自定义。

4、Glances 的选项

除了很多命令行选项之外,Glances 还提供了更多的可在其运行时开关输出信息选项的快捷键,下面是一些例子:

· a – 对进程自动排序

· c – 按 CPU 百分比对进程排序

· m – 按内存百分比对进程排序

· p – 按进程名字母顺序对进程排序

· i – 按读写频率(I/O)对进程排序

· d – 显示/隐藏磁盘 I/O 统计信息

· f – 显示/隐藏文件系统统计信息

· n – 显示/隐藏网络接口统计信息

· s – 显示/隐藏传感器统计信息

· y – 显示/隐藏硬盘温度统计信息

· l – 显示/隐藏日志(log)

· b – 切换网络 I/O 单位(Bytes/bits)

· w – 删除警告日志

· x – 删除警告和严重日志

· 1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况

· h – 显示/隐藏这个帮助画面

· t – 以组合形式浏览网络 I/O

· u – 以累计形式浏览网络 I/O

· q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

常用选项:
-b:以Byte为单位显示网上数据速率; -d:关闭磁盘I/O模块; -m:关闭mount模块; -n:关闭network模块; -t #:刷新时间间隔; -1:每个cpu的相关数据单独显示; -o {HTML|CSV}:输出格式;
-f /PATH/TO/SOMEDIR:设定输出文件的位置;

 

5、远程使用 Glances

你甚至也可以通过 Glances 来监视远程系统。 要在远程系统使用 ‘glances’,需要在服务器运行 ‘glances -s’(-s 启动服务器/客户端模式)命令。

1. # glances -s

2.  

3. Define the password for the Glances server

4. Password:

5. Password (confirm):

6. Glances server is running on 0.0.0.0:61209

注意:当你执行了‘glances’命令后,她会让你为 Glances 服务器设置密码。

当你设置完毕,你将看到 “Glances server is running on 0.0.0.0:61209” (Glances 服务器正在 0.0.0.0 的 61209 端口运行)的消息。

当 Glances 服务器启动后,到本地执行下面的命令来指定服务器IP地址或主机名以链接。

注:这里的 ‘172.16.27.56’ 是我 Glances 服务器的 IP 地址。

1. # glances -c -P 172.16.27.56

下面是一些在使用服务器/客户端模式时必须知道的事情:

 * 在服务器模式,你可以通过 `-B 地址` 来设置绑定地址,也可以通过 `-p 端口` 来绑定监听的 TCP 端口

 * 在客户端模式,你可以通过同样的 `-p 端口` 来指定服务器端口

 * 默认的绑定地址是 0.0.0.0,但这么做会监听所有网络接口的指定端口

 * 在服务器/客户端模式下,限制的阀值将由服务器的设置决定

 * 你也可以在命令行下用过 `-P 密码` 的方式来为服务器端设置一个密码

6、总结

Glances 对于大多用户而言是个在系统资源上提供过多信息的工具。但是如果你是一个想要仅从命令行就能快速获取系统整体状况的系统管理员,那这个工具绝对是你的必备利器。

7、译者注

1. 请不要将 glances(本文中的工具)和 glance(一个 OpenStack 的工具)这两个包搞混了

2. Ubuntu 官方 Extra 源中的 glances 因为 python 库移动的问题导致无法正常使用 但可以通过建立软链接的方式临时修复:sudo ln -s /usr/lib/python2.7/dist-packages/glances /usr/share/pyshared/glances

参考博文:https://blog.csdn.net/cc297322716/article/details/73246468


 


 

dstat命令详解:

1、命令概述:

  dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat扬长避短,即克服了这些命令的局限又增加了一些额外的功能,不但拥有更多的监控项,也更灵活。dstat在性能测试、基准测试和排除故障过程中可以很方便监控系统运行状况。 
  dstat可以查看所有的实时系统资源,如:通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。 
  dstat以列表的形式提供选项信息,并清晰地告知以何种幅度和单位显示输出。输出信息整洁,降低发生错误的概率。最重要的是,整洁的数据更容易编写插件用来收集分析关注的数据信息。 
  dstat默认输出是专门为实时查看而设计的,然而也可以将详细信息通过cvs输出到一个文件,然后将cvs文件导入到Gnumeric或者Excel中生成图表。

2、特性

  • 结合了vmstat,iostat,ifstat,netstat以及更多的信息
  • 实时显示统计情况,输出报告
  • 在分析和排障时可以通过启用监控项并排序
  • 模块化设计
  • 使用python编写的,方便扩展现有的工作任务
  • 容易扩展和添加你的计数器
  • 包含的许多扩展插件——增加新的监控项目很方便
  • 可以分组统计块设备/网络设备,并给出总数
  • 可以显示每台设备的当前状态
  • 极准确的时间精度,即便是系统负荷较高也不会延迟显示
  • 显示准确地单位和和限制转换误差范围
  • 不同的计量单位用不同的颜色显示
  • 显示中间结果延时小于1秒
  • 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形

3、安装和测试

  # yum install dsta

  # dstat

【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

针对默认输出字段解释如下:
CPU状态    CPU的使用率。显示了用户占比,系统占比、空闲占比、等待占比、硬中断和软中断情况。
磁盘统计    磁盘的读写,分别显示磁盘的读、写总数。
网络统计    网络设备发送和接受的数据,分别显示的网络收、发数据总数。
分页统计    系统的分页活动。分别显示换入(in)和换出(out)。
系统统计    统计中断(int)和上下文切换(csw)。

4、命令格式:

  dstat [-afv] [options..] [delay [count]

【options】

【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat
-c, - -cpu    开启cpu统计
-C    该选项跟cpu的编号(0~cpu核数-1,多个用都好隔开)如:0,3,total表示分别包含cpu0、cpu3和total
-d, - -disk    开启disk统计
-D    改选跟具体的设备名(多个用逗号隔开)如:total,hda,hdb表示分别统计total、hda、hdb设备块
-g, - -page    开启分页统计
-i, - -int    开启中断统计
-I 5,10    没弄懂呢~巴拉巴拉
-l, - -load    开启负载均衡统计,分别是1m,5m,15m
-m, - -mem    开启内存统计,包括used,buffers,cache,free
-n, - -net    开启net统计,包括接受和发送
-N    该选项可以跟网络设备名多个用逗号隔开,如eth1,total
-p, - -proc    开启进程统计,包括runnable, uninterruptible, new
-r, - -io    io开启请求统计,包括read requests, write requests
-s, - -swap    开启swap统计,包括used, free
-S    该选项可以跟具体的交换区,多个用逗号隔开如swap1,total
-t, - -time    启用时间和日期输出
-T, - -epoch    启用时间计数,从epoch到现在的秒数
-y, - -sys    开启系统统计,包括中断和上下文切换
- -aio    开启同步IO统计 (asynchronous I/O)
- -fs    开启文件系统统计,包括 (open files, inodes)
- -ipc    开启ipc统计,包括 (message queue, semaphores, shared memory)
- -lock    开启文件所统计,包括 (posix, flock, read, write)
- -raw    开启raw统计 (raw sockets)
- -socket    开启sockets统计,包括 (total, tcp, udp, raw, ip-fragments)
- -tcp    开启tcp统计,包括(listen, established, syn, time_wait, close)
- -udp    开启udp统计 (listen, active)
- -unix    开启unix统计(datagram, stream, listen, active)
- -vm    开启vm统计 (hard pagefaults, soft pagefaults, allocated, free)
- -stat    通过插件名称开启插件扩展,详见命令插件 :可能的内置插件为aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time,udp, unix, vm
- -list    列举内置插件扩展的名称
-a, - -all    是默认值相当于 -cdngy (default)
-f, - -full    相当于 -C, -D, -I, -N and -S
-v, - -vmstat    相当于 -pmgdsc -D total
- -bw, - -blackonwhite    在白色背景终端上改变显示颜色
- -float    在屏幕上的输出强制显示为浮点值(即带小数)(相反的选项设置为 - -integer)
- -integer    在屏幕上的输出强制显示为整数值,此为默认值(相反的选项设置为- -float- -nocolor    禁用颜色(意味着选项 - -noupdate)
- -noheaders    禁止重复输出header,默认会打印一屏幕输出一次header
- -noupdate    当delay>1时禁止在过程中更新(即在时间间隔内不允许更新)
- -output file    输出结果到cvs文件中
View Code

 

常用命令选项:
-c, --cpu:显示cpu相关信息;
-C #,#,...,total
-d, --disk:显示磁盘的相关信息
-D sda,sdb,...,tobal
-g:显示page相关的速率数据;
-m:Memory的相关统计数据
-n:Interface的相关统计数据;
-p:显示process的相关统计数据;
-r:显示io请求的相关的统计数据;
-s:显示swapped的相关统计数据;        
--tcp 
--udp
--raw 
--socket           
--ipc                 
--top-cpu:显示最占用CPU的进程;
--top-io:最占用io的进程;
--top-mem:最占用内存的进程;
--top-latency:延迟最大的进程;

5、常见问题

1、cpu分组中”wait”,如果一直处于高使用率,那说明系统存在一些其它问题。当CPU的状态处在”waits”时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。 
2、CPU的使用情况是否正常:用户态和内核态的使用是否合理;总体占比是否合理;若不合理可以用dstat对应的插件(- -top-cpu)排查最耗CPU的进程,配合mpstat、top再去下钻一下分析线程,进一步到程序(比如java可以jstack)。 
3、磁盘IO读写是否正常:读写是否偏大;若不正常可以配合插件- -disk-util、- -freespace、- -top-bio、- -top-io等进行排查,也可以配合iostat排查 
3、内存是否正常:一般要配合交换区内存一起判断,若不正常可以配合插件- -top-mem,可能是开启的进程太多,或者第三方程序捣乱。 
4、应用程序内存是否正常:配合业务表现比如请求响应慢、没反应等,在结合第三方程序监控(如java可以用jvm监控工具(jprofiler、jconsole、jvisualvm……)监控内存)此种情况和3还不太一样,一个jvm内存一个sys内存 
5、分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值都是0。 
6、系统统计仅在有比较基线时才有意义。中断和上下文切换较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。 
7、使用不同的插件可以快速排查有问题的进程然后配合其他工具下钻具体问题,当然这个需要建立在你对所有的插件都比较熟悉的基础之上,知道什么情况下使用什么插件。技巧:可以将常用的命令写成脚本,执行分析,这样就不用每次都敲了。

 

示例1:内存资源使用情况:

  # dstat -glms --top-mem

【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

 

 

示例2:CPU资源使用情况

  # dstat -cyl --proc-count --top-cpu

【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

 

示例3:输出一个csv文件

  # dstat --output ~/test.csv

【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

 

参考博文:https://blog.csdn.net/yue530tomtom/article/details/75443305