CentOS 6.5中安装使用dstat资源统计工具
目录
1 dstat 工具的使用
1.1 什么是 dstat
官方定义: 多功能系统资源统计生成工具 ( versatile tool for generating system resource statistics), 可提供包含 top、free、iostat、ifstat、vmstat等多个工具的功能, 统计结果还可以保存到 csv 文件或数据库中.
1.2 dstat 的基本使用
1.2.1 dstat 的默认选项
默认会收集 `-cpu-、-disk-、-net-、-paging-、-system-
的数据, 一秒钟收集一次.
默认设置等同于: dstat -cdngy 1
或 dstat -a 1
.
1.2.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.4.1 找出占用资源最高的进程和用户
用法: --top-(io|bio|cpu|cputime|cputime-avg|mem)
通过上述命令, 可以查看占用相关系统资源的具体用户及其进程.
示例: 查看当前占用io、cpu、内存最高的进程信息的命令:
dstat --top-io --top-mem --top-cpu
1.4.2 获取其他应用信息
dstat 还可获取其他应用信息. 如:
dstat --postfix # 显示postfix队列大小 dstat --sendmail # 显示sendmail队列大小 dstat --ntp # 显示ntp服务器时间
2 dstat 工具的安装
2.1 (推荐)通过 yum 安装
推荐, 不用配置其他环境, 就可以在任一路径下使用:
yum 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 主机, 说明未连接到互联网.
3.2.1 网上的一种解决方法:
(1)使用root登陆
(2)输入: vi /etc/systemconfig/network-scripts/ifcfg-eth0
(3)在此文件中加入dns1=8.8.8.8
(4)然后保存
(5)service network restart # 重启网络服务
(6) yum install gcc # 正常下载
在本人的服务器上并未找到 systemconfig
路径, 更别说 ifcfg-eth0
文件了. . .
3.2.2 最后的解决方法:
# 编辑/etc/resolv.conf文件: vi /etc/resolv.conf # 向其中添加: nameserver 8.8.8.8 # 保存退出即可
此时 ping www.baidu.com
, 发现可以 ping 通 —— 问题解决.
参考:
版权声明
作者: ma_shoufeng(马瘦风)
出处: 博客园
您的支持是对博主的极大鼓励, 感谢您的阅读.
本文版权归博主所有, 欢迎转载, 但未经博主同意必须保留此段声明, 且在文章页面明显位置给出原文链接, 否则博主保留追究法律责任的权利.