1 dstat工具的使用

1.1 什么是dstat

官方定义: 多功能系统资源统计生成工具 ( versatile tool for generating system resource statistics), 可提供包含 top、free、iostat、ifstat、vmstat等多个工具的功能, 统计结果还可以保存到 csv 文件或数据库中.

1.2 dstat的基本使用

(1) dstat的默认选项:

默认会收集 -cpu-、-disk-、-net-、-paging-、-system- 的数据, 一秒钟收集一次.

默认设置等同于: dstat -cdngy 1dstat -a 1.

(2) dstat的常用选项:

使用dstat -h查看全部选项, 这里简单介绍常用选项:

# 直接跟数字x, 表示x秒收集一次数据, 默认为一秒
-c, --cpu # 统计CPU状态, 包括 user, system, idle(空闲等待时间百分比), wait(等待磁盘IO)等
-d, --disk # 统计磁盘读写状态
-D total,sda # 统计指定磁盘或汇总信息 -m, --mem # 统计系统物理内存使用情况, 包括used, buffers, cache, free
-l, --load # 统计系统负载情况, 包括1分钟、5分钟、15分钟平均值
-s, --swap # 统计swap已使用和剩余量
-n, --net # 统计网络使用情况, 包括接收和发送数据
-N eth1,total # 统计eth1接口汇总流量 -r, --io # 统计I/O请求, 包括读写请求
-p, --proc # 统计进程信息, 包括runnable、uninterruptible、new
-y, --sys # 统计系统信息, 包括中断、上下文切换
-t # 显示统计时间, 对分析历史数据非常有用
--fs # 统计文件打开数和inodes数

常见使用组合为:

dstat -cmsdnl -D sda9 -N lo,etho 100 5

1.3 检测界面各参数的含义

----system---- # 系统时间信息
---procs---    # 进程数统计
run: 运行中的和等待(CPU时间片)运行的进程数 --- 此值若长期大于1, 可考虑增加CPU
blk: 处于不可中断状态的进程数, 多由 IO 引发
new: 系统内核进程消耗的CPU时间百分比, 若值太高, 说明系统可能出现故障, 需检查排除
----total-cpu-usage---- # CPU使用率
usr: 用户进程消耗的CPU时间百分比
sys: 系统内核进程消耗的CPU时间百分比, 若值太高, 说明系统可能出现故障, 需要检查
idl: CPU处在空闲状态的时间百分比
wai: 等待磁盘I/O所消耗的CPU时间百分比, 值越高, 说明IO等待严重, 可能是磁盘大量随机访问造成, 也可能是磁盘的带块出现瓶颈(块操作)
hiq: hardware interrupt, 硬件中断次数
siq: software interrupt, 软件中断次数
-----memory-usage-----  # 内存使用率
used: 当前已使用的内存
buff: 作为buffer cache的内存, 对块设备的读写进行缓冲
cache: 作为page cache的内存, 文件系统的cache. cache越大, 说明cache中的文件数多.
# 如果频繁访问到的文件都能被载入cache, 那么磁盘的读IO将会显著降低
free: 空闲的物理内存
---io/total---      # 磁盘IO统计
read: 从块设备读入的数据总量(读磁盘)(单位: KB/s)
writ: 写入到块设备的数据总量(写磁盘)(单位: KB/s)
# 注: 随机磁盘读写时, 这两个参数的值越大(如超出1M), CPU消耗在IO等待的时间就越长
-dsk/total-         # 磁盘统计
read: 读总数
writ: 写总数
-net/total-         # 网络统计
recv: 网络收包总数
send: 网络发包总数
---paging---        # 内存分页统计
in: page in(换入)
out: page out(换出)
# 注: 系统的分页活动, 是一种内存管理技术用于查找系统场景, 较大的分页表明系统正在使用大量的交换空间.
# 通常当系统开始用交换空间时, 说明内存已经不够用, 或者内存非常分散.
# 理想情况下page in(换入)和page out(换出)的值是0 0.
---load-avg---      # 系统平均负载
# 分别对应系统当前1分钟、5分钟、15分钟内的平均load, 用于反映当前系统的负载情况.

