计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
文档首页/ 弹性云服务器 ECS/ 故障排除/ 操作系统类(Linux)/ 怎样配置Linux分析工具:atop和kdump

怎样配置Linux分析工具:atop和kdump

更新时间:2024-08-15 GMT+08:00

atop简介

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

atop安装前准备

  • 云服务器已绑定弹性公网IP。
  • 云服务器可以访问yum软件源。

CentOS 7/8、AlmaLinux、 Rocky Linux系列操作系统配置atop

  1. 执行以下命令,安装atop。

    yum install -y atop

  2. 编辑配置文件,修改采样周期。

    vi /etc/sysconfig/atop

    修改如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
      LOGINTERVAL=15
      LOGGENERATIONS=3 
  1. 启动atop服务。

    systemctl start atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - Atop advanced performance monitor 
     Loaded: loaded (/usr/lib/systemd/system/atop.service; enabled; vendor preset: disabled) 
     Active: active (running) since Sat 2024-03-6 11:49:47 CST; 2h 27min ago 

CentOS 6系列操作系统配置atop

  1. 执行以下命令,安装atop。

    yum install -y atop

  2. 编辑配置文件,修改采样周期。

    vi /etc/sysconfig/atop

    修改如下配置参数,修改后保存并退出。

    LOGINTERVAL默认是600,可以修改成15,单位秒。

    LOGINTERVAL=15

    vi /etc/logrotate.d/atop

    修改如下配置参数,修改后保存并退出。

    默认atop日志保存周期为40天,可以根据实际修改“-mtime”的值为3,单位为天。

        postrotate
          /usr/bin/find /var/log/atop/ -maxdepth 1 -mount -name atop_\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\[0-9\]\* -mtime +3 -exec /bin/rm {} \;
        endscript
  3. 启动atop服务。

    service atop start

  4. 检查是否启动成功,is running 表示运行正常。

    service atop status

    atop (pid 3170) is running

Ubuntu 20/22、Debian 10/11系列操作系统配置atop

  1. 执行以下命令,安装atop。

    apt-get install -y atop

  2. 编辑配置文件,修改采样周期。

    vi /etc/default/atop

    修改如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
      LOGINTERVAL=15
      LOGGENERATIONS=3 
  1. 启动atop服务。

    systemctl start atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - Atop advanced performance monitor 
     Loaded: loaded (/etc/init.d/atop; bad; vendor preset: disabled) 
     Active: active (running) since Sat 2024-03-11 14:09:47 CST; 16s ago

Ubuntu 18、Debian 8/9系列操作系统配置atop

  1. 执行以下命令,安装atop。

    apt-get install -y atop

  2. 编辑配置文件,修改采样周期。

    vi /usr/share/atop/atop.daily

    修改如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,可以根据实际修改“-mtime”的值为3,单位为天。
      LOGINTERVAL=15
      ……
      ( (sleep 3; find $LOGPATH -name 'atop_*' -mtime +3 -exec rm {} \;)& ) 
  1. 启动atop服务。

    systemctl start atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - Atop advanced performance monitor 
     Loaded: loaded (/etc/init.d/atop; bad; vendor preset: disabled) 
     Active: active (running) since Sat 2024-03-6 14:09:47 CST; 15s ago 

Ubuntu 16系列操作系统配置atop

  1. 执行以下命令,安装atop。

    apt-get install -y atop

  2. 编辑配置文件,修改采样周期。

    vi /etc/default/atop

    修改如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,不支持修改。
      LOGINTERVAL=15
  1. 启动atop服务。

    systemctl start atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - LSB: Monitor for system resources and process activity
       Loaded: loaded (/etc/init.d/atop; bad; vendor preset: enabled)
       Active: active (running) since Mon 2024-04-29 19:33:22 CST; 38s ago

SUSE 15、SUSE 12系列操作系统配置atop

  1. 下载atop源码安装包。

    wget https://www.atoptool.nl/download/atop-2.6.0-1.src.rpm

  2. 执行以下命令安装源码atop。

    rpm -ivh atop-2.6.0-1.src.rpm

  3. 安装编译atop依赖软件包

    zypper -n install rpm-build ncurses-devel zlib-devel

  4. 执行以下命令编译atop

    cd /usr/src/packages/SPECS

    rpmbuild -bb atop-2.6.0.spec

  5. 执行以下命令安装atop

    cd /usr/src/packages/RPMS/x86_64

    rpm -ivh atop-2.6.0-1.x86_64.rpm

  6. 编辑配置文件,修改采样周期。

    vi /etc/default/atop

    修改如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
    LOGINTERVAL=15
    LOGGENERATIONS=3 
  1. 重启atop服务。

    systemctl restart atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - Atop advanced performance monitor 
     Loaded: loaded (/usr/lib/systemd/system/atop.service; enabled; vendor preset: disabled) 
     Active: active (running) since Sat 2021-06-19 16:50:01 CST; 6s ago

