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

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

4、命令格式:

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

【options】

-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文件中
常用命令选项:
-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

示例2:CPU资源使用情况

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

示例3:输出一个csv文件

  # dstat --output ~/test.csv

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

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

  1. Linux系统监控实用工具Glances

    Linux系统监控实用工具Glances Glances安装 Glances安装要求:python >= 2.6 和 psutil >= 0.4.1 1.第一步,安装了python-> ...

  2. linux系统监控常用工具

    linux系统监控常用工具 一.系统核心工具包(coreutils) 1./bin/df 报告系统的磁盘空间用量 df -h  显示磁盘分区fdisk -l 2./bin/uname 显示系统信息 u ...

  3. 【进程/作业管理】篇章一:Linux进程及管理(专用内存监控类工具)------【vmstat、pmap】

    主要讲解专用内存监控工具的使用:vmstat.pmap命令的使用. 命令概览: vmstat 显示虚拟内存状态 pmap 报告进程与内存映射关系 vmstat命令是最常见的Linux/Unix监控工具 ...

  4. Linux 系统监控.诊断工具之 IO wait

    1. 常用组合方式有如下几种: 用vmstat.sar.iostat检测是否是CPU瓶颈 用free.vmstat检测是否是内存瓶颈 用iostat.dmesg 检测是否是磁盘I/O瓶颈 用netst ...

  5. Linux记录-I/O系统监控

    几个基本的概念 在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理.不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条——Hard disk drive(英文 ...

  6. 【进程/作业】篇章一:Linux进程及其管理(进程的管理基础)

    概述:监控系统各方面的性能,保障各类服务的有序运行,是运维工作的重要组成部分,本篇就介绍一次常用的系统监控命令和相关的参数说明 具体包含以下几部分: 1.进程的管理基础 ,主要是讲一下概念性的东西 2 ...

  7. Linux进程管理描述符 task_struct

    转:http://blog.csdn.net/hongchangfirst/article/details/7075026 大家都知道进程,可是知道linux是怎么管理其进程的吗?每一个进程都有一个进 ...

  8. linux分享一:进程全攻略--守护进程(服务)

    概括: 进程是程序的运行实例.进程对应一个唯一的进程PID, 统一程序的多个实例可以同时运行,他们的pid互不相同. 进程一般分为交互进程.批处理进程和守护进程(daemons)三类 一:什么是守护进 ...

  9. Linux 进程必知必会

    上一篇文章只是简单的描述了一下 Linux 基本概念,通过几个例子来说明 Linux 基本应用程序,然后以 Linux 基本内核构造来结尾.那么本篇文章我们就深入理解一下 Linux 内核来理解 Li ...

随机推荐

  1. redis cluster可用性测试

    上一节,我们用三台redis组成了cluster,现在我们停掉一台试试: 比较奇怪的是,在停掉其中一台服务器之前建立的链接仍然可以正常执行命令,当我们断开重连时,命令就都被拒绝了: 关联知识: 什么时 ...

  2. 浅谈JAVA servlet

    1.servlet是什么? servlet的本质是接口,接口就是一种规范.我们来看一下servlet接口中都有哪些函数: 图片来源:https://www.cnblogs.com/whgk/p/639 ...

  3. 分布式系统唯一ID

    一 什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识. 如在金融.电商.支付.等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息, ...

  4. 冲刺随笔——Day_Six

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  5. Windows平台部署Asp.Net Core应用

    一. 简介 Asp.Net Core 部署方式有两种:依赖框架和独立部署. 1. 框架依赖的部署: 顾名思义,依赖框架的部署 (FDD) 依赖目标系统上存在共享系统级版本的 .NET Core. 由于 ...

  6. 第九章 Python文件操作

    前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...

  7. Python妙用re.sub分析正则表达式匹配过程

    声明:本文所使用方法为老猿自行研究并编码,相关代码版权为老猿所有,禁止转载文章,代码禁止用于商业用途! 在<第11.23节 Python 中re模块的搜索替换功能:sub及subn函数>介 ...

  8. 第十五章、Model/View架构中Item Views部件的父类

    老猿Python博文目录 老猿Python博客地址 引言:本章早就写好了,其简版<第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中怎么给toolBar添加按钮

    在Designer中创建了一个MainWindow窗体,当想在其中的toolBar中添加toolButton时发现怎么也放不上去,最终才发现toolBar中的按钮只能通过直接拖拽Action编辑器中的 ...

  10. python中的万能密码

    在php中,我们经常见到这样的语句 if(isset($_GET['id'])) { $id=$_GET['id']; //logging the connection parameters to a ...