1.4 dstat 的高级用法

(1) 找出占用资源最高的进程和用户:

用法: --top-(io|bio|cpu|cputime|cputime-avg|mem)

通过上述命令, 可以查看占用相关系统资源的具体用户及其进程.

示例: 查看当前占用IO、CPU、内存最高的进程信息的命令:

dstat --top-io --top-mem --top-cpu

(2) 获取其他应用信息:

dstat 还可获取其他应用信息. 如:

dstat --postfix   # 显示postfix队列大小
dstat --sendmail # 显示sendmail队列大小
dstat --ntp # 显示ntp服务器时间

2 dstat工具的安装

2.1 (推荐)通过yum安装

推荐, 不用配置其他环境, 就可以在任一路径下使用:

yum -y install dstat

2.2 (或)通过wget安装

首先安装 wget 工具:

yum -y install wget

然后安装 dstat 工具:

wget http://dstat.sourcearchive.com/downloads/0.7.0/dstat_0.7.0.orig.tar.gz

# 解压, 然后进入解压后的目录:
tar -xvzf dstat_0.7.0.orig.tar.gz
cd dstat-0.7.0.orig/
# 使用以下方式即可使用dstat
./dstat -V

2.3 (或)使用rpm安装

wget http://mirror.centos.org/centos/6/os/i386/Packages/dstat-0.7.0-2.el6.noarch.rpm
rpm -ivh dstat-0.7.0-2.el6.noarch.rpm
# 直接在系统中调用dstat即可
dstat -V

3 安装中的常见问题

3.1 问题描述

在CentOS 6.5系统中, 准备使用 yum 或 wget 命令安装 dstat 工具, 发现两者都不可用:

  • yum 命令出错:

    Loaded plugins: fastestmirror
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
    14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
    Error: Cannot find a valid baseurl for repo: base
  • wget 命令出错:

    -bash: wget: command not found

3.2 问题解决

搜索一圈后, 发现问题在于服务器未能成功连接外网, 检测方法: 在命令行中如下测试:

ping www.baidu.com # 发现找不到 www.baidu.com 主机, 说明未连接到互联网.

(1) 网上的一种解决方法:

① 使用root登陆;

② 输入: vi /etc/systemconfig/network-scripts/ifcfg-eth0;

③ 在此文件中加入DNS1=8.8.8.8;

④ 然后保存;

⑤ 输入命令重启网络服务: service network restart;

⑥ 输入命令继续下载安装: yum install gcc.

在博主的服务器上并未找到systemconfig目录, 当然也没找到ifcfg-eth0文件. . .

(2) 最后的解决方法:

# 编辑/etc/resolv.conf文件:
vi /etc/resolv.conf
# 向其中添加:
nameserver 8.8.8.8
# 保存退出即可

此时ping www.baidu.com, 发现可以ping通 —— 问题解决.

参考资料

全能系统监控工具dstat

版权声明

作者: 马瘦风

出处: 博客园 马瘦风的博客

您的支持是对博主的极大鼓励, 感谢您的阅读.

本文版权归博主所有, 欢迎转载, 但请保留此段声明, 并在文章页面明显位置给出原文链接, 否则博主保留追究相关人员法律责任的权利.

