Atop使用场景

article/2025/9/19 13:43:48

问题:

1、线上容器环境pod报错无法创建本地线程,如下图所示:
在这里插入图片描述
2、日志中出现报错信息 “fork:Cannot allocate memory”。如下图所示:
在这里插入图片描述

可能原因

1、内存不够
2、可能是进程数超限导致。系统内部的总进程数达到了 pid_max 时,再创建新进程时会报 “fork:Cannot allocate memory” 错。

解决思路

1、驱逐pod,先保证业务正常
2、查看实例内存使用率是否过高。
执行命令,查看系统 pid_max 值:sysctl -a | grep pid_max
pid_max 默认值为32768,返回结果如下图所示:
在这里插入图片描述
3、核实总进程数是否超限,并修改总进程数 pid_max 配置。
执行命令,查看系统内部总进程数:pstree -p | wc -l
若总进程数达到了 pid_max,则系统在创建新进程时会报 “fork Cannot allocate memory” 错。
同时你也可以执行 ps -efL 命令,定位启动进程较多的程序。

4、将 /etc/sysctl.conf 配置文件中的 kernel.pid_max 值修改为65535,以增加进程数。修改完成后如下图所示:
在这里插入图片描述
5、执行以下命令,使配置立即生效。
sysctl -p

注:当然这里面一般都不会将 kernel.pid_max 设置的很小,那出现这种情况该怎么办?

现实问题

1、出问题的时候可能为了优先保证服务正常,先简单查看下CPU,进程等相关情况。先驱逐pod,恢复服务
2、因为是宿主机出现问题,所以如果是开发不是运维的话就很难有权限查看到宿主机的一些日志情况,也就无法定位到哪个进程导致的
3、可能出问题的时候有权限的不在现场,等过后再排查,此时日志已经没有了
等等各种情况,那么要在事后分析原因,该如何处理?

事后处理问题依赖工具Atop

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

atop安装

yum install atop -y

配置并启动atop

参考以下步骤,配置 atop 监控周期及日志保留时间。
1、执行以下命令,使用 VIM 编辑器打开 atop 配置文件。
vim /etc/sysconfig/atop
2、按 i 进入编辑模式,修改以下配置:
将 LOGINTERVAL=600 修改为 LOGINTERVAL=30,表示将默认的600s监控周期修改为30s。建议修改为30s,您可结合实际情况进行修改。
将 LOGGENERATIONS=28 修改为 LOGGENERATIONS=7,表示将默认的日志保留时间28天修改为7天。为避免 atop 长时间运行占用太多磁盘空间,建议修改为7天,您可结合实际情况进行修改。
修改完成后如下图所示:
在这里插入图片描述

分析Atop

	atop 启动后,会将采集的数据记录在 /var/log/atop 目录的日志文件中。请获取实际的日志文件名,执行以下命令,查看日志文件并参考 atop 常用命令 及 系统资源监控字段说明 进行分析。atop -r /var/log/atop/atop_2021xxxx

atop 常用命令

您可在打开日志文件后,使用以下命令筛选所需数据:

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

系统资源监控字段说明

下图为部分监控字段以及数值,数值根据采样周期获取,仅作为参考。

在这里插入图片描述
主要参数说明如下:

  • ATOP 行:主机名、信息采样日期和时间点。
  • PRC 行:进程整体运行情况。
    • sys 及 user:CPU 被用于处理进程时,进程在内核态及用户态所占 CPU 的时间比例。
    • #proc:进程总数。
    • #zombie:僵死进程的数量。
    • #exit:Atop 采样周期期间退出的进程数量。
  • CPU 行: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 层以及各活动的网口信息。
    • xxxxxi:各层或活动网口收包数目。
    • xxxxxo:各层或活动网口发包数目。

停止 atop

不建议在业务环境下长期运行 atop,您可在问题排查完成后停止 atop。在 CentOS 7 及以上版本可执行以下命令,停止 atop。
systemctl stop atop


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

相关文章

atop工具使用

atop是linux系统下一款监控系统资源与进程的工具。atop以一定的频率记录系统的运行状态,通过它可以了解系统今生前世。atop采集系统资源「cpu、mem、disk、net」的使用情况及所有进程使用系统资源的情况,定期采集相关数据保存日志文件。可以通过atop.daily文件调整数据采集的…

atop安装和使用

atop就是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中。atop是一款开源软件,目前最新版…

linux 之atop 系统监控工具

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

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的带编译器等工具的版本&#…