Linux命令之atop

atop

介绍

atop是一个功能非常强大的linux服务器监控工具,所采集的数据包含系统CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并且内容非常的详细,可以以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析。

安装

安装非常简单
centos服务器:

[root@localhost ~]# yum -y  install atop 

image.png

ubantu服务器使用以下命令安装

apt-get install atop -y

启动

[root@localhost ~]# systemctl start atop
[root@localhost ~]# systemctl enable atop
Created symlink from /etc/systemd/system/multi-user.target.wants/atop.service to /usr/lib/systemd/system/atop.service.
[root@localhost ~]# ps -ef |grep atop
root     23340     1  0 14:57 ?        00:00:00 /usr/bin/atop -R -w /var/log/atop/atop_20191204 600
root     23635 22353  0 14:59 pts/0    00:00:00 grep --color=auto atop

配置

atop安装完成后有几个配置文件和目录

/etc/sysconfig/atop:配置文件

指定atop的相关信息

[root@localhost ~]# cat /etc/sysconfig/atop  
# sysconfig atop
#
# Current Day format
CURDAY=`date +%Y%m%d`
# Log files path
LOGPATH=/var/log/atop
# Binaries path
BINPATH=/usr/bin
# PID File
PIDFILE=/var/run/atop.pid
# interval (default 10 minutes) 默认600s采集一次数据
LOGINTERVAL=600

/etc/cron.d/atop:计划任务文件

内容如下
[root@localhost ~]# cat /etc/cron.d/atop

daily restart of atop at midnight

0 0 * * * root systemctl try-restart atop

/var/log/atop:日志目录

[root@localhost ~]# ls /var/log/atop
atop_20191204  daily.log
执行以下命令分析日志
[root@localhost ~]# atop -r /var/log/atop/atop_20191204

分析

atop常用指令如下所示。

  • c:按照进程CPU使用率进行降序筛选。
  • m:按照进程内存使用率进行降序筛选。
  • d:按照进程磁盘使用率进行降序筛选。
  • a:按照进程资源综合使用率进行降序筛选。
  • n:按照进程网络使用率进行降序筛选,需要额外安装内核模块才支持,默认不支持。
  • t:跳转到下一个监控采集点。
  • T:跳转到上一个监控采集点。
  • B:指定时间点,格式为hh:mm:ss。

使用

直接在终端上敲atop
image.png

系统资源监控

接下来我们先来详细看下上半部分每行参数意义。
**ATOP:**改行列出了服务器的host、当前时间、信息收集的频率
**PRC:**该行展示整个系统的性能状况;

  1. sys:过去10s所有的进程在内核态运行的时间总和
  2. usr:过去10s所有的进程在用户态的运行时间总和
  3. #proc:进程总数
  4. #tslpi:中断状态的睡眠线程
  5. #tslpu:不可中断睡眠线程
  6. #zombie:过去10s僵死进程的数量
  7. #exit:在10s采样周期期间退出的进程数量

**CPU: **cpu列展示了服务器的CPU整体的一个状态信息,包括内核和用户所占的比例、处理中断所占的比例、CPU的处于空闲下比例(这里是100%*cpu核心数,CPU有时候也会因为由于磁盘性能问题出现等待的空闲)

  1. sys:cpu在处理进程时处于内核态的时间所占的比例
  2. user:cpu在处理进程时处于用户态的时间所占的比例
  3. irq:cpu在处理进程的中断请求所占的实际比例
  4. idle:cpu处于空闲状态下的时间比例(除了本身空闲,还有比如等待磁盘io的情况下也会处于空闲状态)
  5. wait:cpu处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

cpu:每个核心的状态信息,和总的CPU信息一样,每列加起来的总和就是总的CPU的状态信息。
**CPL:**cpl也反应了服务器整体的性能,展示信息包括进程等待队列数,分别从过去1分钟、5分钟、15分钟的采样信息。

  1. avg1:过去1分钟进程等待队列数
  2. avg5:过去5分钟进程等待队列数
  3. avg15:过去15分钟进程等待队列数
  4. csw(context swapping):上下文交换次数
  5. intr(interrupt):中断发生的次数
  6. 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:交换空间剩余空间总量

**LVM/DSK:**每个分区信息以一列来进行展示

  1. busy:磁盘忙时所占比例
  2. read、KiB/r 、MBr/s:每秒读的请求数和请求的kb、mb数
  3. write、KiB/w 、MBr/w:每秒写的请求数和请求的kb、mb数
  4. avio:磁盘的平均io时间

