atop 是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。
atop使用方法
在安装atop之后,我们在命令行下敲入”atop"命令即可看到系统当前的运行情况:
系统资源监控字段含义
上图中列出了不少字段以及数值,各字段的含义是什么?我们应该怎么看?以上每个字段的含义都是相对采样周期而言的,下面我们先来关注上图显示的上半部分。
ATOP列:该列显示了主机名、信息采样日期和时间点
PRC列:该列显示进程整体运行情况
sys、usr字段分别指示进程在内核态和用户态的运行时间
#proc字段指示进程总数
#zombie字段指示僵死进程的数量
#exit字段指示atop采样周期期间退出的进程数量
CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)
sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
irq字段指示CPU被用于处理中断的时间比例
idle字段指示CPU处在完全空闲状态的时间比例
wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。
cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%
CPL列:该列显示CPU负载情况
avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
csw字段指示上下文交换次数
intr字段指示中断发生次数
MEM列:该列指示内存的使用情况
tot字段指示物理内存总量
free字段指示空闲内存的大小
cache字段指示用于页缓存的内存大小
buff字段指示用于文件缓存的内存大小
slab字段指示系统内核占用的内存大小
SWP列:该列指示交换空间的使用情况
tot字段指示交换区总量
free字段指示空闲交换空间大小
PAG列:该列指示虚拟内存分页情况
swin、swout字段:换入和换出内存页数
DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息
sda字段:磁盘设备标识
busy字段:磁盘忙时比例
read、write字段:读、写请求数量
NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息
XXXi 字段指示各层或活动网口收包数目
XXXo 字段指示各层或活动网口发包数目
进程视图
为了更全面地展示进程信息,atop提供了多种进程视图。
默认视图(Generic information)
进入atop信息界面,我们看到的就是进程信息的默认视图(上图下半部分),按g键可以从其他视图跳到默认视图。
从上图中,我们可以看到PID为3061的find进程在退出前在内核模式下占用了3.43秒CPU时间,在用户模式下占用了0.96秒CPU时间,共使用CPU时间为4.39秒,相对10分钟采样周期,CPU时间占用比例为1%,ST列表示进程状态,N表示该进程是前一个采样周期新生成的进程,E表示该进程已退出,EXC列指示进程的退出码。从进程名在“<>”符号中,我们亦可知该进程已退出。
内存视图(Memory consumption)
内存视图展示了进程使用内存情况,按m键可进入内存视图。
上图下半部分展示了每个进程占用的虚拟内存空间(VSIZE)、内存空间(RSIZE)大小,以及在上一个采样周期中虚拟内存和物理内存增长大小(VGROW、RGROW),MEM列指示进程所占物理内存大小。
从上图的PAG列的信息,我们可以知道此时系统内存负载较高,出现页换出情况,从进程视图中VGROW和RGROW列可看出VirtualBox进程占用内存量大量增长,部分进程占用的内存减少(VGROW或RGROW字段为负值),为VirtualBox进程腾出空间。
命令视图(Command line)
按c键我们可以进入命令视图,该视图展示了与每个进程相对应的命令。
有时我们某位“马大哈”同事执行了某个脚本或命令,使得系统资源占用率异常飙高,这时,我们可以很容易地通过atop的命令视图找到导致异常的命令。
atop日志
每个时间点采样页面组合起来就形成了一个atop日志文件,我们可以使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?
对于atop日志文件的保存方式,我们可以这样:
每天保存一个atop日志文件,该日志文件记录当天信息
日志文件以"atop_YYYYMMDD"的方式命名
设定日志失效期限,自动删除一段时间前的日志文件
其实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
Atop是一个ASCII全屏(没有全屏无法显示监测结果)的性能监测工具, 它能够监测所有进程的活动状态(即便进程是在监测的间隔过程停止的), 它能够设置生成系统和进程每天的日志以便日后分析,它还能够将超负载的系统资源用颜色标示出来等等。在定时的间隔中,它能够显示包括CPU,内存,swap,磁盘和网络状态方面一些系统级的信息,而且能够显示每一个活动进程的CPU使用率,内存增长情况,磁盘使用率,执行的
显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil atop 命令监控 Linux 系统资源与进程的工具,非内部命令,需要安装。 atop 命令安装: -bash: atop: command not found #Debian apt-get install atop #Ubuntu ap
一、修改atop配置 # 打开atop配置文件 vim /etc/sysconfig/atop 配置文件内容如下: LOGOPTS=“” LOGINTERVAL=30 //监控周期 LOGGENERATIONS=7 //日志保留时间 LOGPATH=/var/log/atop //日志存放路径 二、启停atop # 启动atop
一、在线安装 # 安装第三方yum源EPEL yum install epel-release ## 执行完毕后提示以下内容说明成功安装。 > Complete! # 在线安装atop yum install atop -y ## 执行完毕后提示以下内容说明成功安装。 > Complete! 二、手工
nmon 说明 官网:http://nmon.sourceforge.net/pmwiki.php 分析工具 nmon analyser:https://www.ibm.com/developerworks/community/wikis/home?lang=en nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具, nmon所记录的信息是比较全面的,它能在系统运行过程中实时
业务监控子系统分为单机版和集群版两个版本,单机版只需依赖一个用于存储监控数据的Mysql数据库即可正常运行,而集群版则需要在单机版的基础上,在监控数据收集端部署一个服务端程序进行相关的数据聚合入库处理。 整个业务监控子系统不管是单机版还是集群版,都是基本一个给Java服务的各项指标提供度量工具的包Metrics进行扩展实现的,这样可以有效保证底层监控指标统计算法的性能和正确性,在此基础上,本系统扩
字符云监控系统(xrkmontor), 国产开源监控系统:专注于通过监控系统对软硬件系统进行掌控以及系统相关数据的可视化,通过插件化进制完成对通用项目监控的复用,支持多种开发语言开发接口以便能为各类语言开发者所用,支持在线部署。 登录界面 相比其它开源监控系统优势 支持插件功能, 监控插件无需开发,自由选择监控插件,安装即可使用 集成告警功能, 支持多种告警方式 集成分布式日志系统功能 支持多种部
基于ARM平台开发的 仓储安防监控系统. camera : 摄像头视频采集,JPEG压缩,YUVT转换. serial : 串口,GPRS. Lcd : 绘制字体,绘制图片,绘制摄像录像,触摸屏事件监控. lib : 数据结构库,线程池. gui : button控件,触摸屏事件监听. image : 图像C文件. init : 初始化启动程序. resource: 资源文件. socket :
我正在寻找一个非常好的工具或开源系统来监控我的hadoop生态系统,包括像hadoop,火花,oozie,纱线,hdfs,蜂巢,hbase,Kafka,动物园管理员等组件。 我得到了ambari,但我发现当前的ambari可以用来从头开始部署和管理我的系统,而不是管理我现有的hadoop系统。 有什么建议吗?
本文向大家介绍python实现内存监控系统,包括了python实现内存监控系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现内存监控系统的具体代码,供大家参考,具体内容如下 思路:通过系统命令或操作系统文件获取到内存信息(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看) 并将获取到信息保存到数据库中,通过w