linux 之atop 系统监控工具

article/2025/9/19 14:09:52

一、atop介绍

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

二、安装

atop 官网: https://www.atoptool.nl/downloadatop.php

在RHEL / CentOS / Fedora上
首先,你需要使EPEL软件库在RHEL / CentOS的/系统,以上面安装监控工具。

启用epel存储库后,您可以简单地使用yum软件包管理器来安装软件包,如下所示。

 yum install atop

也可以使用以下命令的wget直接下载上面的rpm包

wget http://www.atoptool.nl/download/atop-2.1-1.x86_64.rpm
rpm -ivh atop-2.1-1.x86_64.rpm

三、使用

atop工具安装好后在运行命令atop就能弹出监控界面
在这里插入图片描述

相关文件
/etc/init.d/atop: atop 的启动脚本

/etc/default/atop: 配置变量文件

/var/log/atop: atop默认的日志文件

/etc/cron.d/atop: atop的定时任务配置,默认是每天0点开始

参数详解:

atop:改行列出了服务器的host、当前时间、信息收集的频率

PRC

进程和线程级别总计

sys内核态消耗的总cpu时间
user用户态消耗的总cpu时间
proc当前进程的总数
trun当前处于运行状态的线程总数
tslp睡眠可中断的线程数
tslpu睡眠不可中断的线程数
zombie僵死进程数
clones克隆系统调用的数量
exit在统计期间结束的进程数

CPU
cpu 利用率。大写的CPU行统计所有cpu利用率,小写的cpu行统计每个核的利用率。

syscpu被用于处理进程时,进程在内核态占用CPU的时间比例 user cpu被用于处理进程时,进程在用户态占用CPU的时间比例
irqcpu用于中断处理(包括软中断)的时间百分比
idlecpu处于完全空闲状态的时间比例
waitcpu处于“进程等待磁盘IO导致CPU空闲”状态的时间比例
steal反映运行在相同硬件上的其他虚拟机窃取的cpu时间百分比
guest反映虚拟机使用的cpu时间百分比
curf当前频率
curscal当前缩放比例

在频率缩放的情况下 , 在统计周期内,前面提到的所有CPU百分比都与CPU使用的扩展有关。 在统计周期内如果一个CPU在用户态活跃时间只占50%, 而该CPU的频率扩展为40%, 那么在用户态下进程只使用了改CPU全部容量的 20% 。

在内核模块 cpufreq_stats 被激活的情况下(执行 modprobe cpufreq_stats 命令后), avgf 字段用来统计平均频率,avgscal字段用来统计平均缩放百分比。如果没有激活此模块,则使用 curf 来显示当前频率,curscal显示当前缩放百分比。

CPL

可在CPU上运行的线程数量的负载平均值 ,运行队列里的线程数,或者是等待磁盘I/O的线程数。
也反应了服务器整体的性能,展示信息包括进程等待队列数

avg1平均1分钟的线程数量
avg5平均5分钟的线程数量
avg15平均15分钟的线程数量
csw上下文切换的次数
intr服务中断的数量
numcpu可用cpu的数量

MEM:该列主要展示内存的使用信息。

tot物理内存的总量
free当前空闲的内存量
cache用作页缓存的内存量,包括所有的常驻共享内存
dirty在页缓存内必须刷新到磁盘的内存量
buff用于文件系统元数据的内存量
slab用于内核mallocs的内存量

SWP:交换空间使用情况

tot交换空间总量
free交换空间剩余空间总量
vmcom提交的虚拟内存空间
vmlim提交空间的最大限制(默认值是交换空间加上内存大小的50% )

PAG列虚拟内存分页情况

swin换入内存页数
swout换出内存页数

DSK

第二列显示磁盘符
busy单位时间内忙于处理请求的百分比
read发出的读请求数量
write发出的写请求数量
KiB/r每个读请求的大小,单位为KiBytes KiB/w 每个写请求的大小,单位为KiBytes
MBr/s读操作每秒的吞吐量,单位为 MiBytes MBw/s 写操作每秒的吞吐量,单位为MiBytes
avq平均队列深度 avio 请求寻道、延迟和数据传输所需的平均毫秒数