NET:展示了传输层(TCP/UDP)、网络层(ip)、网络接口的网络传输信息。
**transport:**传输层(TCP/UDP)的数据输入输出的展示,例如在服务器的内部进程之间的数据传输就是在传输层展示,以为还不需要往下通过网络进行传输。
**network:**网络层(ip)的数据输入输出的展示;
**eth0:**默认的网络接口的数据输入输出的展示,也就是通过etho的ip的数据传输的展示,

  1. pcki:传入的数据包的大小
  2. pcko:传出的数据包的大小
  3. sp:网卡的带宽(1000M)
  4. si:每秒传入的数据大小
  5. so:每秒传出的数据大小
  6. coll(collisions):每秒的冲突数
  7. mlti(MULTICAST):每秒的多路广播的数量
  8. erri/erro:每秒输入输出的错误数
  9. drpi/drpo:每秒的输入输出的丢包数

进程监控

进程列展示了每个进程在过去10s内的数据
默认视图
image.png
从上图中,我们可以看到PID为1527的yum进程在内核模式下占用了0.27秒CPU时间,在用户模式下占用了0.89秒CPU时间,共使用CPU时间为1.16秒,相对10分钟采样周期,CPU时间占用比例为12%。

SYSCPU:过去10s内进程处于内核模式占用的CPU时间
USRCPU:过去10S进程处于用户模式占用的CPU时间

m模式:内存状态模式
image.png
VSIZE:过去10S进程占用的虚拟空间大小
RSIZE:过去10S进程占用的内存空间大小
PSIZE:过去10S进程占用的页大小
VGROW:过去10S进程增长的虚拟空间大小
RGROW:过去10S进程增长的内存大小
SWAPSZ:过去10S进程使用交换空间的大小。
MEM:过去10S进程占用内存百分比
d模式:磁盘状态模式
image.png
RDDSK:过去10S进程读磁盘的数据量
WRDSK:过去10S进程写磁盘的数据量
DSK:过去10S进程所占磁盘的百分比
CMD:进程名
**p模式:**进程状态模式,同一个名称的进程显示一列,根据进程名进行分组显示
image.png

v模式:线程状态模式
image.png
u模式:用户模式
根据用户进行分组显示
image.png

丰富的查看方式

进程视图
       'g'  - generic info (default)  #通用信息(默认)
       'm'  - memory details         #内存详细信息
       'd'  - disk details                #磁盘详细信息
       'n'  - network details          #网络详细信息
       'e'  - GPU details                #GPU详细信息
       's'  - scheduling and thread-group info   #调度和线程详细信息
       'v'  - various info (ppid, user/group, date/time, status, exitcode)  #其他详细信息(PPID、用户/组、日期/时间、状态、退出代码)
       'c'  - full command line per process              #每个进程的命令详细信息
       'o'  - use own output line definition             #自定义
按以下顺序对进程列表排序:
       'C'  - cpu activity        #CPU
       'M'  - memory consumption #内存
       'D'  - disk activity  #磁盘
       'N'  - network activity  #网络
       'E'  - GPU activity   #GPU
       'A'  - most active system resource (auto mode)  #最活跃的系统资源(自动模式)
累计:
       'u'  - total resource consumption per user  #每个用户的总资源消耗
       'p'  - total resource consumption per program (i.e. same process name) #每个程序的总资源消耗(即相同的进程名)
       'j'  - total resource consumption per container #每个容器的总资源消耗
进程选择 (标题行中显示的键):
       'U'  - focus on specific user name              #(正则表达式) 特定的用户名
       'P'  - focus on specific program name        #(正则表达式) 特定的程序
       'J'  - focus on specific contained id (CID)   # 特定的ID
       '/'  - focus on specific command line string #(正则表达式) 特定的命令行
       'I'  - focus on specific process id (PID) #特定的PID

小结

