dstat可以在一个界面上展示非常全面的监控信息,因此,在系统监控、基准测试和故障排除等应用场景下特别有用。我们可以使用dstat监控所有系统资源的使用情况,并且可以结合不同的场景定制监控的资源。例如,在同一时间段以相同的时间频率比较网络带宽与磁盘的吞吐率。dstat将以列表的形式显示监控信息,并且用不同的颜色进行输出,以可读性较强的单位展示监控数值。例如对于字节数值,dstat自动根据数值的大小,以K、M、G等单位进行显示,避免了开发者使用其他命令时因为数值太大造成的困惑和错误。此外,使用dstat还可以非常方便地编写插件用来收集默认情况下没有收集的监控信息。dstat是专门为人们实时查看监控信息设计的,因此,默认将监控结果输出到屏幕终端。我们也可以将监控信息以csv格式输出到文件中,以便后续进行处理。

如果操作系统没有默认安装dstat,那么,需要我们手动进行安装。

sudo apt-get install dstat

dstat命令的--version选项,除了显示出dstat的版本以外,还会显示操作系统的版本、Python语言的版本、cpu的个数,以及dstat支持的插件列表等详细信息。

直接在终端输入dstat命令,dstat将以默认参数运行。默认情况下dstat会收集cpu、磁盘、网络、换页和系统信息,并以一秒钟一次的频率进行输出,直到我们按ctrl+c结束。如果没有添加任何参数,则默认使用-cdngy参数运行。

#yyds干货盘点#python使用技巧之资源统计_资源


-c:显示cpu的使用情况。这些列显示了cpu时间花费在各类操作的百分比,包括执行用户代码(usr)、执行系统代码(sys)、空闲(idl)和等待IO(wai)。如果usr的值比较高,说明当前系统中cpu负载较大;如果wai长期处于比较大的值,说明系统IO等待比较严重;

-d:显示磁盘的读写情况,在进行性能测试时可以使用该字段观察当前的磁盘负载;

-n:网络设备发送和接收的数据,这一栏显示网络收发数据的总数;  

-g:表示换页活动。大多数情况下你都希望看到in(换人)和out(换出)的值是0。如果不为0,则说明当前系统内存不够用,会严重影响应用程序的性能;

-y:系统统计。这一项显示的是中断(int)和上下文切换(csw)。

还有一些其他的参数

-t:显示统计系统的当前时间;  

-l:统计系统负载情况,包括l分钟、5分钟、15分钟平均值;  

-p:统计进程信息,包括runnable,blocked和new的进程数量;

--tcp:显示常用的TCP统计;  

--fs:统计文件打开数和inodes数。

#yyds干货盘点#python使用技巧之资源统计_资源_02

除了前面介绍的与监控项相关的参数以外,dstat还可以像vmstat和iostat一样使用参数控制报告的时间间隔,或者同时指定时间间隔与报告次数。如下面的命令表示以默认的选项运行dstat,每两秒钟输出一条监控信息,并在输出10条监控信息以后退出dstat。

$ dstat 2 10  

dstat的强大之处不仅仅是因为它聚合了多种工具的监控结果,还因为它能通过附带的插件实现一些高级功能,如找出占用资源最高的进程和用户。

如查看当前占用I/O、cpu、内存等最高的进程信息可以使用--top-mem --top-io --top-cpu选项。

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

dstat还可以将监控信息保存到csv文件中,以便后续进行处理。通过--output选项指定监控数据输出的文件。

dstat --output out.csv

glances是一款使用Python语言开发、基于psutil的跨平台系统监控工具。在所有的Linux命令行工具中,它与top命令最相似,都是命令行交互式监控工具。但是glances实现了比top命令更齐全的监控,提供了更加丰富的功能。

glances可以在用户终端上实时显示重要的系统信息,并动态刷新内容。glances每隔3秒钟对其进行刷新,我们也可以使用命令行参数修改刷新的频率。与dstat相同的是,glances可以将捕获到的数据保存到文件中;而不同的是glances提供了API接口以便应用程序从glances中获取数据。

在Linux系统中,可以使用apt-get命令或者pip命令安装glances

sudo apt-get install glances

glances的使用非常简单,直接输入glances命令便进入了一个类似于top命令的交互式界面。

#yyds干货盘点#python使用技巧之资源统计_top命令_03

为了增加可读性,glances会以不同的颜色表示不同的状态。其中,绿色表示性能良好,元须做任何额外工作;蓝色表示系统性能有一些小问题,用户应当开始关注系统性能;紫色表示性能报警,应当采取措施;红色表示性能问题严重,应当立即处理。

glances是一个交互式的工具.因此,我们也可以输入命令来控制glances的行为。glances中常见的命令有:

h:显示帮助信息;

q:离开程序退出;

c:按照CPU实时负载对系统进程排序;

m:按照内存使用状况对系统进程排序;

i:按照I/O使用状况对系统进程排序;

p:按照进程名称排序;

d:显示或隐藏磁盘读写状况;

f:显示或隐藏文件系统信息;

1:分开显示每个CPU的使用情况。