- 浏览: 7851395 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
http://calvin1978.blogcn.com/articles/dstat.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
聪明的同学在性能测试时,一边盯着监控一边自己在想:
“如果有200毫秒的CPU瞬时高峰,会被抓住么?”
“我再加上这个监控项,或者我让采样间隔再密一点,会影响性能么”
dstat用地球人都看得懂的python来写,而且只有寥寥数行,很适合从它入手,了解所有top, vmstat,pidstat们的工作原理,回答上面的问题。
1. dstat简介
系统性能的监控工具,我首选dstat,用过的同学也都喜欢,因为:
dstat可以认为是vmstat,iostat等的合体,不像vmstat还缺个网络流量数据。
dstat有良好的对齐和单位转换,不像vmstat一堆数字看到脖子都歪了。
安装
一般yum install dstat, 或者从官网下载最新版解压即用。
使用
我最喜欢的指令是 "dstat -tamp"
t: 时间
a: 一个缩写合集,包括CPU(-c), 磁盘IO(-d),网络流量(-n), Swap page in/out(-g), 系统的中断和上下文切换(-y)
如果用bond0绑定了两块网卡,bond0与eth0+eth1会重复算,需要把值劈一半,或者用-N bond0 这样单拧出来。
如果想监控不同磁盘,可以-D sda,sdb,total
m: 内存
p: 进程数 (在运行的,被阻塞的,新增的)
2.实现原理
dstat的地球人都看得懂的代码在此:
https://github.com/dagwieers/dstat/blob/master/dstat#L602
CPU信息
阅读第一段,关于CPU的采集插件,哦,原来完全是靠读取 /proc/stat 文件的数据。
$ cat /proc/stat
cpu 179165222 1067 67744298 9464596822 89694 31726 17296810 0 0
cpu0 13417559 30 4926156 385849929 39813 5 245082 0 0
cpu1 5972603 19 2536549 395562123 2953 0 70426 0 0
…..
关于CPU的几列数字分别是user,nice,system,idle,iowait....等状态的cpu时间统计,值是从开机到现在的累计值,单位是1/100秒。
顺便再瞄一下,/proc目录下还有/proc/[pid]/stat,那是每个进程的CPU统计。
既然/proc/stat 文件长这样,那top啊,mpstat, pidstat啊,CPU信息估计也是这么读出来的没跑了,《性能之巅》里用strace追踪vmstat也证实了这点。
回答问题时间
现在,第一个问题可以回答了,dstat每秒读取一下这个CPU累计值,然后减去前一秒的累计值,就得到这一秒内的平均值——所以200毫秒内的CPU高峰是抓不到的,只有平均值。
第二个问题,这监控的消耗大么?
首先,/proc目录是个伪文件系统,数据其实是在内存之中,只是通过文件形式来暴露,让你可以通过cat命令,或open file这类系统调用来读取(这种风格是Unix的基因,详见《Unix编程的艺术》),读取这么一下内存的消耗很低。
而且,dstat是一开始就打开了/proc/stat文件,不会每秒钟都重复打开。当然,像top,pidstat, 或者dstat里比如top-*插件,就会每次打开每个活动进程的stat文件,那消耗会大些。
通过pidstat的监控,dstat自身的消耗也就是一个CPU核的1%,pidstat也是一个核的1%,top略大,所以有人说压测时不要开top。
有些聪明的同学可能闪电般又有第三个问题,那这个/proc/stat文件什么时候更新?一秒一次么?
因为/proc是个伪文件系统,本质是API接口,所以并不存在“更新”这个概念,每次读取该文件时,调用sysconf(_SC_CLK_TCK)来获取,返回内存中的metrics值(或者如果需要实时统计的就统计一下)
/proc目录
关于/proc目录,linux自己已经有详细文档:http://man7.org/linux/man-pages/man5/proc.5.html,《性能之巅》4.2章 观测来源里也有描述。
我够懒的话,写到这里已经可以停笔了,大家自己去读它就可以了。为了凑字数,继续吧。。。。
3. 多余的话
其他系统级别信息
新增/运行/堵塞进程数量 ,系统上下文切换,中断次数在/proc/stat,其中新增进程是靠累计进程数的差值得来。
磁盘信息,都在/proc/diskstats, 包括所有iostats用到的详细信息, 详见Documentation/iostatts.txt
内存信息,都在/proc/meminfo,还包括默认没显示的dirty page cached 大小等。
Swap page in/out 信息,在/proc/vmstat
网络流量信息, 在/proc/net/dev
tcp socket状态的统计,在/proc/net/tcp
系统负载的统计(类似uptime),在/proc/loadavg
进程级别信息
每个进程的信息,留意下面几个:
/proc/[pid]/stat 与status: TOP看的进程信息多在这里, status对人类友好些。
/proc/[pid]/cmdline: 完整的命令行参数
/proc/[pid]/environ: 完整的实际生效的环境变量
线程级别的信息
/proc/[pid]/task/[tid]/stat,如果top 或 pidstat里选择显示进程信息,就会再把所有进程目录下的线程子目录一一打开,消耗会更大。
继续偷懒,直接看参考资料吧。
聪明的同学在性能测试时,一边盯着监控一边自己在想:
“如果有200毫秒的CPU瞬时高峰,会被抓住么?”
“我再加上这个监控项,或者我让采样间隔再密一点,会影响性能么”
dstat用地球人都看得懂的python来写,而且只有寥寥数行,很适合从它入手,了解所有top, vmstat,pidstat们的工作原理,回答上面的问题。
1. dstat简介
系统性能的监控工具,我首选dstat,用过的同学也都喜欢,因为:
dstat可以认为是vmstat,iostat等的合体,不像vmstat还缺个网络流量数据。
dstat有良好的对齐和单位转换,不像vmstat一堆数字看到脖子都歪了。
安装
一般yum install dstat, 或者从官网下载最新版解压即用。
使用
我最喜欢的指令是 "dstat -tamp"
t: 时间
a: 一个缩写合集,包括CPU(-c), 磁盘IO(-d),网络流量(-n), Swap page in/out(-g), 系统的中断和上下文切换(-y)
如果用bond0绑定了两块网卡,bond0与eth0+eth1会重复算,需要把值劈一半,或者用-N bond0 这样单拧出来。
如果想监控不同磁盘,可以-D sda,sdb,total
m: 内存
p: 进程数 (在运行的,被阻塞的,新增的)
2.实现原理
dstat的地球人都看得懂的代码在此:
https://github.com/dagwieers/dstat/blob/master/dstat#L602
CPU信息
阅读第一段,关于CPU的采集插件,哦,原来完全是靠读取 /proc/stat 文件的数据。
$ cat /proc/stat
cpu 179165222 1067 67744298 9464596822 89694 31726 17296810 0 0
cpu0 13417559 30 4926156 385849929 39813 5 245082 0 0
cpu1 5972603 19 2536549 395562123 2953 0 70426 0 0
…..
关于CPU的几列数字分别是user,nice,system,idle,iowait....等状态的cpu时间统计,值是从开机到现在的累计值,单位是1/100秒。
顺便再瞄一下,/proc目录下还有/proc/[pid]/stat,那是每个进程的CPU统计。
既然/proc/stat 文件长这样,那top啊,mpstat, pidstat啊,CPU信息估计也是这么读出来的没跑了,《性能之巅》里用strace追踪vmstat也证实了这点。
回答问题时间
现在,第一个问题可以回答了,dstat每秒读取一下这个CPU累计值,然后减去前一秒的累计值,就得到这一秒内的平均值——所以200毫秒内的CPU高峰是抓不到的,只有平均值。
第二个问题,这监控的消耗大么?
首先,/proc目录是个伪文件系统,数据其实是在内存之中,只是通过文件形式来暴露,让你可以通过cat命令,或open file这类系统调用来读取(这种风格是Unix的基因,详见《Unix编程的艺术》),读取这么一下内存的消耗很低。
而且,dstat是一开始就打开了/proc/stat文件,不会每秒钟都重复打开。当然,像top,pidstat, 或者dstat里比如top-*插件,就会每次打开每个活动进程的stat文件,那消耗会大些。
通过pidstat的监控,dstat自身的消耗也就是一个CPU核的1%,pidstat也是一个核的1%,top略大,所以有人说压测时不要开top。
有些聪明的同学可能闪电般又有第三个问题,那这个/proc/stat文件什么时候更新?一秒一次么?
因为/proc是个伪文件系统,本质是API接口,所以并不存在“更新”这个概念,每次读取该文件时,调用sysconf(_SC_CLK_TCK)来获取,返回内存中的metrics值(或者如果需要实时统计的就统计一下)
/proc目录
关于/proc目录,linux自己已经有详细文档:http://man7.org/linux/man-pages/man5/proc.5.html,《性能之巅》4.2章 观测来源里也有描述。
我够懒的话,写到这里已经可以停笔了,大家自己去读它就可以了。为了凑字数,继续吧。。。。
3. 多余的话
其他系统级别信息
新增/运行/堵塞进程数量 ,系统上下文切换,中断次数在/proc/stat,其中新增进程是靠累计进程数的差值得来。
磁盘信息,都在/proc/diskstats, 包括所有iostats用到的详细信息, 详见Documentation/iostatts.txt
内存信息,都在/proc/meminfo,还包括默认没显示的dirty page cached 大小等。
Swap page in/out 信息,在/proc/vmstat
网络流量信息, 在/proc/net/dev
tcp socket状态的统计,在/proc/net/tcp
系统负载的统计(类似uptime),在/proc/loadavg
进程级别信息
每个进程的信息,留意下面几个:
/proc/[pid]/stat 与status: TOP看的进程信息多在这里, status对人类友好些。
/proc/[pid]/cmdline: 完整的命令行参数
/proc/[pid]/environ: 完整的实际生效的环境变量
线程级别的信息
/proc/[pid]/task/[tid]/stat,如果top 或 pidstat里选择显示进程信息,就会再把所有进程目录下的线程子目录一一打开,消耗会更大。
继续偷懒,直接看参考资料吧。
发表评论
-
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3038微软提供了不少命令行 ... -
挂载文件系统选项nodiratime、noatime等集合小结
2018-06-02 19:56 2523Linux系统文件有三个主 ... -
Linux如何查看当前占用CPU或内存最多的K个进程
2018-05-20 11:01 3222内存 可以使用以下命令查使用内存最多的K个进程 方法1: p ... -
(转)使用frp实现内网穿透
2018-05-14 13:33 2431https://www.jianshu.com/p/e8e26 ... -
docker小结1
2018-05-11 14:26 4311 通过dockerfile建立一个简单的HELLO.C,然后 ... -
LINUX下EPOLL等不错的文章收藏
2018-04-25 09:35 5001 通俗讲解 异步,非阻塞和 IO 复用 https:/ ... -
Ubuntu中root用户和user用户的相互切换
2018-04-06 12:46 9821)从user用户切换到root用户 不管是用图形模式登录U ... -
ubuntu下Virtualbox虚拟Ubuntu共享文件夹设置
2018-04-06 11:41 9671. 安装增强功能包(Guest Additions) 安装 ... -
Web网站压力及性能测试
2017-10-09 19:59 648https://segmentfault.com/a/1190 ... -
工具推荐:Netdata,Linux性能实时监测工具
2017-07-14 09:10 1139工具推荐:Netdata,Linux性能实时监测工具 http ... -
一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知
2017-07-11 07:07 1607一个 Linux 下基于 Bash 的文件和数据库监控及备份工 ... -
收藏个不错的能发送日志等警告信息等到微信的工具
2017-06-11 10:12 1035发现个将比如报警日志呀之类的提醒信息,发送给微信的好的工具,不 ... -
收藏:nginx教程从入门到精通(ttlsa出品)
2017-02-09 22:53 682http://www.ttlsa.com/nginx/ngin ... -
linux下安装SZ,RZ命令
2016-02-26 20:59 1616在 linux 下,一般用secur crt等工具,今天居然 ... -
Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包
2014-11-14 09:12 1712Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包、延 ... -
ping+tracerout的unix下网络诊断小工具mtr
2014-07-29 22:04 1562今日才发现,原来linux中可以用ping和tracerout ... -
(转)Apache日志分割
2014-02-25 20:20 1558Apache和Ngix一样,对日志没有进行分割处理,这样很不方 ... -
linux下 cpu频率节能
2014-02-25 13:06 1395参考: http://linux-wiki.cn/wiki/z ... -
(转)最佳日志实践
2014-01-22 23:24 917http://www.bitstech.net/2014/01 ... -
(转)在linux系统中I/O 调度的选择
2013-12-12 09:17 6814I/O 调度算法再各个进程 ...
相关推荐
dstat-rpm安装包,安装 :rpm -ivh+包名 。 常用dstat命令:dstat -cdmn;dstat --output /home/100bf.csv --cdmn 3;等
dstat磁盘性能检测工具
dstat监控工具,可监控cpu,磁盘读写io,网盘io,简单易用
linux下的dstat 监控网卡流量磁盘吞吐
dstat工具Linux安装包
dstat-0.7.2-1.el6.rfx.noarch.rpm ,linux系统监控工具dstsat
全能系统监控工具dstat dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统...
3、Linux下很全面的监控工具dstat:dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据...
工具dstat,Red hat enterprise linux 5 Red hat enterprise linux 6 Red hat enterprise linux 7各版本均可使用,比top nmon等性能监测工具好用多了,非常方便并附使用手册
工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比
linux性能监控工具,已经测试很好用。
redhat5 下的 dstat rpm包
这个工具查看系统资源,比如cpu ,内存,磁盘,网络等使用情况,简单方便,使用命令一般是 dstat -cmdn
知识点1: Linux系统监控 相关命令:iostat/free/top/dstat/iotop 知识点2: Linux自化运维 实战项目: 使用Docker自动部署zabbix运维系统,实时监控服务器性能 第四阶段 Linux系统构建 第九讲 Linux系统构建 知识...
viz_dstat 在网页上可视化dstat结果。 可以选择启动dstat并实时监视结果。 #要求 也将用于javascript图表(已包括) ##可视化现有文件 $ dstat --time -v --net --output example.csv 1 10$ ./viz_dstat.sh example...
dstat-0.7.0-1.el6.noarch.rpm
Dstat插件的什么是Dstat? Dstat是vmstat,iostat,netstat和ifstat的多功能替代品。 如果您需要更多详细信息,请参见此处[ ]该插件使用Dstat,因此您需要在使用此插件之前安装Dstat。配置<source> @type dstat tag ...
Dstat在性能调整测试,基准测试或故障排除过程中非常方便用于监视系统。 Dstat允许您立即查看所有系统资源。 例如,您可以将磁盘使用情况与IDE控制器的中断进行比较,或者直接将网络带宽与磁盘吞吐量进行比较。 ...
本文四大名捕由linux命令所出演, 无情:ps 出演, 铁手:dstat 出演,追命:top 出演,冷血:htop 出演。