NET
统计传输层与网络层的数据传输情况,如下图所示|
在这里插入图片描述

transport行统计传输层TCP和UDP协议的数据传输情况,network行统计网络层IP协议数据报的传输情况,网络接口名(如eth0,lo)行统计各个网络接口数据传输情况

transport
|tcpi |接收到的TCP段数量,包括错误接收到的TCP段的数量 tcpo 传输的TCP段数量,不包括那些只包含重传的 octets(八位字节)|

udpi接收到的UDP数据报数量
udpo传输的UDP数据报数量
tcpao打开的活跃TCP数量
tcppo被动打开的TCP数目
tcprsTCP输出重传的次数
tcpieTCP输入错误的数量
tcporTCP输出重置的数量
udpnp没有端口的UDP数量
udpipUDP输入错误的数量

network

ipi显示从接口接收的IP数据报的数量,包括错误接收的数据报 ipo 本地上层协议提供的用于传输的IP数据报的数量
ipfrw被转发到其他接口的接收到的IP数据报数量
deliv发送到本地上层协议的IP数据报的数量
icmpi接收到的ICMP数据报数量
icmpo已传输的ICMP数据报数量

网络接口(如eth0,lo)

pcki接收到的包数量
pcko已传输的数据包数量
si每秒接收到的有效比特数
so每秒传输的有效比特数
coll碰撞数
mlti接收多播数据包的数量
erri接收数据包时的errors数
erro发送数据包时的errors数
drpi接收到的数据包的丢弃数量
drpo传输数据包的丢失数量

进程列

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

四,常用参数 (在交互模式下也可以用这些参数)

-n 显示网络信息(需要内核打补丁才能使用)
-m 显示内存相关信息(需要内核打补丁才能使用)
-d 显示磁盘读写相关(需要内核打补丁才能使用)
-g 查看默认的通用输出
-s 显示调度特点:每个进程的以下字段所示:进程的ID,运行状态(R)的线程数、中断状态的睡眠线程S(TLSPI)和不可中断睡眠线程D (TSLPU) 数,调度策略(分时调度策略,实时时间片轮转策略,实时调度策略FIFO),nice值,优先级(PRI),实时优先级(RTPR),当前的处理器,状态,退出代码,进程状态,cpu利用率和进程名。
-v 显示各种进程特性:每个进程的以下字段所示:进程ID(PID),父进程ID(PPID)、用户名(USERNAME)和组(GROUP),开始日期和时间,状态(例如,退出代码,如果该进程已完成),进程状态(ST)(D:不可终止进程、 R:正在运行进程 、 T:暂停进程、S:休眠进程、Z:僵尸进程……),CPU占用率和进程名。
-c 以命令行command-line的形式显示:每个进程有以下字段所示:进程的ID,所选资源占用百分比和命令行参数,
-u 以用户的形式显示:以下字段显示:在上一间隔时间内活动或终止的进程数,上一时间间隔内cpu在系统模式和用户模式的消耗,活动进程对虚拟内存和现有内存的消耗。当安装的cnt补丁后会显示读(RDDSK)写(WRDSK)到磁盘上的数据量,以及所收到(RNET)和发送(SNET)的网络数据包,内核补丁没有安装时这些计数器为零。最后一栏显示CPU百分比和用户名。
-p 以进程名的形式显示信息:和-u类似只是最后显示的是进程名
-M 按照占用物理内存百分比大小进行排列
-D,按照访问磁盘的繁忙程度进行排序
-N 按照接受和发送的网络数据包排序
-A 依据当前系统最繁忙的资源进行排序,可能有ACPU、AMEM、ADSK或者ANET

m模式:内存状态模式

SYSCPU过去10s内进程处于内核模式占用的CPU时间
USRCPU过去10S进程处于用户模式占用的CPU时间
VSIZE过去10S进程占用的虚拟空间大小
RSIZE过去10S进程占用的内存空间大小
PSIZE过去10S进程占用的页大小
VGROW过去10S进程增长的虚拟空间大小
RGROW过去10S进程增长的内存大小
SWAPSZ过去10S进程使用交换空间的大小
MEM过去10S进程占用内存百分比

