系统监控工具 Atop

GPL
C/C++ 查看源码»
Linux
2010-01-26
红薯

atop 是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。

atop使用方法

在安装atop之后,我们在命令行下敲入”atop"命令即可看到系统当前的运行情况:

atop默认视图

 

系统资源监控字段含义

上图中列出了不少字段以及数值,各字段的含义是什么?我们应该怎么看?以上每个字段的含义都是相对采样周期而言的,下面我们先来关注上图显示的上半部分。

ATOP列:该列显示了主机名、信息采样日期和时间点

PRC列:该列显示进程整体运行情况

  1. sys、usr字段分别指示进程在内核态和用户态的运行时间

  2. #proc字段指示进程总数

  3. #zombie字段指示僵死进程的数量

  4. #exit字段指示atop采样周期期间退出的进程数量

CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)

  1. sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例

  2. irq字段指示CPU被用于处理中断的时间比例

  3. idle字段指示CPU处在完全空闲状态的时间比例

  4. wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。

cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%

CPL列:该列显示CPU负载情况

  1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量

  2. csw字段指示上下文交换次数

  3. intr字段指示中断发生次数

MEM列:该列指示内存的使用情况

  1. tot字段指示物理内存总量

  2. free字段指示空闲内存的大小

  3. cache字段指示用于页缓存的内存大小

  4. buff字段指示用于文件缓存的内存大小

  5. slab字段指示系统内核占用的内存大小

SWP列:该列指示交换空间的使用情况

  1. tot字段指示交换区总量

  2. free字段指示空闲交换空间大小

PAG列:该列指示虚拟内存分页情况

swin、swout字段:换入和换出内存页数

DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息

  1. sda字段:磁盘设备标识

  2. busy字段:磁盘忙时比例

  3. read、write字段:读、写请求数量

NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息

  1. XXXi  字段指示各层或活动网口收包数目

  2. XXXo 字段指示各层或活动网口发包数目

 

进程视图

为了更全面地展示进程信息,atop提供了多种进程视图。

 

默认视图(Generic information)

进入atop信息界面,我们看到的就是进程信息的默认视图(上图下半部分),按g键可以从其他视图跳到默认视图。

atop默认视图

从上图中,我们可以看到PID为3061的find进程在退出前在内核模式下占用了3.43秒CPU时间,在用户模式下占用了0.96秒CPU时间,共使用CPU时间为4.39秒,相对10分钟采样周期,CPU时间占用比例为1%,ST列表示进程状态,N表示该进程是前一个采样周期新生成的进程,E表示该进程已退出,EXC列指示进程的退出码。从进程名在“<>”符号中,我们亦可知该进程已退出。

 

内存视图(Memory consumption)

内存视图展示了进程使用内存情况,按m键可进入内存视图。

atop内存视图

上图下半部分展示了每个进程占用的虚拟内存空间(VSIZE)、内存空间(RSIZE)大小,以及在上一个采样周期中虚拟内存和物理内存增长大小(VGROW、RGROW),MEM列指示进程所占物理内存大小。

从上图的PAG列的信息,我们可以知道此时系统内存负载较高,出现页换出情况,从进程视图中VGROW和RGROW列可看出VirtualBox进程占用内存量大量增长,部分进程占用的内存减少(VGROW或RGROW字段为负值),为VirtualBox进程腾出空间。

 

命令视图(Command line)

按c键我们可以进入命令视图,该视图展示了与每个进程相对应的命令。

atop命令视图

有时我们某位“马大哈”同事执行了某个脚本或命令,使得系统资源占用率异常飙高,这时,我们可以很容易地通过atop的命令视图找到导致异常的命令。

atop日志

每个时间点采样页面组合起来就形成了一个atop日志文件,我们可以使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?

对于atop日志文件的保存方式,我们可以这样:

  1. 每天保存一个atop日志文件,该日志文件记录当天信息

  2. 日志文件以"atop_YYYYMMDD"的方式命名

  3. 设定日志失效期限,自动删除一段时间前的日志文件

其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本可以在源码目录下找到。在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):

(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&

 最后,我们修改cron文件,每天凌晨执行atop.daily脚本:

0 0 * * * root /etc/cron.daily/atop.daily

介绍内容来自 bangerlee

的码云指数为
超过 的项目
加载中

评论(1)

JunWu
JunWu
good

atop 1.27-3 发布,Linux 系统监控工具

Atop 是一个基于 ASCII 的全屏的性能监控工具,可用来监控进程的活动时间,高亮显示出一些过载的进程,还包括其他的一些系统指标例如:CPU、内存、交换分区、磁盘和网络等信息。 atop 1.27-...

2012/07/26 09:17

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

性能监控工具atop

http://www.atoptool.nl/ atop atop [-g|-m|-d|-n|-u|-p|-s|-c|-v|-o|-y] [-C|-M|-D|-N|-A] [-afFG1xR] [-L line-len] [-Plabel[,label]...] [ interval [ samples ]] interval:采样时间,默...

2016/12/17 14:49
99
0
HTML5中canvas知识点详解5-图形的组合

canvas api中可以将一个图行重叠在另一个图形上面,但要遵循后面的层级高于前者,有些图形组合效果就做不出来了,如果想要有图形的组合效果,我们就需要爱用到canvas api中的图形组合技术。...

2016/05/16 15:12
37
2
Ubuntu新用户报xxx is not in the sudoers file... 错误解决方法

新建用户 sudo useradd today -m -s /bin/bash sudo passwd today Enter new UNIX password: Retype new UNIX password: 当前用户切换至today安装atop、htop等包 sudo /bin/su - today sudo ...

2018/09/13 17:32
6
0
Centos 安装 atop 和 htop 工具。

首先安装rpmforge Install RPM for CentOS 5.x 32-BIT wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i686.rpm rpm -Uhv rpmforge-release*.rf.i386.rp...

2014/04/11 13:43
1K
0
Android setColorFilter 滤镜效果

通过setColorFilter可以实现滤镜效果。 如: final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); //获取壁纸 final Drawable wallpaperDrawable = wallpaperMa...

2012/11/25 21:06
479
0
PorterDuff.Mode

1.PorterDuff.Mode.CLEAR 所绘制不会提交到画布上。 2.PorterDuff.Mode.SRC 显示上层绘制图片 3.PorterDuff.Mode.DST 显示下层绘制图片 4.PorterDuff.Mode.SRC_OVER 正常绘制显示,上下层绘制...

2015/07/02 13:10
4
0
HTML5 Canvas 学习日志(三)

 HTML5 Canvas 学习日志(三) Canvas的11种合成 蓝色为destination,粉色为source 1 source-over (默认) <strong>context.globalCompositeOperation = "source-over";</strong> sou...

2016/01/26 17:07
5
1
http://407827531.iteye.com/blog/1470519

Android 有想法的人会用到,没有想法的人看不懂

2016/02/18 11:22
20
1
HTML canvas globalCompositeOperation

globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有的)的图像上。 源图像 = 您打算放置到画布上的绘图。 目标图像 = 您已经放置在画布上的绘图。...

2016/04/12 21:59
27
1
Android学习笔记(四):android画图之paint之setXfermode

setXfermode 设置两张图片相交时的模式 我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint; 而set...

2015/04/29 14:37
64
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部