原文链接:https://mp.weixin.qq.com/s/TvfzIy4uXHPOFQ1h5Q4KWg
续上篇分享的【性能测试工具】,今天整理了常用的系统监控工具,当然有特殊业务情况也可以自己自研系统监控工具,没有编程能力的小伙伴们就多利用好简单的工具也可以达到很好的效率,不过linux中本来就自带了很多进程查看管理工具,诸如:ps ,top,vmstat除了这些之外还有很多提供类似功能的工具程序,本节分享的这三款瑞士军刀,我认为还算方便的工具htop/glances/dstat。
小巧工具【1】
htop是Linux系统中的一个互动的进程查看器,与Linux传统的top比较的话,htop更人性化并且还支持鼠标操作!但是htop提供的功能却是top望尘莫及。
说明:
从上面的截图中可以看到,htop命令输出总共分成了五个展示区:
(1)CPU状态区域
(2)整体状态区域
(3)内存状态区域
(4)进程状态区域
(5)管理控制区域
管理控制台:
F1: 查看htop说明
F2: htop设定:提供了许多自定义选项
F3: 搜索进程,提供了易用的方式来搜索进程
F4: 进程过滤器
F5: 显示属性结构,提供了进程的树状视图查看功能
F6: 折叠或展开(新版本里的),或选择排序方式(旧版本里的)
F7: 减少nice值,提高进程优先级
F8: 增加nice值,降低进程优先级
F9: 可对进程传递信号:让你很容易地在 htop 窗口内给一个进程发送任意的信号
F10: 退出
另:通过空格键来设置颜色标注进程条目:要标注某个进程条目,需要做的就是选中此条目,然后按下‘空格’键,所以通过此方法,你就能很轻松地追踪想查看的进程。
命令行选项:
除了上面介绍的一些热键,htop 还提供了很有用的命令行选项。下面是其中一部分:
-s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
-u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
-d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。
这就是htop,一款人性化的类top工具,超赞赞!!!更多使用帮助,请自行man htop查阅。
小巧工具【2】
Linux中比Top颜值更高的系统监控工具Glances,由 Python 编写跨平台命令行系统监视工具。
(1)囊括系统监控对象广:能够对:CPU,内存,磁盘I/O,网卡网络流量,系统负载,文件系统等提供监控。
(2)监控界面中显示对象可自定义,可对监控对象显示值自定义。
(3)对现实终端屏幕没有特殊要求。
(4)支持C/S工作模式,1V1监控远程主机数据。
(5)可将监控数据输出至文件,且可自定义文件的格式为html或者cvs。
Glances 会用以下几种颜色来代表状态:
绿色:OK(一切正常)
蓝色:CAREFUL(需要注意)
紫色:WARNING(警告)
红色:CRITICAL(严重)
Glances 选项:
a – 对进程自动排序
c – 按 CPU 百分比对进程排序
m – 按内存百分比对进程排序
p – 按进程名字母顺序对进程排序
i – 按读写频率(I/O)对进程排序
d – 显示/隐藏磁盘 I/O 统计信息
f – 显示/隐藏文件系统统计信息
n – 显示/隐藏网络接口统计信息
s – 显示/隐藏传感器统计信息
y – 显示/隐藏硬盘温度统计信息
l – 显示/隐藏日志(log)
b – 切换网络 I/O 单位(Bytes/bits)
w – 删除警告日志
x – 删除警告和严重日志
1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况
h – 显示/隐藏这个帮助画面
t – 以组合形式浏览网络 I/O
u – 以累计形式浏览网络 I/O
q – 退出(‘ESC‘ 和 ‘Ctrl+C‘ 也可以)
远程使用 Glances:
命令启动:glances -s
Define the password for the Glances server
Password:
Password (confirm):
Glances server is running on 0.0.0.0:61209
当 Glances 服务器启动后,到本地执行下面的命令来指定服务器IP地址或主机名的链接:
glances -c -P Glances服务器的IP地址
下面是一些在使用服务器/客户端模式时需知道的点:
在服务器模式,你可以通过 -B 地址 来设置绑定地址,也可以通过 -p 端口 来绑定监听的 TCP 端口
在客户端模式,你可以通过同样的 -p 端口 来指定服务器端口
默认的绑定地址是 0.0.0.0,但这么做会监听所有网络接口的指定端口
在服务器/客户端模式下,限制的阀值将由服务器的设置决定
你也可以在命令行下用过 -P 密码 的方式来为服务器端设置一个密码
glances 的高级应用:
glances 的结果输出方法
1.输出 HTML 格式文件,首先安装相关软件包
#pip-Python install Jinja2
#glances -o HTML -f /var/www/html
下面可以使用浏览器输入网址: http://localhost/glances.html
2.输出 csv 格式
该文件采用逗号分隔值(CSV)的格式,并且可以将其直接导入到电子表格中。
#glances -o CSV -f /home/cjh/glances.csv
下面使用 libreoffice 的 calc 工具打开 csv 格式文件
#libreoffice --calc %U /tmp/glances.csv
这就是glances,又是一款比top好用的工具,超赞赞!!!更多使用帮助,请自行man glances查阅。
小巧工具【3】
最后出场的是dstat了,它是款强大的命令行系统数据收集展示工具,是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。既可以在同一个界面中显示cpu,内存,磁盘,网卡数据这些对象的信息,也可通过不同的参数,一次展示某个对象的信息,还可找出占用对象最多的进程。
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
-d:显示磁盘读写数据大小。
-D hda,total:include hda and total。
-n:显示网络状态。
-N eth1,total:有多块网卡时,指定要显示的网卡。
-l:显示系统负载情况。
-m:显示内存使用情况。
-g:显示页面使用情况。
-p:显示进程状态。
-s:显示交换分区使用情况。
-S:类似D/N。
-r:I/O请求情况。
-y:系统状态。
–ipc:显示ipc消息队列,信号等信息。
–socket:用来显示tcp udp端口状态。
-a:此为默认选项,等同于-cdngy。
-v:等同于 -pmgdsc -D total。
–output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。
dstat --list可以查看dstat能使用的所有参数
语法:
dstat [-afv] [options…] [delay [count]]
直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5是没5s显示一条,dstat 5 10表示没5s显示一条,一共显示10条。
实例:
如想监控swap,process,sockets,filesystem并显示监控的时间:
dstat -tsp --socket --fs
----system---- ----swap--- ---procs--- ------sockets------ --filesystem-
date/time | used free|run blk new|tot tcp udp raw frg|files inodes
26-07 09:23:48| 0 0 | 0 0 0.0|104 8 5 0 0| 704 6488
26-07 09:23:49| 0 0 | 0 0 0|104 8 5 0 0| 704 6488
26-07 09:23:50| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
26-07 09:23:51| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
26-07 09:23:52| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
26-07 09:23:53| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
若要将结果输出到文件可以加–output filename:
dstat -tsp --socket --fs --output /tmp/ds.csv
----system---- ----swap--- ---procs--- ------sockets------ --filesystem-
date/time | used free|run blk new|tot tcp udp raw frg|files inodes
26-07 09:25:31| 0 0 | 0 0 0.0|104 8 5 0 0| 736 6493
26-07 09:25:32| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
26-07 09:25:33| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
26-07 09:25:34| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
26-07 09:25:35| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
26-07 09:25:36| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
这样生成的csv文件可以用excel打开,然后生成图表。
这就是datat,也是超赞赞!!!
Bye-bye 下期见!!
快来关注公众号【自动化测试交流圈】吧,下期内容更精彩哦!!
或直接加入微信【微信圈子】:入口->搜一搜->圈子:搜索【自动化测试交流圈】