【Linux】还在用top命令?可以试试atop工具,信息一目了然,运维工程师的新选择

atop使用

Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:)。但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳定呢?非也,要知道业务功能是由系统上跑的程序实现的,要实现业务功能的稳定性,选择Linux只是迈出的第一步,我们更多地工作是不让业务程序成为稳定性的短板。

当我们的服务器出现问题的时候,外在的表现是业务功能不能正常提供,内在的原因,从程序的角度看,可能是业务程序的问题(程序自身的bug),也可能是服务器上人为的误操作(不当地执行脚本或命令);从系统资源的角度看,可能是CPU抢占、内存泄漏、磁盘IO读写异常、网络异常等。出现问题后,面对各种各样可能的原因,我们应如何着手进行分析?我们有什么工具进行问题定位吗?

atop简介

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

atop使用方法

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

atop默认视图

系统资源监控字段含义

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

ATOP行:该列显示了主机名、信息采样日期和时间点和信息收集的频率
PRC行:该列显示进程整体运行情况
  1. sys:过去10s所有的进程在内核态运行的时间总和
  2. usr:过去10s所有的进程在用户态的运行时间总和
  3. #proc:过去10s转换的进程数
  4. #zombie:过去10s僵死进程的数量
  5. #exit:atop在10s采样周期期间退出的进程数量
CPU行:cpu列展示了服务器的CPU整体的一个状态信息,包括内核和用户所占的比例、处理中断所占的比例、CPU的处于空闲下比例(这里是100%*cpu核心数,CPU有时候也会因为由于磁盘性能问题出现等待的空闲)
  1. sys、usr:CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
  2. irq:CPU在处理进程的中断请求所占的实际比例
  3. idle:CPU处于空闲状态下的时间比例(除了本身空闲,还有比如等待磁盘io的情况下也会处于空闲状态)
  4. wait:CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

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

cpu行:每个核心的状态信息,和总的CPU信息一样,每列加起来的总和就是总的CPU的状态信息。
CPL行:cpl也反应了服务器整体的性能,展示信息包括进程等待队列数,分别从过去1分钟、5分钟、15分钟的采样信息。
  1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程等待数量
  2. csw:上下文交换次数
  3. intr:中断发生次数
  4. numcpu:cpu的核心数
MEM行:该列指示内存的使用情况
  1. tot:物理内存总量
  2. free:空闲内存的大小(不能单单从这个字段就判断内存不足,还需要参考free -m中的-/+ buffers/cache:free因为这块的内容随时就可以拿过来使用,还可以从是否有使用Swap来判断是否内存不足)
  3. cache:用于页缓存的内存大小
  4. dirty:内存中的脏页大小
  5. buff:用于文件缓存的内存大小
  6. slab:系统内核占用的内存大小
SWP行:该列指示交换空间的使用情况
  1. tot:交换区总量
  2. free:交换空间剩余空间总量
PAG行:该列指示虚拟内存分页情况

swin:换入内存页数

swout:换出内存页数

LVM/DSK行:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息
  1. sda:磁盘设备标识
  2. busy:磁盘忙时所占比例
  3. read:read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
  4. write:write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
  5. avq:磁盘平均队列长度(根据实际的监控该列好像是磁盘平均请求数avgrq)
  6. avio:磁盘的平均io时间
NET行:多列NET展示了传输层(TCP/UDP)、网络层(ip)、网络接口的网络传输信息。
  1. transport:传输层(TCP/UDP)的数据输入输出的展示,例如在服务器的内部进程之间的数据传输就是在传输层展示,以为还不需要往下通过网络进行传输。
  2. network:网络层(ip)的数据输入输出的展示;
  3. eth0:默认的网络接口的数据输入输出的展示,也就是通过etho的ip的数据传输的展示,
  4. sp:网卡的带宽(1000M)
  5. pcki:传入的数据包的大小
  6. pcko:传出的数据包的大小
  7. si:每秒传入的数据大小
  8. so:每秒传出的数据大小
  9. coll(collisions):每秒的冲突数
  10. mlti(MULTICAST):每秒的多路广播的数量
  11. erri/erro:每秒输入输出的错误数
  12. drpi/drpo:每秒的输入输出的丢包数
  13. lo:通过127.0.0.1网络接口的数据传输的数据展示,参数和上面的eth0是一样的