使用源码方式安装(适用于CentOS Stream 9、openEuler、EulerOS等系列操作系统)

  1. 下载atop源码。

    wget https://www.atoptool.nl/download/atop-2.6.0.tar.gz

  1. 执行以下命令解压源码atop。

    tar -zxvf atop-2.6.0.tar.gz

  2. 执行以下命令查看systemctl版本。

    systemctl --version

    如果版本大于等于220,直接进行下一步。

    否则需要修改atop的Makefile文件,删除--now参数。

    vi atop-2.6.0/Makefile

    删除systemctl命令后的--now参数

                    then   /bin/systemctl disable  atop     2> /dev/null; \
                            /bin/systemctl disable  atopacct 2> /dev/null; \
                            /bin/systemctl daemon-reload;                   \
                            /bin/systemctl enable   atopacct;          \
                            /bin/systemctl enable   atop;              \
                            /bin/systemctl enable   atop-rotate.timer; \
  3. 安装编译atop依赖软件包。
    • SUSE12、SUSE15系列操作系统执行以下命令安装:

      zypper -n install make gcc zlib-devel ncurses-devel

    • EulerOS、Fedora系列操作系统执行以下命令安装:

      yum install make gcc zlib-devel ncurses-devel -y

    • Debian9、Debian10、Ubuntu系列操作系统执行以下命令安装:

      apt install make gcc zlib1g-dev libncurses5-dev libncursesw5-dev -y

  4. 执行以下命令编译并安装atop。

    cd atop-2.6.0

    make systemdinstall

  5. 编辑配置文件,修改采样周期。

    vi /etc/default/atop

    添加如下配置参数,修改后保存并退出。

    • LOGINTERVAL默认是600,可以修改成15,单位秒。
    • 默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为3,单位为天。
      LOGOPTS=""
      LOGINTERVAL=15
      LOGGENERATIONS=3
      LOGPATH=/var/log/atop 
  1. 重启atop服务。

    systemctl restart atop

  2. 检查是否启动成功,active(running) 表示运行正常。

    systemctl status atop

    atop.service - Atop advanced performance monitor    Loaded: loaded(/lib/systemd/system/atop.service; enabled)    Active: active (running) since Sun2021-07-25 19:29:40 CST; 4s ago .

分析atop日志

atop启动后,会将采集记录存放在/var/log/atop目录下的日志文件中。

执行如下命令,查看日志文件。

atop -r /var/log/atop/atop_2024XXXX

  • atop常用命令
    打开日志文件后,您可以使用以下命令筛选数据。
    • c:按照进程CPU使用率进行降序筛选。
    • m:按照进程内存使用率进行降序筛选。
    • d:按照进程磁盘使用率进行降序筛选。
    • a:按照进程资源综合使用率进行降序筛选。
    • n:按照进程网络使用率进行降序筛选。
    • t:跳转到下一个监控采集点。
    • T:跳转到上一个监控采集点。
    • b:指定时间点,格式为YYYYMMDDhhmm。
  • 系统资源监控字段含义

    下图为部分监控字段以及数值,具体数值根据采样周期和atop版本有所不同。下图仅供参考,具体数据以您实际数据为准。

    图1 系统资源监控字段
    主要参数说明如下:
    • ATOP 行:主机名、信息采样日期和时间点。
    • PRC 行:进程整体运行情况。
    • #sys 及 user:内核态和用户态所占 CPU 的时间值。
    • #proc:进程总数。
    • #zombie:僵死进程的数量。
    • #exit:采样周期期间退出的进程数量。
    • CPU 行:CPU 整体(即多核 CPU 作为一个整体 CPU 资源)的使用情况。CPU 行的各字段数值相加结果为 N*100%,N 为 CPU 核数。
    • #sys 及 user:内核态和用户态所占 CPU 的时间比例。
    • #irq:CPU 被用于处理中断的时间比例。
    • #idle:CPU 处在完全空闲状态的时间比例。
    • #wait:CPU 处在进程等待磁盘 IO ,导致 CPU 空闲状态的时间比例。
    • CPL 行:CPU 负载情况。
    • #avg1、avg5 和 avg15:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量。
    • #csw:指示上下文交换次数。
    • #intr:指示中断发生次数。
    • MEM 行:内存的使用情况。
    • #tot:物理内存大小。
    • #free:空闲的物理内存大小
    • #cache :用于页缓存的内存大小。
    • #buff:用于文件缓存的内存大小。
    • #slab:系统内核占用的内存大小。
    • SWP 行:交换空间的使用情况。
    • #tot:交换区总量。
    • #free:空闲交换空间大小。
    • DSK 行:磁盘使用情况,每一个磁盘设备对应一列。如果有 sdb 设备,那么增加一行 DSK 信息。
    • #sda:磁盘设备标识。
    • #busy:磁盘忙时比例。
    • #read 及 write:读、写请求数量。
    • NET 行:多列 NET 展示了网络状况,包括传输层(TCP 和 UDP)、IP 层以及各活动的网口信息。
    • #xxxxxi:各层或活动网口收包数目。
    • #xxxxxo:各层或活动网口发包数目。
  • 停止 atop

    atop运行会占用额外的系统和磁盘资源,不建议在业务环境下长期运行,您可在问题排查完成后,执行以下命令停止atop。

    systemctl stop atop

    CentOS 6执行以下命令停止atop。

    service atop stop

