169
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
怎样配置Linux分析工具:atop和kdump?

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


点击这里点击这里注册天翼云VIP帐号,立即体验云服务器>>>

本文介绍atop和kdump的配置方法。

atop配置

atop简介

  • atop是一款功能非常强大的Linux服务器监控工具。它能定期记录系统运行状态,并采集系统资源(如CPU、内存、磁盘、网络)的使用情况,同时还会监控进程的运行情况。通过将这些数据保存为日志文件的方式,我们可以在服务器出现问题时获取相应的atop日志文件进行详细分析。无论是查看系统资源的使用情况,还是追踪特定进程的运行状况,atop都能提供有用的信息。
  • 使用atop工具,系统管理员可以及时发现服务器的性能瓶颈、异常情况以及资源利用率等问题,从而更好地管理和优化服务器的运行。

CentOS 8系列操作系统atop配置方法

  1. 通过远程登录或本地登录的方式登录弹性云主机。

  2. 下载atop安装包。命令如下。

    # wget https://www.atoptool.nl/download/atop-2.6.0-1.el8.x86_64.rpm
  3. 执行以下命令安装atop。

    # rpm -ivh atop-2.6.0-1.el8.x86_64.rpm
  4. 编辑配置文件,修改采样周期,atop配置文件为/etc/default/atop。

    # vi /etc/default/atop

    可以根据自己的实际需求修改如下配置参数,修改后保存并退出。

    LOGINTERVAL=15
    LOGGENERATIONS=7
    LOGPATH=/var/log/atop/

    参数说明:

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

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

    LOGPATH:日志保存路径。默认路径为/var/log/atop/。

  5. 重启atop服务。

    # systemctl restart atop
  6. 可以设置atop服务自启动(根据实际情况设置)。

    # systemctl enable atop
  7. 检查是否启动成功,active(running)表示运行正常。

    # systemctl status atop

CTyunOS 、CentOS 7、EulerOS、Anolis、KylinOS系列操作系统atop配置方法

  1. 通过远程登录或本地登录的方式登录弹性云主机。

  2. 下载atop安装包。

    # wget https://www.atoptool.nl/download/atop-2.6.0-1.el7.x86_64.rpm
  3. 执行以下命令安装atop。

    # rpm -ivh atop-2.6.0-1.el7.x86_64.rpm --nodeps
  4. 编辑配置文件,修改采样周期,atop配置文件为/etc/default/atop。

    # vi /etc/default/atop

    可以根据自己的实际需求修改如下配置参数,修改后保存并退出。

    LOGINTERVAL=15
    LOGGENERATIONS=7
    LOGPATH=/var/log/atop/

    参数说明:

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

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

    LOGPATH:日志保存路径。默认路径为/var/log/atop/。

  5. 重启atop服务。

    # systemctl restart atop
  6. 可以设置atop服务自启动(根据实际情况设置)。

    # systemctl enable atop
  7. 检查是否启动成功,active(running)表示运行正常。

    # systemctl status atop

使用源码方式安装(适用于Fedora、Debian、Ubuntu等系列操作系统)

  1. 下载atop源码。

    # wget https://www.atoptool.nl/download/atop-2.6.0.tar.gz
  2. 执行以下命令解压源码atop。

    # tar -zxvf atop-2.6.0.tar.gz
  3. 执行以下命令查看systemctl版本。

    # systemctl –version

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

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

    # vi atop-2.6.0/Makefile

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

  4. 安装编译atop依赖软件包。

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

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

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

    # apt install make gcc zlib1g-dev libncurses5-dev libncursesw5-dev –y
  5. 执行以下命令编译并安装atop。

    # cd atop-2.6.0
    # make systemdinstall
  6. 编辑配置文件,修改采样周期,atop配置文件为/etc/default/atop。

    # vi /etc/default/atop

    可以根据自己的实际需求修改如下配置参数,修改后保存并退出。

    LOGINTERVAL=15
    LOGGENERATIONS=7
    LOGPATH=/var/log/atop/
  7. 重启atop服务。

    # systemctl restart atop
  8. 可以设置atop服务自启动(根据实际情况设置)。

    # systemctl enable atop
  9. 检查是否启动成功,active(running)表示运行正常。

    # systemctl status atop

atop结果分析

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

    atop -r /var/log/atop/atop_20230821

    备注:可通过ls /var/log/atop/查看所有生成的日志文件,atop_20230821为其中的一个日志文件。

    atop常用指令如下所示:

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

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

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

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

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

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

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

    b:指定时间点。

  2. 系统资源监控字段说明。
    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简介

  • kdump是Linux系统中一种用于保存系统崩溃时的内存转储(crash dump),以便进行故障诊断和调试的工具。
  • 在Linux系统中,如果遇到严重的内核崩溃或死锁等问题,通常会导致系统无法继续正常运行。为了解决这种情况,kdump允许在系统崩溃时将当前内核的内存转储保存到硬盘上。kdump通过一些特定的配置和设置,可以在系统崩溃时触发一个独立的内核(用作专用的crash内核),该内核能够将系统的内存转储保存到预定义的目录中。这个转储文件可以记录包括内核代码、进程状态、内核堆栈跟踪等信息,使开发人员和系统管理员能够在崩溃发生时进行故障分析和调试。
  • kdump是一种非常有用的工具,它可以帮助我们更有效地诊断系统崩溃问题,定位和解决导致系统异常的根本原因。

kdump使用须知

  1. 系统设置
    要使用kdump功能,您的系统必须满足一些硬件和配置要求:
    • 必须有足够的磁盘空间来存储转储文件。
    • 必须有足够的内存来容纳专用的crash内核。
    • CPU必须支持物理地址扩展(PAE)或64位寻址模式。
  2. 内核配置:您的Linux内核必须正确配置以启用kdump功能。通常,许多发行版都已经为您设置了合适的内核配置。
  3. 专用的crash内核:为了执行转储过程,kdump需要一个独立的crash内核。这个crash内核是一个精简的内核,只包含用于内存转储和调试的必要组件。
  4. 存储位置:您需要选择一个足够大且可靠的存储位置来保存转储文件。这可能是本地磁盘、NFS共享目录或iSCSI设备等。
  5. 网络配置(可选):如果您选择将转储文件发送到远程服务器进行分析,则需要配置网络连接和远程服务器的接收端。

kdump配置方法

以EulerOS以及CentOS 7/8系列Linux产品为例:

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

    # rpm -qa | grep kexec-tools

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

    # yum install -y kexec-tools
  2. 设置kdump开机启动。

    # systemctl enable kdump
  3. 设置crashkernel参数,设置这个参数的目的是预留内存给捕获内核(capture kernel)。
    首先查看该参数是否已经设置。

    # grep crashkernel /proc/cmdline

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

    编辑/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,执行更新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. 设置内核参数(可选)。

    为了控制在哪些场景下触发kdump,内核提供了一些参数,建议设置以下参数:

    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

    将以上配置参数写入/etc/sysctl.conf文件并保存。另外,可以选择添加如下几个参数到/etc/sysctl.conf文件中。

    kernel.panic_on_io_nmi=1

    kernel.panic_on_warn=1

  8. 进入天翼云控制台-云主机详情页,对当前云主机进行重启,使以上配置生效

Kdump配置生效验证

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

    # cat /proc/cmdline |grep crashkernel
  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
  5. 执行测试命令。

    # echo c > /proc/sysrq-trigger

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

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

    # ll /var/crash/

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


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!