本文对Linux监控工具atop做了介绍,讲解了atop的安装、启动、配置,对atop使用中的部分信息做了详细解释,简单介绍了几种视图,最后讲解了下其他丰富的atop查看方式,大家可以根据自己的需要去查看相应的条件。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux 是一个开源的操作系统,与其他操作系统一样,它可以通过命令行或者图形界面进行管理和操作。在 Linux 中,磁盘驱动器被视为文件,可以通过文件系统中的挂载点访问。下面是一些常见的 Linux 磁盘管理命令: 1. df 命令:用于查看磁盘空间的使用情况,包括磁盘总容量、已使用的容量和可用的容量等。 示例:`df -h`,以易读的方式显示磁盘空间使用情况。 2. du 命令:用于查看文件或目录的大小,可以用来找出磁盘空间占用过大的文件或目录。 示例:`du -sh /path/to/directory`,查看指定目录的大小。 3. fdisk 命令:用于对磁盘进行分区和管理,可以创建、删除、修改分区等。 示例:`fdisk -l`,列出所有磁盘分区的信息。 4. mkfs 命令:用于创建文件系统,可以将磁盘分区格式化为指定的文件系统类型。 示例:`mkfs.ext4 /dev/sda1`,将 /dev/sda1 格式化为 ext4 文件系统。 5. mount 命令:用于挂载文件系统到指定的挂载点,使得文件系统可以被访问。 示例:`mount /dev/sda1 /mnt/data`,将 /dev/sda1 挂载到 /mnt/data 目录下。 6. umount 命令:用于卸载已经挂载的文件系统,使得该文件系统不再被访问。 示例:`umount /mnt/data`,卸载 /mnt/data 目录下的文件系统。 以上是一些常用的 Linux 磁盘管理命令,可以帮助管理员进行磁盘管理和维护工作。 ### 回答2: 在Linux系统中,可以使用一些常用的命令来监控磁盘使用情况。以下是几个常见的命令: 1. `df`命令:用于显示文件系统的磁盘空间利用率。运行`df`命令可以显示所有已挂载的文件系统及其使用情况。其中,`df -h`可以以人类可读的方式显示文件系统的使用情况,`df -i`可以显示文件系统的inode使用情况。 2. `du`命令:用于估算文件或目录的磁盘空间使用量。可以使用`du`命令来查看特定文件或目录的磁盘空间使用情况,例如`du -sh /path/to/directory`可以以人类可读的方式显示目录的磁盘使用情况。 3. `iotop`命令:用于监视磁盘I/O活动,即实时显示磁盘I/O数据。运行`iotop`命令可以显示各个进程的磁盘I/O使用情况,包括读写速度和进程名称。 4. `atop`命令:用于监控系统资源的使用情况,包括磁盘I/O。运行`atop`命令可以显示各个进程的磁盘I/O使用情况,包括读写速度和进程名称,还可以查看磁盘的使用情况。 5. `sar`命令:用于系统性能监控和报告。运行`sar -d`命令可以查看系统磁盘的使用情况,包括磁盘读写速度、I/O等待时间等。 这些命令提供了不同的方式来监视和分析磁盘使用情况,可以根据具体需求选择合适的命令进行使用。通过监控磁盘使用情况,可以及时发现并解决磁盘空间不足或磁盘I/O繁忙的问题,确保系统的稳定和正常运行。 ### 回答3: 在Linux系统中,可以使用一些命令来监控磁盘使用情况。 1. df命令:df命令用于显示磁盘文件系统的整体磁盘使用情况。使用命令"df -h"可以以易读的方式显示磁盘空间的使用情况,包括总磁盘空间、已用空间、可用空间和已用百分比。 2. du命令:du命令用于显示目录或文件的磁盘使用情况。使用命令"du -h"可以按易读的方式显示指定目录或文件的磁盘使用情况,包括磁盘空间占用、子目录或文件的大小等信息。 3. iostat命令:iostat命令用于监控系统的磁盘I/O情况。使用命令"iostat -x"可以显示磁盘设备的磁盘传送率、响应时间和队列长度等信息,帮助了解磁盘的读写性能。 4. top命令:top命令用于实时查看系统的资源占用情况。在top命令的输出中,可以通过按下"d"键来按磁盘I/O排序,从而查看磁盘读写操作的情况。 5. sar命令:sar命令用于收集和报告系统活动信息。使用命令"sar -d"可以查看系统的磁盘活动信息,包括磁盘读写速率、I/O请求数量和平均响应时间等。 以上这些命令可以帮助管理员实时或定期监控系统的磁盘使用情况,及时发现磁盘空间不足、磁盘性能下降等问题,并采取相应的措施进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaixing_0307

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值