配置kdump使用须知

配置kdump的操作适用于EulerOS以及CentOS 7系列Linux产品, 且云服务器的虚拟化类型为KVM。了解更多

kdump简介

kdump是系统崩溃的时候,用来转储运行内存的一个工具。系统一旦崩溃,内核就无法正常工作了,这个时候将由kdump提供一个用于捕获当前运行信息的内核,该内核会将此时内存中的所有运行状态和数据信息收集到一个dump core文件中以便之后分析崩溃原因。

配置kdump操作步骤

  1. 查看是否已经安装kexec-tools。

    rpm -q kexec-tools

    如果没有安装,则执行下面命令安装。

    yum install -y kexec-tools

  2. 开启kdump默认启动。

    systemctl enable kdump

  3. 设置craskkernel参数,设置这个参数的目的是预留内存给capture kernel。

    首先查看参数是否已经设置。

    grep crashkernel /proc/cmdline

    如果有显示,则表示已经设置,如果没有显示,则需要重新设置。

    设置crashkernel,编辑/etc/default/grub文件。
    GRUB_TIMEOUT=5
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel00/root rd.lvm.lv=rhel00/swap
    rhgb quiet"
    GRUB_DISABLE_RECOVERY="true"

    找到GRUB_CMDLINE_LINUX参数,添加crashkernel=auto,其他内容不变。

  4. 执行grub命令,使以上配置生效。

    grub2-mkconfig -o /boot/grub2/grub.cfg

  5. 打开/etc/kdump.conf文件中找到“path”参数,添加以下内容。
    path  /var/crash

    默认是保存在/var/crash目录下,如果要保存到其他目录,则改成对应的目录,

    例如保存在/home/kdump下,则改成:
    path  /home/kdump
    说明:

    要确保指定的路径有足够的空间保存vmcore,建议剩余空间不小于RAM大小;也可以保存在SAN,nfs等共享设备上。

  6. 设置转存vmcore级别。

    修改/etc/kdump.conf文件,添加如下参数,如果存在则无需添加。

    core_collector makedumpfile -d 31 -c

    -c表示压缩vmcore文件,

    -d表示过滤掉部分无效的内存数据,可以根据需要调整,一般31即可,31是由如下的值与计算而成。

    zero pages   = 1
    cache pages   = 2
    cache private = 4
    user  pages   = 8
    free  pages   = 16
  7. 执行如下命令重启系统,使以上配置生效。

    reboot

检查kdump配置是否生效

  1. 执行以下命令,确认回显信息中crashkernel=auto

    cat /proc/cmdline |grep crashkernel

    BOOT_IMAGE=/boot/vmlinuz-3.10.0-514.44.5.10.h142.x86_64 root=UUID=6407d6ac-c761-43cc-a9dd-1383de3fc995 ro crash_kexec_post_notifiers softlockup_panic=1 panic=3 reserve_kbox_mem=16M nmi_watchdog=1 rd.shell=0 fsck.mode=auto fsck.repair=yes net.ifnames=0 spectre_v2=off nopti noibrs noibpb crashkernel=auto LANG=en_US.UTF-8
  2. 执行以下命令,并确认回显信息中的配置信息正确。

    grep core_collector /etc/kdump.conf |grep -v ^"#"

    core_collector makedumpfile -l --message-level 1 -d 31
  3. 执行以下命令,并确认回显信息中的配置信息正确。

    grep path /etc/kdump.conf |grep -v ^"#"

    path /var/crash
  4. 执行以下命令,并确认回显信息中的Active的状态为active (exited)。

    systemctl status kdump

    ● kdump.service - Crash recovery kernel arming
    Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
    Active: active (exited) since Tue 2019-04-09 19:30:24 CST; 8min ago
    Process: 495 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
    Main PID: 495 (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/system-hostos.slice/kdump.service
  5. 执行测试命令。

    echo c > /proc/sysrq-trigger

    这会触发kdump,重新启动,并将生成的vmcore文件保存的path参数指定的位置。

  6. 检查vmcore是否生成。

    到所在环境path参数所指定的路径查看是否有vmcore文件生成,例如/var/crash/目录。

    ll /var/crash/

    可以看到生成了一个文件夹,里面有vmcore文件。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容