d模式 磁盘状态模式

RDDSK过去10S进程读磁盘的数据量
WRDSK过去10S进程写磁盘的数据量
DSK过去10S进程所占磁盘的百分比

CMD :进程名
p模式:进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示

NPROCS相同名称的进程数量
v模式线程状态模式
u模式用户模式

根据用户进行分组显示
g模式:标准模式
s进程当前的状态,包括:s(sleeping),R(runing)等

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


http://chatgpt.dhexx.cn/article/VJsLfVtF.shtml

相关文章

Linux 使用 atop 监控工具

文章目录 应用场景操作步骤安装 atop配置并启动 atop编辑atop配置文件启动atop 分析atop停止atop 应用场景 atop 是一款用于监控 Linux 系统资源与进程的工具,以一定的频率记录系统的运行状态,采集系统资源(CPU、内存、磁盘和网络&#xff0…

codeblocks中文包

kdevelop因为python 2.6.2 而不是要求的<2.6的缘故不可以显示出automake。 而删除&#xff12;.6的结果是&#xff11;&#xff13;&#xff12;个包同时要卸载&#xff0c;感觉其中不乏kde桌面的东东&#xff0c;遂放弃&#xff0c;转而投向codeblocks怀抱。 /usr/share/c…

codeblocks使用

原文来源&#xff1a;http://www.cnblogs.com/hackergodness/archive/2011/05/26/2059268.html 原手册下载&#xff1a; http://www.codeblocks.org/docs/manual_en.pdf 译者&#xff1a;JGood(http://blog.csdn.net/Jgood ) 译者言&#xff1a;工欲善其事&#xff0c;必先利其…

CodeBlocks安装及使用

Code::Blocks是一个开放源码的全功能的跨平台C/C集成开发环境&#xff0c;由纯碎的C语言开发完成&#xff0c;使用了著名的图形界面库wxWidgets。由于最近上机指导&#xff0c;学校ACM推荐同学们用的是这款软件&#xff0c;故而对其安装及使用进行一些记录。 一、Code::Blocks…

Code::Blocks介绍

软件类型&#xff1a;编程软件 软件性质&#xff1a;免费软件 操作系统&#xff1a;veket 应用平台&#xff1a;veket全系列 网站链接&#xff1a;http://www.codeblocks.org Code::Blocks 是一个开放源码的全功能的跨平台C/C集成开发环境.   相比于基于Delphi的Dev-C共享 CI…

Codeblock汉化教程

#Codeblock汉化教程 我猜许多人和我一样每次拿到一个IDE都不太懂上边的英文是什么意思&#xff0c;而且现在大多数的IDE都没有汉化用起来感觉很麻烦&#xff0c;可能是我用的太少了。最近在练习一些C的东西觉得Codeblock这个IDE用起来比较方便&#xff0c;但是满篇的英文看的我…

codeblock图形界面编程(十)文件操作

目录 codeblock图形界面编程&#xff08;十&#xff09;文件操作C语言的文件管理文件指针文件打开 文件关闭文件读文件写 图形界面的文件操作管理配置libcomdlg32.a库系统功能的实现 codeblock图形界面编程&#xff08;十&#xff09;文件操作 打开我们的计算机&#xff0c;无…

codeblocks应用之debug .

一个偶然的机会&#xff0c;我发现了codeblocks这款IDE&#xff0c;因为它主要用于开发c/c&#xff0c;所以没有visual studio那么臃肿&#xff0c;感觉比较快捷&#xff0c;好用。但是其资料多为英文&#xff0c;本着利人利己的初衷&#xff0c;我决定挑选一些开发中必须使用的…

codeblock报错解决及正确安装

文章目录 前言报错解决原因一原因二 正确安装 前言 文章同步于我的个人博客https://quan9i.github.io/c/#more&#xff0c;欢迎大家访问&#xff01; 最近在重新使用codeblock时发现了部分问题&#xff0c;总结如下 报错解决 在运行时出现如下报错 "HelloWorld - Debu…

codeblocks 使用汇总

享受Code::Blocks编辑快感的几个关键 原文地址&#xff1a;http://blog.csdn.net/Utensil/archive/2008/12/24/3593502.aspx 感谢Loaden的补充。此文是对帖子http://wxforum.shadonet.com/viewtopic.php?t22128 的总结和整理&#xff0c;按个人喜好做了取舍和重新排序。 说明…

CodeBlocks 的下载安装

一、下载 1.在浏览器上输入CodeBlocks或者输入网址https://www.codeblocks.org/&#xff0c;进入CodeBlocks官网 2.点击Downloads&#xff0c;进入Downloads界面 3.进入Downloads页面&#xff0c;点击Download the binary release&#xff08;二进制版&#xff09; 4.选择下…

Code::Blocks的使用教程

四年没有认真地写过C了&#xff0c;决定从今天开始&#xff0c;从codeblocks开始&#xff01; 打开软件界面&#xff0c;点击“创建新项目” 选择“console application”&#xff0c;然后点“出发” 点击“下一步” 选择“c”&#xff0c;点击“下一步” 输入项目标题 选“…

codeblock的安装与使用

绝大多数编程竞赛中都要求使用的编译器是codeblocks,这里给大家演示一下安装步骤供大家参考 首先大家来到code blocks的官网下载地址 http://www.codeblocks.org/downloads/26 大家找到与图片对应的windows系统&#xff0c;如果你是Linux系统根据下面的向导安装就可以很简单&a…

codeblocks的debug教程(超详细)

codeblocks的debug教程 转&#xff1a;作者&#xff1a;BLF2原文&#xff1a;https://blog.csdn.net/codeblf2/article/details/78183196 ------------------------------------------------------------------------------------------------------------------------------…

CodeBlock 使用手册

译者言&#xff1a;工欲善其事&#xff0c;必先利其器。一个好的工具能事半功倍。写程序时&#xff0c;特别是写C程序&#xff0c;大部分人脑子里想到的第一个工具就是VisualStudio。不可否认&#xff0c;VS很好很强大&#xff0c;用户体验非常好。但VisualStudio也是有缺点的&…

CodeBlocks使用攻略

CodeBlocks使用攻略 第一步&#xff1a;点击create a new project 第二步&#xff1a;选择Console application&#xff0c;点击Go 第三步&#xff1a;选择C&#xff0c;点击next 第四步&#xff1a;写上你的项目名称&#xff0c;例如&#xff1a;Project01&#xff0c;点击ne…

CodeBlocks的安装及使用

CodeBlocks的安装及使用 下载并安装CodeBlocks 一、在百度等搜索引擎搜索codeblocks或直接输入网址https://www.codeblocks.org/进入CodeBlocks官网的下载页面 二、进入下载页面 四、选择合适的版本&#xff0c;这里我下载的是适用于windows的带编译器等工具的版本&#…

CodeBlocks系列(1)

CodeBlocks系列&#xff08;1&#xff09; IDE为什么选择CodeBlocks安装CodeBlocks&#xff08;win10&#xff09;创建一个工程 本博客是自己在学习摸索中的记录&#xff0c;如果有帮助&#xff0c;点个免费的赞 IDE 对于学习一门编程语言&#xff0c;一个优秀的对胃口的集成开…

Code::Blocks使用教程

使用之前我们先准备一段代码。 #include <stdio.h> #include <stdlib.h> int main() { printf("欢迎进入www.dotcpp.com编程网站&#xff01;"); system("pause"); return 0; } 1) 创建文件的方式为点击左上角File->New->File。…

codeblocks使用教程

基本介绍 CodeBlocks是一个开放源码的全功能的跨平台C/C集成开发环境。CodeBlocks由纯粹的C语言开发完成&#xff0c;CodeBlocks是一个跨平台的开源IDE&#xff0c;可以用来编写多种程序&#xff0c;而且不需要购买许可证&#xff0c;上手难度不高&#xff0c;是一款轻量却又不…