进程列:进程列展示了每个进程在过去10S内的数据

m模式:内存状态模式
  1. SYSCPU:过去10s内进程处于内核模式占用的CPU时间

  2. USRCPU:过去10S进程处于用户模式占用的CPU时间

  3. VSIZE:过去10S进程占用的虚拟空间大小

  4. RSIZE:过去10S进程占用的内存空间大小

  5. PSIZE:过去10S进程占用的页大小

  6. VGROW:过去10S进程增长的虚拟空间大小

  7. RGROW:过去10S进程增长的内存大小

  8. SWAPSZ:过去10S进程使用交换空间的大小。

  9. MEM:过去10S进程占用内存百分比

内存视图(Memory consumption)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43Aaiup9-1685945076992)(http://images.cnblogs.com/cnblogs_com/bangerlee/320012/r_atop%E5%86%85%E5%AD%98%E8%A7%86%E5%9B%BE.png)]

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

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

d模式:磁盘状态模式
  1. WRDSK:过去10S进程写磁盘的数据量
  2. DSK:过去10S进程所占磁盘的百分比
  3. CMD:进程名
p模式:进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示
  1. NPROCS:相同名称的进程数量

其它的参数上面已经有列出

v模式:线程状态模式
u模式:用户模式

根据用户进行分组显示

g模式:标准模式

默认视图(Generic information)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiUTh24x-1685945076993)(http://images.cnblogs.com/cnblogs_com/bangerlee/320012/r_%E9%BB%98%E8%AE%A4%E8%A7%86%E5%9B%BE.png)]

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

s:进程当前的状态,包括:s(sleeping),R(runing)等
c:命令模式

命令视图(Command line)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5cN8rsx8-1685945076993)(http://images.cnblogs.com/cnblogs_com/bangerlee/320012/r_atop%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F.png)]

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

atop的相关文件

/etc/atop:目录保存的是atop的配置文件
/etc/rc.d/init.d/atop:atop的启动文件
/etc/cron.d/atop:atop的定时任务文件,默认是每天0点开始
/var/log/atop:atop日志文件,默认是每天0点开始会产生当天的一个日志文件,然后可以通过atop -r file 查看信息,但是没有找到自动播放的的功能,只能通过输入b显示一个指定的时间的信息,可以写个循环来实现
/usr/bin/atop:atop命令目录

atop -r atop_20160510 -b 13:00 -e 17:00
1.atop产生的日志文件信息是10分钟一个采样周期进行记录,可以通过修改/etc/atop/atop.daily文件进行修改。

个时间点采样页面组合起来就形成了一个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
将atop的记录导出文本:

顶部 -r /瓦尔/日志/顶部/顶部/atop_slot10_suse10sp2_20120622 -b 04:00 – e 16:10>>atop_log.txt

上述命令可以用一个命令使用,将atop信息重定向到一个文件中,例如:

顶部 -v -b 01:00 -e 01:05 atop_linux_20160119>我.log

atop看CPU的空闲率:

顶部 – PCPU – r atop_linux_20160119|格雷普 – v SEP|格雷普 – v RESET|awk – F””[打印 ,,(9=11=13]]100%”]”

atop的其它参数:

登录后复制
Usage: atop [-flags] [interval [samples]]
or
Usage: atop -w file [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]

