Linux系统实时监控
命令
- top
Top命令用于实时显示process的动态。参数如下:
d:设置显示的更新速度
q:无延迟的显示速度
c:切换显示模式,一共有两种显示模式,一是只显示执行档,另一种是显示完成的路径和名称
S:累积模式,会将已完成或者消失的子进程的cpu time累积起来
s:安全模式,将交谈式的命令取消,避免潜在的危险
i:不显示任何闲置或者无用的进程
n:更新的次数,完成后会推出top
b:批次档模式,搭配“n”使用,可以用来将top结果输出到档案内
p:显示指定的进程信息
- htop
下载源码包:https://hisham.hm/htop/releases/
htop是Linux系统中一个互动的进程查看器(需要ncurese),和传统top命令相比,htop可交互式操作,支持颜色主题,可横向或者纵向滚动进程列表,还可以支持鼠标操作
常用参数
c:只使用一种颜色 d:设置刷新时间间隔,单位秒
h:显示帮助信息 u:显示某个指定用户的进程
p:显示某个指定PIDs的进程 s:按照某列进行排序
v:显示版本信息
交互式命令
u:显示某个指定用户的进程 M:按照内存使用排序
P:按照CPU使用排序 T:按照TIME+使用排序
F:跟踪进程 K:显示/隐藏内核进程
H:显示/隐藏用户进程
下图显示内容为:
PID:进程号 USER:进程所属用户
PRI:优先级 NI:优先级别值,默认0,可调整
VIRT:占用的虚拟内存 RES:占用的物理内存
SHR:占用的共享内存 S:进程状态(R:运行中;S:休眠可唤醒;Z:僵死)
CPU%:CPU使用率 MEM%:进程占用的物理内存和总内存的百分比
TIME+:进程启动后占用的总的CPU时间 Command:启动进程的命令
F1:显示帮助信息 F2:HTOP设置
F3:搜索进程 F4:过滤器,关键字索引,不区分大小写,可以通过ESC清除
F5:显示树形结构 F6:以指定目标条件显示
F7:调高优先级 F8:调低优先级
F9:杀进程 F10:退出
- atop
下载源码包:https://www.atoptool.nl/downloadatop.php
atop同样属于是交互式监视器,用于查看Linux系统负载情况,它显示占用系统级别上最关键的硬件资源,即CPU、内存、硬盘、网络。
对于系统级别的资源消耗,会使用不同颜色来进行标记,临界占用百分比意味着当前负载可能会导致明显的负面性能。临界百分比取决于不同的资源类型,比如CPU(90%)、磁盘(70%)、网络(90%)、内存(90%)、SWAP(80%);当资源占用超过临界值时会被显示为红色,当资源占用接近/等于临界值时会被显示为青色。这些默认值可以在配置文件中进行修改,也可以使用“x”禁止着色
常用交互式命令
g:显示通用输出(默认) m:显示内存相关的输出
d:显示磁盘相关的输出 n:显示网络相关的输出
c:显示进程的命令行 u:显示每个用户的累计进程活动
p:显示每个程序累计的进程活动 C:按照CPU消耗顺序排序(最后一列显示为CPU)
M:按照内存消耗顺序排序(最后一列显示为MEM) D:按照磁盘访问顺序排序(最后一列显示为DSK)
N:按照接受/传输数据包的顺序排序(最后一列显示为NET) A:按照最繁忙的系统资源排序(最后一列显示为ACPU)
其他交互式命令
x:禁止以颜色突出显示关键资源
z:冻结当前屏幕显示内容
i:修改刷新时间间隔(默认10秒),间隔为0时关闭计时器,停止刷新
t:关闭计时器时,手动刷新进程列表
监控服务
处理查看当前系统状态以外,atop支持以服务方式运行在后台并记录系统状态
systemctl start atop
systemctl stop atop
以服务方式运行时,默认数据保存在/var/log/atop目录,每间隔10分钟采集一次,保留最近28天的数据。(配置可在/etc/atop/atop.daili文件中修改)
atop -r {filename}
读取数据时,“t”向前翻页,“T”向后翻页,“b”跳转至指定时间
- iotop
iotop是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。
安装iotop的前提条件
1、内核版本高于2.6.20(包含2.6.20)
2、python2.7或者更高版本
常用参数
version:显示软件版本 h:显示帮助信息
o:显示正在产生io的进程或者线程 b:非交互模式时,记录日志
n:非交互模式时,设置记录次数,默认无限 d:刷新间隔时间,支持非整数
p:显示指定PID进程 P:显示进程,不显示线程
u:显示指定用户进程 a:显示进程io总数
k:使用kb单位 t:非交互模式时,设置运行时间
q:只在第一次检测时显示列名,最多可用三次(-q:只在最初显示1次头部,-qq:不显示头部,-qqq:总结不显示)
交互式命令
r:反向排序 o:同上述参数“o”
p:显示实时io a:同上述参数“a”
i:改变线程的优先级 q:退出
- iostat
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析
常用参数
d:显示磁盘信息
rrqm/s:每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s:每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz: 平均等待处理的IO请求队列长度
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm: 平均每次IO请求的处理时间(毫秒为单位)
%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,即一秒中有百分之多少的时间用于 I/O
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷
idle小于70% IO压力就较大了,一般读取速度有较多的wait。
c:显示CPU信息
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于cpu核数,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
m:以M(兆)为单位显示
t:显示tty和cpu信息
x:显示详细信息
- iptstate
iptstate命令和top指令风格类似,显示Linux内核中iptables的工作状态
常见参数
b:指定输出信息的排序规则 d:不动态的改变窗口大小
f:过滤本地回送消息 l:将IP地址解析为域名
L:隐藏DNS查询相关状态 r:指定刷新频率
R:反序排列 s:单次运行模式
t:显示汇总信息
- mtr
下载源码包:https://www.bitwizard.nl/mtr/files/
mtr是一种网络诊断工具,结合“跟踪路由”和“ping”的功能在单个网络诊断工具中。当mtr启动时,即时监控主机之间的网络链接,确认每个网络节点的地址后,向每个请求发送“ICMP ECHO”请求,用来确定每个链接的质量,同时打印有关每台设备的统计信息
hostname:主机ip和域名 loss:节点丢包率
last:最近一次延迟 avg:延迟平均值
best:延迟最小值 worst:延迟最大值
stdev:标准偏差,值越大节点越不稳
snt:已发送数据包数,默认为10,可以通过参数“-c”调整
- sar
sar命令 是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
常见参数
-A:显示所有的报告信息 -b:显示I/O速率
-B:显示换页状态 -c:显示进程创建活动
-d:显示每个块设备的状态 -e:设置显示报告的结束时间
-f:从指定文件提取报告 -i:设状态信息刷新的间隔时间
-P:报告每个CPU的状态 -R:显示内存状态
-u:显示CPU利用率 -v:显示索引节点,文件和其他内核表的状态
-w:显示交换分区状态 -x:显示给定进程的状态。
-n:显示网络设备状态
sar [ options ] [ <interval> [ <count> ] ]
options:上述参数
interval:刷新时间
count:刷新次数
- watch
watch命令 以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你实时监测一个命令的运行结果,省得一遍遍的手动查询
常用参数
-n:默认2秒刷新一次,可以使用“-n”指定刷新频率
-d:可以将监测结果中变化的部分高亮显示
-t:关闭默认在顶端显示的时间显示
-h:显示help信息
工具
- nmon
- Gnome系统监视器
笔记整理过程中感谢以下链接给予参考,如有侵犯产权,请及时联系删除,谢谢!
https://www.cnblogs.com/zangfans/p/8595000.html
https://linux.die.net/man/1/atop
https://www.cnblogs.com/Finley/p/12327804.html
https://www.cnblogs.com/kerrycode/p/11344506.html
https://www.cnblogs.com/ftl1012/p/iostat.html