CentOS 6.5中安装使用dstat资源统计工具的更多相关文章

  1. 在CentOS 6.3中安装与配置JDK-7

    在CentOS 6.3中安装与配置JDK-7 来源:互联网 作者:佚名 时间:02-07 16:28:33 [大 中 小] 在CentOS-6.3中安装与配置JDK-7,有需要的朋友可以参考下 安装说 ...

  2. 在CentOS 8 Linux中安装使用Cockpit服务器管理软件

    在本文中,我们将帮助您在CentOS 8服务器中安装Cockpit Web 控制台,以管理和监视本地系统以及网络环境中的Linux服务器.您还将学习如何将远程Linux主机添加到Cockpit并在Ce ...

  3. 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)

    Qing Liu  Tue, Mar 10 2015 3:06 AM 在今天的这一个章节中,我们主要讨论在CentOs 5.x 中如何安装Windows Azure Linux Agent 2.11 ...

  4. 如何在CentOS 7.x中安装OpenERP(Odoo)

    各位好,这篇教程关于的是如何在CentOS 7中安装Odoo(就是我们所知的OpenERP).你是不是在考虑为你的业务安装一个不错的ERP(企业资源规划)软件?那么OpenERP就是你寻找的最好的程序 ...

  5. 在centos 64bit 系统中安装使用WPS office的方法

    1. 安装32位开发库: yum install xulrunner.i686 yum install libXtst.i686 2. 在官网下载 wps-office-8.1.0.3724-0.1. ...

  6. 在centos,docker中安装HeadlessChrome

    在centos6中安装chrome与chrome-driver,中间走了很多弯路,遇到很多坑,现将详细步骤总结如下.参考博客链接:https://blog.csdn.net/u013849486/ar ...

  7. 如何在CentOS 7.1中安装VMware Workstation

    VMware Workstation在windows环境中大家都会安装,最近公司有个需求是需要在CentOS环境中安装VMware Workstation,上官网查了下还真有Linux版本的,于是就开 ...

  8. 在CentOS 6.7中安装 latex2html, 实现 latex 自动转化为 word

    由于latex文档生成的pdf不便于提供审阅和修改,亟需一个软件实现从latex向word文档的自动转换( 如何把Latex自动转为Word 介绍了由latex2html 可实现这个功能,这也是初衷) ...

  9. centOS 6.7 中安装matlab R2014b

    参考资料: [1] http://www.centoscn.com/image-text/config/2014/1222/4354.html 系统: centOS 6.7 2.6.32-573.el ...

随机推荐

  1. python字典去重

    今天实习的web大表哥说帮我看环境不过前提是要我帮他写个python合并列表的demo, 大概思路就是利用zip库进行keys和values的遍历,然后在输出就行 key1={'name1':'小明' ...

  2. SQL语句练习题【主供自己学习、记忆】

    1.这是我在面试中遇到的一道sql题,没有答出来,o(╥﹏╥)o 这是我刚才在网上查找函数之后写的SQL语句,能得到这个结果.[谁有不同的方法,欢迎底下评论留言哈] select (DATENAME( ...

  3. Python 3.5 filter

    filter(F, L) F: 函数.L:范围 filter的功能是:用函数F把L范围内的参数做过滤 通常和list一起使用,把过滤后的参数做成列表 list(filter(lambda n:not ...

  4. SQLServer表、列备注管理

    在开发时,为了方便,在SQL SERVER库内对表名.列名进行备注,但在DB部署客户时,想一次清理上述备注值. 特编写如下 SQL,一次清除上述备注内容: declare @table nvarcha ...

  5. redis在windows和Linux系统下的下载、安装、配置

    1.下载redis安装包 在redis的官网只有Linux系统下的安装包,微软的GitHub上有提供windows版本的redis安装包 redis中文网:http://www.redis.cn/ 微 ...

  6. sortable的基本属性

    所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象   ui.helper - 表示sortable元素的JQuery对象,通常是当前元素的克隆对象    ...

  7. php基础-mysqli

    基本八个步骤 //连接数据库 $link = mysqli_connect('localhost', 'root', ''); //判断是否连接成功 if (!$link) { exit('数据库连接 ...

  8. 20175324 2018-2019-2 《Java程序设计》第8周学习总结

    本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类声明:class 名称<泛型列 ...

  9. 微信小程序学习笔记(三)

    一般setData方法多用于点击后改变页面信息或者刷新后与后台交互获取最新的信息 注意: 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 ...

  10. nova vnc proxy基本原理

    先上图 VNC Proxy的功能: 将公网(public network)和私网(private network)隔离 VNC client运行在公网上,VNCServer运行在私网上,VNC Pro ...