linux动态监控dstat&&glances&&psutil&&bottle
安装dstat
yum install dstat 安装glances
yum install python-devel
pip install glances
如果我们安装了 Bottle 这个 web 框架,还能够通过 web 浏览器显示和命令行终端相同的监控界面。
安装bottle
pip install bottle
1.dstat 使用
man dstat
DSTAT(1)DSTAT(1) 名称
dstat - 用于生成系统资源统计信息的通用工具 概要
dstat [-afv] [options ..] [延迟[count]] 描述
Dstat是vmstat,iostat和ifstat的多功能替代品。 Dstat克服了一些限制并增加了一些额外的功能。 Dstat允许您立即查看所有系统资源,例如。比较磁盘使用情况和中断
您的IDE控制器,或直接将网络带宽数与磁盘吞吐量进行比较(在相同的时间间隔内)。 Dstat还巧妙地为您提供了列中最详细的信息,并清楚地表明了输出的大小和单位
显示。减少混乱,减少错误,提高效率。 Dstat在让您为一组接口聚合某个磁盘集或网络带宽的块设备吞吐量方面是独一无二的,
即。您可以看到构成单个文件系统或存储系统的所有块设备的吞吐量。 Dstat允许将其数据直接写入CSV文件,以便由OpenOffice,Gnumeric或Excel导入和使用以创建图形。 注意
Sleuthkit的用户可能会发现Sleuthkit将dstat重命名为datastat以避免名称冲突。有关更多信息,请参阅Debian bug#283709
信息。 OPTIONS
-c, - cpu
enable cpu stats(系统,用户,空闲,等待,硬件中断,软件中断) -C 0,3,总计
包括cpu0,cpu3和total(当使用-c / - cpu时) -d, - disk
启用磁盘统计信息(读取,写入) -D total,hda
包括total和hda(当使用-d / - disk时) -g, - page
启用页面统计信息(页面输入,页面输出) -i, - int
启用中断统计信息 -I 5,10
包括中断5和10(当使用-i / - int时) -l, - load
启用负载平均值统计(1分钟,5分钟,15分钟) -m, - mem
启用内存统计(使用,缓冲,缓存,免费) -n, - net
启用网络统计(接收,发送) -N eth1,总计
包括eth1和total(当使用-n / - net时) -p, - proc
启用流程统计(可运行,不可中断,新) -r,--io
启用I / O请求统计信息(读取,写入请求) -s, - swap
启用交换统计(使用,免费) -S swap1,总计
包括swap1和total(当使用-s / - swap时) -t, - time
启用时间/日期输出 -T, - och
启用时间计数器(自纪元以来的秒数) -y, - sys
启用系统统计信息(中断,上下文切换) --aio启用aio stats(异步I / O) --fs, - filesystem
启用文件系统统计信息(打开文件,inode) --ipc enable ipc stats(消息队列,信号量,共享内存) --lock enable file lock stats(posix,flock,read,write) --raw enable raw stats(原始套接字) - 插座
启用套接字统计信息(total,tcp,udp,raw,ip-fragments) --tcp enable tcp stats(listen,established,syn,time_wait,close) --udp enable udp stats(listen,active) --unix启用unix stats(数据报,流,监听,活动) --vm enable vm stats(硬页面故障,软页面故障,已分配,免费) --plugin名
通过插件名称启用(外部)插件,请参阅PLUGINS了解选项 可能的内部统计数据是
aio,cpu,cpu24,disk,disk24,disk24old,epoch,fs,int,int24,io,ipc,load,lock,mem,net,page,page24,proc,raw,socket,
swap,swapold,sys,tcp,time,udp,unix,vm --list列出内部和外部插件名称 -a, - all
equals -cdngy(默认) -f, - fulll
展开-C,-D,-I,-N和-S发现列表 -v, - vmstat
equals -pmgdsc -D total - 比特强制位以字节表示的值 - 浮动
在屏幕上强制浮动值(与--integer互斥) - 整数
在屏幕上强制整数值(与--float互斥) --bw, - blackwhite
改变白色背景终端的颜色 --nocolor
禁用颜色(暗示--noupdate) --noheaders
禁用重复标头 --noupdate
延迟> 1时禁用中间更新 - 输出文件
将CSV输出写入文件 - 轮廓
退出dstat时显示性能分析统计信息 PLUGINS
虽然任何人都可以创建他们自己的dstat插件(并贡献他们)dstat船上有许多插件已经扩展其
C
1、查看全部内存都有谁在占用
dstat -g -l -m -s --top-mem
[root@hostuser src]# dstat -g -l -m -s --top-mem
---paging-- ---load-avg--- ------memory-usage----- ----swap--- --most-expensive-
in out | 1m 5m 15m | used buff cach free| used free| memory process
67k 63k| 0 0.02 0.06|1624M 0 128M 67.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.7M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.7M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.5M| 836M 1212M|sidekiq 5.0. 305M
8192B 0 | 0 0.02 0.06|1625M 0 128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
40k 0 | 0 0.02 0.06|1625M 0 128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
4096B 0 | 0 0.02 0.06|1625M 0 128M 66.2M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
32k 0 | 0 0.02 0.06|1625M 0 128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1621M 0 128M 69.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1621M 0 128M 69.9M| 836M 1212M|sidekiq 5.0. 305M
8192B 0 | 0 0.02 0.06|1625M 0 128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
32k 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.8M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.7M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.06|1625M 0 128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.05|1625M 0 128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.05|1622M 0 128M 68.9M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.05|1622M 0 128M 69.2M| 836M 1212M|sidekiq 5.0. 305M
28k 0 | 0 0.02 0.05|1625M 0 128M 65.8M| 836M 1212M|sidekiq 5.0. 305M
0 0 | 0 0.02 0.05|1626M 0 128M 65.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 |0.08 0.04 0.06|1626M 0 128M 65.1M| 836M 1212M|sidekiq 5.0. 305M
0 0 |0.08 0.04 0.06|1626M 0 128M 65.3M| 836M 1212M|sidekiq 5.0. 305M
0 0 |0.08 0.04 0.06|1626M 0 128M 65.6M| 836M 1212M|sidekiq 5.0. 305M
0 0 |0.08 0.04 0.0
2、显示一些关于CPU资源损耗的数据:
dstat -c -y -l --proc-count --top-cpu
[root@hostuser src]# dstat -c -y -l --proc-count --top-cpu
----total-cpu-usage---- ---system-- ---load-avg--- proc -most-expensive-
usr sys idl wai hiq siq| int csw | 1m 5m 15m |tota| cpu process
0 1 99 0 0 0| 676 717 |0.06 0.04 0.06| 291|sidekiq 5.0.40.3
0 0 100 0 0 0| 386 434 |0.06 0.04 0.06| 291|sidekiq 5.0.40.2
0 1 99 0 0 0| 529 642 |0.06 0.04 0.06| 291|unicorn worke0.2
0 0 99 0 0 0| 337 431 |0.06 0.04 0.06| 291|sidekiq 5.0.40.1
1 1 99 0 0 0| 443 561 |0.06 0.04 0.06| 291|sidekiq 5.0.41.2
0 0 100 0 0 0| 401 458 |0.06 0.04 0.06| 291|kworker/5:2 0.1
0 0 99 0 0 0| 442 561 |0.06 0.04 0.06| 291|sidekiq 5.0.40.4
1 0 99 0 0 0| 421 475 |0.06 0.04 0.06| 291|unicorn maste0.1
0 0 99 0 0 0| 374 498 |0.05 0.04 0.06| 292|sidekiq 5.0.40.1
1 2 97 0 0 0|1096 1265 |0.05 0.04 0.06| 289|gitlab-mon 1.1
0 0 99 0 0 0| 430 576 |0.05 0.04 0.06| 289|sidekiq 5.0.40.1
2 1 97 0 0 0|1096 1240 |0.05 0.04 0.06| 292|gitlab-mon 0.6
1 0 99 0 0 0| 654 693 |0.05 0.04 0.06| 292|redis_exporte0.2
1 1 98 0 0 0| 830 898 |0.05 0.04 0.06| 293|prometheus 0.5
1 1 98 0 0 0| 717 631 |0.05 0.04 0.06| 292|sidekiq 5.0.40.4
1 1 99 0 0 0| 490 535 |0.05 0.04 0.06| 292|sshd: root@pt0.6
0 0 100 0 0 0| 388 535 |0.05 0.04 0.06| 292|sidekiq 5.0.40.2
0 0 99 0 0 0| 443 520 |0.05 0.04 0.06| 292|unicorn worke0.4
0 0 99 0 0 0| 425 546 |0.05 0.04 0.06| 292|sidekiq 5.0.40.4
3、查看当前占用I/O、CPU、内存等最高的进程信息
dstat --top-mem --top-io --top-cpu
[root@hostuser src]# dstat --top-mem --top-io --top-cpu
--most-expensive- ----most-expensive---- -most-expensive-
memory process | i/o process | cpu process
sidekiq 5.0. 305M|systemd 144k 31k|sidekiq 5.0.40.3
sidekiq 5.0. 305M|redis-serve 24k 65B|unicorn worke0.4
sidekiq 5.0. 305M|redis-serve 28k 73B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve 26k 221B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve 27k 65B|prometheus 0.4
sidekiq 5.0. 305M|redis-serve 22k 50B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve 31k 75B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve 22k 50B|xfsaild/dm-0 0.2
sidekiq 5.0. 305M|gitaly 390k 6B|gitlab-mon 1.0
sidekiq 5.0. 305M|postgres: g 31k 0 |watchdog/6 0.5
sidekiq 5.0. 305M|postgres 421k 0 |gitlab-mon 0.4
sidekiq 5.0. 305M|prometheus 26k 6583B|node_exporter0.8
sidekiq 5.0. 305M|gitlab-mon 1060k 1554B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|unicorn mas 44k 0 |sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve 29k 70B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve 24k 55B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve 28k 75B|unicorn worke0.2
sidekiq 5.0. 305M|redis-serve 23k 55B|sshd: root@pt0.1
sidekiq 5.0. 305M|redis-serve 31k 8517B|sidekiq 5.0.40.9
sidekiq 5.0. 305M|redis-serve 26k 60B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve 26k 60B|sidekiq 5.0.40.1
sidekiq 5.0. 305M|redis-serve 26k 60B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve 24k 63B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|gitaly 390k 6B|gitlab-mon 0.9
4、将结果输出到CSV文件
dstat --output ./dstat_output.csv
Dstat 0.7.2 CSV output
Author: Dag Wieers <dag@wieers.com> URL: http://dag.wieers.com/home-made/dstat/
Host: hostuser User: root
Cmdline: dstat --output ./dstat_output.csv Date: 19 May 2019 00:01:32 CST total cpu usage dsk/total net/total paging system
usr sys idl wai hiq siq read writ recv send in out int csw
0.312 0.717 98.48 0.443 0 0.048 817221.645 203607.757 0 0 73861.799 71079.351 680.597 718.495
0 0.375 99.625 0 0 0 0 20480 60 194 0 0 421 566
0.629 0.126 99.245 0 0 0 0 0 60 122 0 0 307 364
0 0.251 99.749 0 0 0 0 0 60 114 0 0 337 488
0.126 0.252 99.623 0 0 0 98304 0 60 106 98304 0 362 436
0.125 0.251 99.624 0 0 0 0 0 60 114 0 0 372 504
0 0.251 99.749 0 0 0 0 0 60 98 0 0 300 398
0.126 0.378 99.496 0 0 0 49152 13312 252 286 32768 0 427 560
0 0.251 99.749 0 0 0 0 0 182 190 0 0 289 368
0 0.252 99.748 0 0 0 0 0 120 106 0 0 395 522
0 0.25 99.625 0 0 0.125 0 0 120 106 0 0 285 381
0.508 1.396 98.096 0 0 0 0 0 60 98 0 0 1025 1322
0.126 0.379 99.369 0 0 0.126 147456 0 60 106 0 0 525 637
0.504 1.008 98.489 0 0 0 0 0 60 114 0 0 739 816
二、交互性监控工具glances
glances可以在用户终端上实时显示重要的系统信息,并动态刷新内容。glances每隔3秒钟对其进行刷新,我们也可以使用命令行参数修改刷新的频率。与dstat相同的是,glances可以将捕获到的数据保存到文件中;而不同的是glances提供了API接口以便应用程序从glances中获取数据
glances 提供的系统信息
1 CPU使用率;
2 内存使用情况;
3 内核统计信息和运行队列信息;
4 磁盘I/O速度、传输和读/写比率;
5 文件系统中的可用空间;
6 磁盘适配器;
7 网络I/O速度、传输和读/写比率;
8 页面空间和页面速度;
9 消耗资源最多的进程;
10 计算机信息和系统资源。
glances的使用非常简单,直接输入glances命令便进入了一个类似于top命令的交互式界面。在这个界面中,显示了比top更加全面,更加具有可读性的信息。 为了增加可读性,glances会以不同的颜色表示不同的状态。其中,绿色表示性能良好,元须做任何额外工作;蓝色表示系统性能有一些小问题,用户应当开始关注系统性能;紫色表示性能报警,应当采取措施;红色表示性能问题严重,应当立即处理。
glances是一个交互式的工具.因此,我们也可以输入命令来控制glances的行为。
如果我们安装了 Bottle 这个 web 框架,还能够通过 web 浏览器显示和命令行终端相同的监控界面。
glances还支持将采集的数据导人到其他服务中心,包括InfluxDB,Cassandra,CouchDB,OpenTSDB,Prometheus,StatsD,ElasticSearch,RabbitMQ/ActiveMQ,ZeroMQ,Kafka和Riemann。
[root@hostuser src]# glances -w
Glances Web User Interface started on http://0.0.0.0:61208/
开放61208端口
firewall-cmd --zone=public --add-port=61208/tcp --permanent
重启防火墙
firewall-cmd --reload
执行ifconfig 获取本机ipv4,然后http://ip:61208/
页面会动态刷新监控数据
linux动态监控dstat&&glances&&psutil&&bottle的更多相关文章
- Linux系统监控实用工具Glances
Linux系统监控实用工具Glances Glances安装 Glances安装要求:python >= 2.6 和 psutil >= 0.4.1 1.第一步,安装了python-> ...
- python进行linux系统监控
python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- [转载]你需要知道的 16 个 Linux 服务器监控命令
转载自: 你需要知道的 16 个 Linux 服务器监控命令 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员. 有些 ...
- zabbix实现对磁盘动态监控
zabbix实现对磁盘动态监控 前言 zabbix一直是小规模互联网公司服务器性能监控首选,首先是免费,其次,有专门的公司和社区开发维护,使其稳定性和功能都在不断地增强和完善.zabbix拥有详细的U ...
- Linux动态频率调节系统CPUFreq之二:核心(core)架构与API
上一节中,我们大致地讲解了一下CPUFreq在用户空间的sysfs接口和它的几个重要的数据结构,同时也提到,CPUFreq子系统把一些公共的代码逻辑组织在一起,构成了CPUFreq的核心部分,这些公共 ...
- Linux开源监控平台归总
Linux开源监控平台归总 Cacti 偏向于基础监控.成图非常漂亮,需要php环境支持,并且需要mysql作为数据存储 Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪并几乎可以绘制出任何 ...
- linux上监控tomcat down掉后自动重启tomcat
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- [转]linux 系统监控、诊断工具之 IO wait
1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...
随机推荐
- GitHub网页版基本操作
创建存储库 登录GitHub进入主页,点击头像左边的加号,创建存储库 填写存储库名称.描述,根据需求设置其他选项.点击“Create repository”按钮 创建分支 打开之前创建好的存储库,点击 ...
- 把jar包部署为linux服务
一直未配置成功,直到放弃后reboot了下,才直到错的不是自己的配置,而是自己不懂 1.在touch /etc/rc.d/init.d/tl_c_cons_service(创建新文件) 2.vi /e ...
- AcWing 847. 图中点的层次
队列 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm ...
- SpringMVC--使用hibernate validator数据校验
JSR 303 Spring3开始支持JSR 303 验证框架,JSR303是Java为Bean数据合法性校验所提供的标准框架.JSR 303 支持XML和注解风格的验证,通过在Bean属性上标注类似 ...
- 分享链接在QQ内总是被多人举报怎么办,域名防红的方案
背景 相信大家经常会遇到一个头疼的问题就是,自己的推广链接会因多人投诉举报导致链接在QQ内转发分享会被QQ管家拦截,用户无法打开访问的问题. 那么当大家遇到这个问题的时候应该怎么办呢?不用急,下面分享 ...
- Java switch的用法
控制流程语句之→switch选择判断语句 注意事项: 1.多个case后面的值不能重复: 2.switch后面小括号当中只能是下列数据类型: 基本数据类型:byte.short.char.int 引 ...
- 用Python给头像加上圣诞帽或圣诞老人小徽章
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章: https://zhuanlan.zh ...
- python应用-使用python控制win2003服务器
经调研和测试,服务端可通过ansible控制各linux服务器(容器),进行各类操作,且支持远程控制windows服务器,但windows操作系统中,需安装.net及powershell3.0及以上版 ...
- HGAME 2020 misc
week1 每日推荐 拿到Wireshark capture file后,按常规思路,用foremost命令拿到一个加密的压缩包,之后文件->导出对象->http,看到最大的一个文件里面最 ...
- cmake使用的一些补充
一般使用cmake生成vs项目的时候,要么生成32位的要么生成64位的. 怎样将32位和64位在一个工程中打开呢,联系我们自己建立的工程都是32位和64位在一起的,就动手开始了. 实验对象是openc ...