linux动态监控dstat&&glances&&psutil&&bottle
Posted sunshinekimi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
[[email protected] 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
[[email protected] 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: [email protected] 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
[[email protected] 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: [email protected] 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 <[email protected]> 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。
[[email protected] 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的主要内容,如果未能解决你的问题,请参考以下文章