帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 百度云
  3. 云服务器 BCC
  4. 运维参考
  5. Linux运维参考
  6. 配置Linux 分析工具atop和kdump

配置Linux 分析工具atop和kdump

  • Linux运维参考
  • 发布于 2025-04-02
  • 0 次阅读
文档编辑
文档编辑

atop

atop是一个功能非常强大的linux服务器监控工具。

它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘、网络)的使用情况和进程运行情况。

并以日志文件的方式保存在磁盘中,服务器出现问题后,我们可以获取相应的atop日志文件进行分析。

安装atop

以centos 7 / 8 为例,运行以下命令:

yum install -y atop

atop配置

atop配置文件为/etc/sysconfig/atop,

参数说明:

LOGINTERVAL:监控周期,单位为秒,默认600s采集一次数据,建议修改为15s。

LOGGENERATIONS:日志保留时间,单位为天。默认保留时间为28天,建议修改为7天,避免大量占用磁盘空间。

LOGPATH:日志保存路径。默认路径为/var/log/atop/ 你可根据实际情况,修改监控周期和日志保留时间。

启动和停止atop

atop安装完成后,默认为停止状态,可执行以下命令启动atop:

systemctl start atop 不建议在生产环境中长时间运行 atop,您可在排查问题完成后停止 atop,命令如下:

systemctl stop atop

分析atop

atop启动后,会将采集到的记录存放在/var/log/atop目录中,通过执行如下命令,查看日志文件。

atop -r /var/log/atop/atop_20210910 atop常用指令如下所示。

c:按照进程CPU使用率进行降序筛选。

m:按照进程内存使用率进行降序筛选。

d:按照进程磁盘使用率进行降序筛选。

a:按照进程资源综合使用率进行降序筛选。

n:按照进程网络使用率进行降序筛选,需要额外安装内核模块才支持,默认不支持。

t:跳转到下一个监控采集点。

T:跳转到上一个监控采集点。

b:指定时间点。

系统资源监控字段说明

image.png

ATOP 行:主机名、采样日期和时间点。

PRC 行:进程整体运行情况。

sys 及 user:进程在内核态及用户态所占 CPU 的时间比例。

#proc:进程总数。

#zombie:僵死进程的数量。

#exit:atop 采样周期期间退出的进程数量。

CPU 行:CPU 整体(即多核 CPU 作为一个整体 CPU 资源)的使用情况。【各字段数值相 加结果为 N00%,N 为 CPU的核数】

sys 及 user:CPU 被用于处理进程时,进程在内核态、用户态所占 CPU 的时间比例。

irq:CPU 被用于处理中断的时间比例。

idle:CPU 处在完全空闲状态的时间比例。

wait:CPU 处在“进程等待磁盘 IO 导致 CPU 空闲”状态的时间比例。

CPL 行:CPU 负载情况。

avg1、avg5 和 avg15:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量。

csw:指示上下文交换次数。

intr:指示中断发生次数。

MEM 行:内存的使用情况。

tot:物理内存总量。

cache :用于页缓存的内存大小。

buff:用于文件缓存的内存大小。

slab:系统内核占用的内存大小。

SWP 行:交换空间的使用情况。

tot:交换区总量。

free:空闲交换空间大小。

PAG 行:虚拟内存分页情况

swin 及 swout:换入和换出内存页数。

DSK 行:磁盘使用情况,每一个磁盘设备对应一列。如果有 sdb 设备,那么增加一行 DSK 信息。

sda:磁盘设备标识。

busy:磁盘忙时比例。

read 及 write:读、写请求数量。

NET 行:多列 NET 展示了网络状况,包括传输层(TCP 和 UDP)、IP 层以及各活动的网口信息。

XXXi:各层或活动网口收包数目。

XXXo:各层或活动网口发包数目。

kdump

kdump 是一种先进的基于 kexec 的内核崩溃转储机制。用来捕获kernel crash(内核崩溃)的时候产生的crash dump。当内核产生错误(系统崩溃、死锁或者死机)时,kdump会将内存导出为vmcore保存到磁盘。

配置kdump

以centos 7 / 8 为例:

安装kexec-tools

查看是否已安装kexec-tools

rpm -qa | grep kexec-tools 如果没有安装,执行下面命令安装kexec-tools。

yum install -y kexec-tools

开启kdump开机启动

systemctl enable kdump

设置craskkernel参数

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

cat /proc/cmdline | grep crashkernel 如果有显示,则表示已经设置,如果没有显示,则需要重新设置。 编辑/etc/default/grub文件

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200 nopti nospectre_v2 nospec_store_bypass_disable"
GRUB_DISABLE_RECOVERY="true"

在GRUB_CMDLINE_LINUX一行添加crashkernel=auto。

更新grub

执行更新grub命令,使配置生效:

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

设置vmcore保存路径

vmcore默认保存在/var/crash目录下,如果要保存到其他目录,可编辑/etc/kdump.conf,修改path一行,将其修改成对应的目录。

path  vmcore_directory

## 请确保指定的路径有足够的空间保存vmcore,建议剩余空间不小于物理内存(RAM)的大小。

设置转存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

设置内核参数

编辑/etc/sysctl.conf,添加以下参数。

kernel.hardlockup_panic=1
kernel.panic=5
kernel.panic_on_oops=1
kernel.softlockup_panic=1
kernel.unknown_nmi_panic=1
kernel.nmi_watchdog=1
---以下为可选参数---
kernel.panic_on_io_nmi=1
kernel.panic_on_warn=1

重启系统

reboot

参考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/kernel_administration_guide/kernel_crash_dump_guide?spm=a2c4g.11186623.0.0.16724472WdlEBD

相关文章

Linux服务器CPU内存跑满问题排查 2025-04-02 17:54

本文介绍了如果在使用服务器的过程中出现卡顿、登录服务器后异常退出等情况,针对服务器内部资源的排查步骤,以Centos7为例。 步骤一 登录服务器 可以通过ssh远程连接服务器,如果无法远程连接,可以使用VNC登录。 步骤二 查看进程占用资源情况 1.执行"top"查看当前CPU、内存资源使用情况。

Linux修改默认远程连接端口 2025-04-02 17:54

本文介绍使用百度智能云公共镜像Linux系统如何修改SSH默认远程端口的方法(含操作指导视频),您可以参考视频中的关键步骤指导,使用智能云产品或是自助解决问题,请点击此处观看视频《Linux修改SSH默认端口号》 说明: 如视频指导中的部分界面元素或操作方式发生变化,请以智能云控制台界面为准。本视频

Centos7安装docker 2025-04-02 17:54

本文介绍如何在Linux操作系统上的安装docker,以CentOS 7为例,其他Linux系统的发行版本,如Ubuntu,Debian,Fedora等,可以自行查询Docker的官方文档 1. 删除旧的Docker版本 可能有些Linux已经预先安装了Docker,但一般版本比较旧,所以可以先执行

fstab配置导致系统启动异常如何处理 2025-04-02 17:54

Linux镜像如何开启或关闭intelCPU漏洞补丁 2025-04-02 17:54

Ubunut16.04订阅扩展安全维护(ESM) 2025-04-02 17:54

2021年04月,Ubuntu 16.04 LTS(Xenial Xerus)将停止为期5年的标准支持维护,百度智能云也将停止Ubuntu 16.04 LTS公共镜像的更新。 Ubuntu 16.04 LTS后续将过渡到扩展安全维护(ESM)的阶段。您可以参考本指导文档,通过Ubuntu订阅服务(U

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1