generic flags:-a  show or log all processes (i.s.o. active processes only)-R  calculate proportional set size (PSS) per process-P  generate parseable output for specified label(s)-L  alternate line length (default 80) in case of non-screen output-f  show fixed number of lines with system statistics-F  suppress sorting of system resources-G  suppress exited processes in output-l  show limited number of lines for certain resources-y  show individual threads-1  show average-per-second i.s.o. total values-x  no colors in case of high occupation-g  show general process-info (default)-m  show memory-related process-info-d  show disk-related process-info-n  show network-related process-info-s  show scheduling-related process-info-v  show various process-info (ppid, user/group, date/time)-c  show command line per process-o  show own defined process-info-u  show cumulated process-info per user-p  show cumulated process-info per program (i.e. same name)-C  sort processes in order of cpu-consumption (default)-M  sort processes in order of memory-consumption-D  sort processes in order of disk-activity-N  sort processes in order of network-activity-A  sort processes in order of most active resource (auto mode)specific flags for raw logfiles:-w  write raw data to   file (compressed)-r  read  raw data from file (compressed)special file: y[y...] for yesterday (repeated)-S  finish atop automatically before midnight (i.s.o. #samples)-b  begin showing data from specified time-e  finish showing data after specified time

参考:
https://blog.51cto.com/u_15715098/5707324
http://www.taodudu.cc/news/show-3691508.html?action=onClick

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352544.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

鲁大师5月新机性能/流畅/久用榜:蓝绿厂霸榜,天玑9200+与高通骁龙8 Gen2迎来首次交锋

性能榜 6.18年中购物节前夕&#xff0c;一众厂商开始扎堆发布新机冲销量&#xff0c;也导致本月的新发机型数量达到了19款。 从品牌来看&#xff0c;ov两家和其子品牌、独立品牌就占据了十二台。从机型定位来看&#xff0c;本月的手机竞争主要围绕中端市场&#xff0c;除了索尼…

BUUCTF misc 专题(49)穿越时空的思念

下载下来是一段音频&#xff0c;听了一下&#xff0c;大致能听出来点东西&#xff0c;将它放入Audacity或者Audition 我这里是放入了Audition 可以明显地看到有摩斯密码&#xff0c;手动敲下来并用在线网站解码 再将它转化成小写&#xff08;可以使用python&#xff09;&#…

想你,淡淡的思念

2019独角兽企业重金招聘Python工程师标准>>> 淡淡的夜&#xff0c;思念是风&#xff0c; 将我的心吹向你的身边&#xff0c; 淡淡的夜&#xff0c;牵挂是雨&#xff0c; 将我的爱抛向你的脚下。 淡淡的夜&#xff0c;你在那里? 你在遥远的天边&#xff0c; 淡淡的月…

思念到极致时什么感觉?(1)

故事一&#xff1a; 跟交往了四年的初恋分手后&#xff0c; 他去了北京&#xff0c; 我没找任何同伴独自去了那里&#xff0c; 下车的一瞬间我哭了&#xff0c; 想象着他曾经在这里出现过&#xff0c; 也曾挤在拥挤的人群中。 后来哭累了回到酒店&#xff0c; 翻看着他的朋友圈…

500道网络安全/WEB安全面试题合集!附答案解析

前言 随着国家政策的扶持&#xff0c;网络安全行业也越来越为大众所熟知&#xff0c;想要进入到网络安全行业的人也越来越多。 为了拿到心仪的 Offer 之外&#xff0c;除了学好网络安全知识以外&#xff0c;还要应对好企业的面试。 作为一个安全老鸟&#xff0c;工作这么多年…

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据&#xff0c;用第三方软件比较合适&#xff0c;当然&#xff0c;用excel也可以批量提取网页内特定文字。请按照以下步骤操作&#xff1a; 1. 打开要提取的网页&#xff0c;并选中要提取的文字&#xff0c;例如一个表格里的数据。 2. 复制选中的文字。 …

新浪微博 mysql_新浪微博,腾讯微博mysql数据库主表猜想

用户信息表(t_user_info)字段名称字节数类型描述 User_id4uint32用户编号(主键) User_name20Char[20]名称 Msg_count4uint32发布消息数量,可以作为t_msg_info水平切分新表的auto_increment Fans_count4uint32粉丝数量 Follow_count4Uint32关注对象数量 备注&#xff1a;以User_…

android微博客户端下载,iBeebo微博客户端

iBeebo微博客户端是一款免费的开源微博客户端&#xff0c;比起官方的手机客户端这款应用显然要小巧的多&#xff0c;它没有那些多余的无用功能。iBeebo微博客户端支持私信&#xff0c;你还可以查看热门话题和热门微博&#xff0c;喜欢的朋友不要错过哦!赶紧来最火软件站点击iBe…

2022年12月最新微博新版批量删除微博博文代码_删除清空微博博文的微博批量删除代码与方法

2022年12月微博新版本界面批量删除微博博文的方法 2022最新批量删除微博丨怎么一键批量删除微博与删除关注? 本教程为&#xff1a;一键批量删除新浪微博以前发过的微博(作者&#xff1a;当时我就没憋住) 新浪微博本身不提供批量删除微博的方法&#xff0c;&#xff0c;下面就…

基于IOS的仿微博系统

这份需求说明书的目的是直接对基于MVC模式的微博系统进行需求分析和系统总体设计服务。本说明书面向的读者是进行需求分析的人员和进行系统总体设计的人员。在开发的时候做了ppt、演示视频源码等需要可联系企鹅&#xff1a;2415273018。主要工作是设计实现一款个性化的基 于iOS…

微博java版_新浪微博JAVA通用版

这是新浪微博JAVA通用版&#xff0c;专为JAVA用户打造。无论您身处何地&#xff0c;随时随地记录生活的点点滴滴&#xff0c;与好友分享。 软件介绍 新浪微博JAVA通用版是专为Java平台用户打造的新浪微博手机客户端&#xff0c;功能强大。完全支持阅读、发布、评论、转发、私信…

android 微博发布,手机上怎么用微博?手机如何发广播?

1 如何安装Android微博 Android微博可以通过以下两种方式进行安装&#xff1a;在Android market中下载腾讯微博Android版进行安装 在腾讯微博官网下载apk文件进行安装 2 腾讯微博Android客户端&#xff0c;可以用邮箱地址注册微博帐号吗&#xff1f; 非常抱歉&#xff0c;目前A…

腾讯微博android版本,腾讯微博

安装与下载 1 如何获取一个腾讯微博iPhone客户端&#xff1f; 首先请确认您已经拥有了一个iTunes帐号&#xff0c;可以通过该帐号在App store中下载应用。(如何获取该帐号了解更多) 您可以通过电脑中的iTunes软件将下载到电脑的腾讯微博iPhone客户端同步到您的iPhone中 您也可以…

用计算机上发微博,电脑版新浪微博怎么使用?新浪微博基本使用方法介绍

新浪微博能在第一时间传递最新消息&#xff0c;消息传播速度快、信息量大&#xff0c;在这里可以了解最新信息&#xff0c;可以学习经验&#xff0c;可以找到喜爱的各种小组&#xff0c;深受现代生活人们的喜爱&#xff0c;而新浪微博自2009年开始公测以来&#xff0c;已经拥有…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种&#xff1a; 单元测试&#xff1a;验证独立单元是否能正常工作集成测试&#xff1a;验证多个单元协同工作端到端测试&#xff1a;从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试&#xff1a;验证程序的UI变化 单元测…

第1章:SpringMVC简介

一、SpringMVC 1.Java语言学习流程 2.SpringMVC的主要内容 二、SpringMVC简介 1.什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型&#xff0c;视图&#xff0c;控制器划分M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用…

5个小时,搭出2套应用,这一低代码平台很强劲!

现代管理学之父德鲁克提及创新本质时&#xff0c;说了两点&#xff1a; 一是让昂贵的东西变得便宜&#xff0c;老百姓能用&#xff1b;二是让高门槛东西变得低门槛&#xff0c;普通人可用。 而低代码正符合这两个条件。 一、背景 所谓低代码&#xff0c;是一种软件开发方法&…

一周信创舆情观察(12.7~12.13)

一、一周舆情要点 行业方面&#xff0c;2020年集成电路设计行业销售额预计为3819.4亿元&#xff0c;比2019年的3084.9亿元增长23.8%。日前&#xff0c;我国自主研发的一项物联网安全测试技术&#xff08;TRAIS-P TEST&#xff09;由国际标准化组织/国际电工委员会(ISO/IEC)发布…

以评促建,推动高效惠民数字政府建设——2018数字政府建设论坛暨第十七届中国政府网站绩效评估结果发布会在京召开...

导语&#xff1a;放眼世界&#xff0c;政府数字化转型已成大势所趋。纵观国内&#xff0c;建设数字政府、数字中国逐渐升至新时代国家发展战略。作为数字中国体系重要组成部分的数字政府&#xff0c;是实现数字中国建设目标、推动社会经济高质量发展的重要抓手。结合国家要求&a…

亮剑“互联网+政务服务”,航天信息助力政府“最多跑一次”改革

? 点 击 关 注 2017年8月&#xff0c;航天信息联合浙江省台州市财政局在台州市立医院建设试点项目&#xff0c;开具出浙江省第一张门诊收费电子票据。截至2018年10月&#xff0c;航天信息已帮助浙江省的40多家医疗机构开具了近400万张电子票据。“最多跑一次”不是一句口号&am…