linux网络命令(九)之dstat

一、dstat使用

1、简介

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。

dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。

dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。

Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。

2、特性

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

3、安装使用

[[email protected] ~]# yum install -y dstat

dstat的基本用法就是输入dstat命令,输出如下:

这是默认输出显示的信息:

  • CPU状态:CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。 hiq、siq分别为硬中断和软中断次数。
  • 磁盘统计:磁盘的读写操作,这一栏显示磁盘的读、写总数。
  • 网络统计:网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。
  • 分页统计:系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。
  • 系统统计:这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。

默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。

需要注意的是报告的第一行,通常这里所有的统计都不显示数值的。 这是由于dstat会通过上一次的报告来给出一个总结,所以第一次运行时是没有平均值和总值的相关数据。

但是dstat可以通过传递2个参数运行来控制报告间隔和报告数量。例如,如果你想要dstat输出默认监控、报表输出的时间间隔为2秒钟,并且报表中输出3个结果,你可以运行如下命令:

4、常用参数

  • -l :显示负载统计量
  • -m :显示内存使用率(包括used,buffer,cache,free值)
  • -r :显示I/O统计
  • -s :显示交换分区使用情况
  • -t :将当前时间显示在第一行
  • –fs :显示文件系统统计数据(包括文件总数量和inodes值)
  • –nocolor :不显示颜色(有时候有用)
  • --socket :显示网络统计数据
  • --tcp :显示常用的TCP统计
  • --udp :显示监听的UDP接口及其当前用量的一些动态数据
  • -c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
  • -C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
  • -d:显示磁盘读写数据大小。
  • -D hda,total:include hda and total。
  • -n:显示网络状态。
  • -N eth1,total:有多块网卡时,指定要显示的网卡。
  • -g:显示页面使用情况。
  • -p:显示进程状态。
  • -S:类似D/N。
  • -y:系统状态。
  • --ipc:显示ipc消息队列,信号等信息。
  • -a:此为默认选项,等同于-cdngy。
  • -v:等同于 -pmgdsc -D total。
  • --output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。

dstat附带了一些插件很大程度地扩展了它的功能。你可以通过查看/usr/share/dstat目录来查看它们的一些使用方法,常用的有这些:

  • -–disk-util :显示某一时间磁盘的忙碌状况
  • -–freespace :显示当前磁盘空间使用率
  • -–proc-count :显示正在运行的程序数量
  • -–top-bio :指出块I/O最大的进程
  • -–top-cpu :图形化显示CPU占用最大的进程
  • -–top-io :显示正常I/O最大的进程
  • -–top-mem :显示占用最多内存的进程

5、举例

查看全部内存都有谁在占用:

# dstat -g -l -m -s --top-mem

显示一些关于CPU资源损耗的数据:

# dstat -c -y -l --proc-count --top-cpu

想输出一个csv格式的文件用于以后,可以通过下面的命令:

# dstat –output /tmp/sampleoutput.csv -cdn

监控swap,process,sockets,filesystem并显示监控的时间:

# dstat -tsp --socket --fs

下面这些插件并不是都可以直接使用的,有的还依赖其他包,如想监控mysql,必须要装python连接mysql的一些包。

时间: 2024-08-15 10:02:11

linux网络命令(九)之dstat的相关文章

基础的 Linux 网络命令,你值得拥有

导读 有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It’s FOSS 我们并非每天都谈论 Linux 的“命令行方面”.基本上,我更专注于 Linux 的桌面端.但你们读者中的一些人在内部调查(仅面向 It's FOSS newsletter 订阅者)中指出,你们也想学些命令行技巧.速查表也受大部分读者所喜欢和支持. 为此,我编辑了一个 Linux 中基础网络命令的列表.它并不是一个教你如何使用这些命令的教程,而是一个命令

你必须了解的基础的 Linux 网络命令

Linux 基础网络命令列表 我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作. 连通性 ping <host>:发送 ICMP echo 消息(一个包)到主机.这可能会不停地发送直到你按下 Control-C.Ping 的通意味着一个包从你的机器通过 ICMP 发送出去,并在 IP 层回显.Ping 告诉你另一个主机是否在运行. telnet <host> [port]:与主机在指定的端口通信.默认的 telnet 端口是 23

Linux网络管理——Linux网络命令

3. Linux网络命令 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;} .note-content h2 {line-height: 1.6; color: #0AA

程序猿必知的 基础Linux 网络命令

在嵌入式开发中,我们常常用到各种linux命令,今天和大家分享的就是基础的 Linux网络命令,这是在网上无意中看到的一篇整理得非常好的文章,分享给大家,希望对大家有帮助.  有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It's FOSS 我们并非每天都谈论 Linux 的"命令行方面".基本上,我更专注于 Linux 的桌面端.但你们读者中的一些人在内部调查(仅面向 It's FOSS newsletter 订

linux网络编程九:splice函数,高效的零拷贝

from:http://blog.csdn.net/jasonliuvip/article/details/22600569 linux网络编程九:splice函数,高效的零拷贝 最近在看<Linux高性能服务器编程>,在此做个日记,以激励自己,同时分享于有需要的朋友. 1. splice函数 [cpp] view plain copy #include <fcntl.h> ssize_t splice(int fd_in, loff_t *off_in, int fd_out, 

初中级DBA必须要学会的9个Linux网络命令,看看你有哪些还没用过

笔者不久前写了一篇文章<做DBA必须学会,不会会死的11个Linux基本命令>,博文地址为:http://blog.csdn.net/ljunjie82/article/details/45022355 此篇文章,则是写的初中级DBA必须要学会的9个Linux网络命令,这些命令对一个DBA在维护管理.故障排除方面能否高效的开展工作,起着举足轻重的作用. 1.ethtool Ethtool是用于查询及设置网卡参数的命令,用得最多的,莫过于查看网卡的速度,如百兆.千兆.万兆. 常用用法: (1)e

最常用的Windows、Linux网络命令总结

题记:工作中经常用到Windows.Linux的网络命令,记录总结出最常用的,一方面对Windows.Linux做个对比:另一方面加深对网络命令的认知. 有不全的地方,大家补上.一起探讨下,谢谢! 2014-11-29 pm10:29思于家中床前 作者:铭毅天下 转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/41604621 如果感觉本文对您有帮助,请点击'顶'支持一下,您的支持是我坚持写作最大的动力,谢谢!

linux网络命令详解

1 ifconfig命令 格式:ifconfig  {inerface} {options} options参数有:up,down,mtu,netmask,broadcast 单独ifconfig命令:查看网络所有端口: 范例1:ifconfig eth0 192.168.1.0 netmask 255.255.0.0 mtu 8000(配置端口eth0的ip地址) 范例2:ifconfig eth0:0 192.168.50.50(表示在eth0再仿真出来一个网络接口) 注意:ifconfig

linux 网络命令学习笔记

1.临时配置IP 命令 a.  ifconfig eth0 192.168.0.1 netmask 255.255.255.255 b.  或者直接在linux设置里面关于网络设置部分设置 2.网络查看命令 a. netstat -runla         -t 列出TCP协议端口 -u 列出UDP协议端口 -a 列出所有网络链接 -l 列出仅在监听状态的网络服务 (listing) -n 不使用服务器名和域名,只是列出IP地址和端口号 b. ifconfig /all        查看当前