【银河麒麟】系统内存使用异常现象分析及建议

1.现象描述

问题机器系统内存占用长时间90%以上,同时伴随着高iowait,在故障时无法ssh登录,同时也影响生产业务。但之后系统内存占用会突然掉下来,在内存自己掉下来后能ssh登录。

2.显示分析

2.1 sa日志分析

查看问题机器3月15日sa日志信息,首先来看问题发生时的系统内存使用情况。如下图所示,可以看到3月15日时系统内存基本已经耗尽,available经常在0K附近徘徊。

继续查看此时内存回收情况,如下图所示,可以看到此时系统的kswapd异步内存回收以及direct同步内存回收都已启用,但仍无法缓解系统内存紧张情况。结合上图的一个内存使用情况,大部分内存都为kbmemused,基本都是进程内存使用,无法被系统内存回收。

下一步查看问题发生时的系统CPU使用情况,如下图所示,可以看到问题发生时系统这边除了内存存在高占用情况,CPU也存在%iowait高,无空闲CPU资源的情况。

具体查看当时的磁盘使用情况,我们发现问题发生时存在大量的磁盘读现象,且磁盘读tps波动和CPU的%iowait波动情况一致,这说明当时CPU资源大都被大量的磁盘读取所使用。

综合上述我们可以看到在发生ssh无法登录、生产业务受影响时,系统的CPU、内存资源基本耗尽,且存在大量的磁盘读任务。

接下来我们来查看故障后的情况,如客户所说在问题发生后系统内存占用突然掉了下来,ssh等也恢复正常。对此我们同样查看sa日志,可以看到在长时间高内存占用后,系统内存使用率突然下降,同时磁盘读、CPU使用也同步降低。

系统内存、磁盘、cpu资源同步降低,这大概率是某些业务应用被终止了从而释放出了资源。对问题环境3月15日、重启后的3月19日以及正常机器3月19日的进程信息,我们发现问题环境3月15日系统资源使用率降低后的环境,java应用进程减少了4个,正常环境和重启后的问题机器都启动了5个java进程,但3月15日系统资源使用率降低后的环境中只剩下了1个。

2.2 问题环境java进程情况分析

如2.1节sa日志分析结果所示,导致问题环境内存、CPU资源基本耗尽的大概率是那几个java应用进程,且从sa日志的磁盘使用信息来看,这些业务进程当时应该在进行大量的磁盘读操作。

查看重启的问题环境机器,我们发现系统默认启动了5个java应用进程,从pstree来看,这些java进程都由同一脚本startserver.sh启动。

查看其进程启动参数,我们发现这些java进程是客户使用的自己编译的jdk1.7.0_67版本,而非麒麟这边的jdk。同时其设置了java进程初始堆内存和最大堆内存为2048M,永久代的最大内存为512MB。

考虑到其他java进程的堆外内存使用,这5个java进程最大可占用12.5G内存以上。再加上其他进程内存占用及各类缓存,在系统总内存为16G的情况下,遇到业务高峰,内存被耗尽是正常现象。如问题环境重启后的的sosreport日志所示,当前系统剩余内存仅剩余35M左右,available为1.8G。后续若是应用内存继续增长、再伴随大量磁盘读业务,很容易再次出现系统资源耗尽,无法ssh、业务受到影响的情况。

2.3 java进程内存使用分析

2.2节中,我们分析认为当前系统内存大小和java进程设置的最大内存使用上限及进程数量不太符合。但除了问题环境外,还有使用同样配置的其他机器未出现问题。对比两边java进程的内存使用情况后我们发现,二者java进程的虚拟内存申请大小基本一致,每个java进程基本都为7G左右,但实际的RSS却有不同,问题环境的java进程现在每个RSS基本为2-2.5G。

而正常环境java进程的RSS基本为1.4-1.6G,这大概率是导致两个环境系统资源使用不同的原因。

3.处理总结

综上所述,通过分析sa日志,我们可知问题环境15号ssh无法登录、业务受到影响的原因为系统内存、CPU资源基本耗尽,同时存在大量的磁盘读业务。对比多个sosreport文件信息后,我们能大致确定15号后续系统内存使用了降低、ssh恢复正常是由于5个java业务进程中4个挂掉了,从而释放了大量空闲内存,降低了磁盘读,缓解了CPU压力。

之后我们通过查看java进程的启动参数,我们发现在当前系统总可用内存不到16G的情况下,单个java进程初始堆内存和最大堆内存为2048M,永久代的最大内存为512MB。考虑到其他java进程的堆外内存使用,这5个java进程最大可占用12.5G内存以上。再加上其他进程内存占用及各类缓存,遇到业务高峰,内存被耗尽是正常现象。对此需要应用方评估java进程的内存使用负载与系统总内存是否匹配。

最后通过对比问题环境和正常环境的java进程内存情况,我们发现在二者java进程虚拟内存基本一致的情况下,问题环境java进程的RSS要明显高出不少。由于当前java进程使用的jdk为客户自己编译的jdk1.7.0_67版本,且实际的java应用内存使用基准、收到业务压力影响等因素均未可知,建议业务组自行对java进程内存使用进行分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/783503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是企业服务总线?它包含哪些技术组件?

我们每个人都会去医院,您描述下我们去医院的场景,然后引出这个挂号流程,通过挂号流程中的一个问题或者什么东西来吸引他的好奇心,这样呢?会比现在的预设场景好一些。我举个例子,人工智能怎么帮人看病。如果…

关于put提交不了参数的解决办法

html中form表单只支持GET与POST请求,而DELETE、PUT等method并不支持, 如图所示 参数请求改成RequestBody,用json格式传参即可解决问题

AI直播手机APP震撼发布!3大场景直播,60秒一键开播!

无需繁琐准备,无需复杂操作,60 秒在抖音及其他平台一键开播,青否数字人AI直播APP正式发布! 3大AI直播类型,6大核心 AIGC 技术,让新手小白也能轻松搞定数字人在全平台直播,并且有效规避违规风险&…

数据跨境法案:美国篇上

近年来随着全球数字化的加速发展,数据已成为国家竞争力的重要基石。在这样的背景下,中国软件和技术出海的场景日益丰富。本系列邀请到在跨境数据方面的研究人员针对海外的数据跨境政策进行解读。 本期将针对美国对数据跨境流动的态度和政策进行阐释。过…

代码随想录算法训练营Day62|冗余连接、冗余连接II

冗余连接 108. 冗余连接 (kamacoder.com) 考虑使用并查集&#xff0c;逐次将s、t加入并查集中&#xff0c;当发现并查集中find(u)和find(v)相同时&#xff0c;输出u和v&#xff0c;表示删除的边即可。 #include <iostream> #include <vector> using namespace s…

游戏开黑语音-使用云服务器部署teamspeak服务(系统Ubuntu 20.04 LTS)

目录 前置物品服务器调整及部署1.重装系统2.换源3.下载teamspeak服务端并部署 连接服务器参考 前置物品 一台云服务器&#xff08;系统&#xff1a;Ubuntu 20.04 LTS) 服务器调整及部署 1.重装系统 在腾讯云官网的主机控制台内&#xff0c;选择重装系统 (由于之前为了快速和…

【收藏】欧盟CE、美国FDA法规及标准查询常用网站

01 CE法规&标准查询网站 医疗器械主管部门的网站 网址: https://www.camd-europe.eu/ 简介: CAMD的全称是Competent authorities for medical devices&#xff0c;翻译成中文叫做医疗器械监管机构&#xff0c;实际上它指的是欧盟成员国医疗器械监管机构的联盟&#xff…

江门数字化mes系统定制哪家好 珠海盈致mes系统服务商

对于江门数字化MES系统的定制服务&#xff0c;选择珠海盈致科技是一个不错的选择。珠海盈致科技是一家专业的智能制造解决方案提供商&#xff0c;具有丰富的数字化制造和MES系统定制经验。以下是选择珠海盈致科技的一些优势&#xff1a; 专业团队&#xff1a;珠海盈致科技拥有一…

Hack The Box-PermX

总体思路 CVE-2023-4220->敏感信息收集->符号链接攻击 信息收集&端口利用 nmap -sSVC permx.htbStarting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-07 21:16 EDT Nmap scan report for permx.htb Host is up (0.24s latency). Not shown: 998 closed tcp po…

为什么要设计DTO类

为什么要使用DTO类&#xff0c;下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时&#xff0c;往往都是对照着产品原型进行分析&#xff0c;因为产品原型比较直观&#xff0c;便于我们理解业务。 后台系统中可以管理员工信息…

供应RTL8366SC-CG瑞昱芯片

标17566722766题 长期供应各品牌原装芯片&#xff1a; RTL8366SC-CG RTL8382L-VB-CG RTL8218D-CG RTL8192EU-VP-CG RTL8821CU-CG RTL8811CU-CG RTL8723DU-CG RTL8723DS-CG RTL8711AM-VB1-CG RTL8111H-VB-CG RTL8111H-CG RTL8211F-CG RTL8211E-VB-CG RTL8733BS…

HW期间——溯源

01 前期准备 001溯源的概念 通过对受害资产与内网流量进行分析一定程度上还原攻击者的攻击路径与攻击手法根据已有的线索&#xff0c;攻击方式以及攻击特征等通过技术手段反查攻击者身份或是组织信息。 描述&#xff1a;完整还原攻击链条&#xff0c;溯源到黑客的虚拟身份&…

算法 - 动态规划

文章目录 介绍解题步骤题型背包问题01背包问题朴素算法&#xff08;递归实现&#xff09;备忘录算法(记忆化搜索)递推求解算法&#xff08;动态规划&#xff09; 连续子段和问题最大连续子序列和最大连续子序列和的最优方案 递推问题斐波那契数列II数塔II上楼II 最长不下降子序…

选项卡切换(排他法、轮转法、轮转法之事件委托)

选项卡需求&#xff1a; tabbar content 两部分的内容一一对应&#xff0c;我们点击某一个tab的时候&#xff0c;该tab的类名设置为on&#xff0c;其他的tab要清除on类名&#xff0c;对应的content的类名要设置为 active &#xff0c;其他的content清除active类名。 <!DOCTY…

vue通过后台返回的数字显示不同的文字内容,多个内容用、隔开

后台返回的数据 显示效果&#xff1a; html&#xff1a; <el-table-columnalign"center"label"使用过的小程序"width"124"v-if"activeTab 0"><template #default"scope"><divv-for"(item, index) in s…

众所周知沃尔玛1P是怎么运营?

​​沃尔玛的1P模式&#xff0c;即第一方供应商模式&#xff0c;是其独特的采购策略。在这种模式下&#xff0c;供应商先将商品卖给沃尔玛&#xff0c;由沃尔玛负责库存管理和销售。沃尔玛通过强大的采购和物流能力控制库存&#xff0c;确保商品品质&#xff0c;为客户提供更加…

【操作系统】进程管理——调度算法(个人笔记)

学习日期&#xff1a;2024.7.4 内容摘要&#xff1a;各种调度算法的思想、规则、优缺点介绍 为什么要有调度算法&#xff1f; 调度算法就好比一群人在银行办理业务&#xff0c;准备办理业务的人就是进程/作业&#xff0c;银行窗口的工作人员就是CPU&#xff0c;进程往往是比C…

旅游计划定制小程序网页模板源码

手机在线旅游定制服务&#xff0c;定制旅游出行app小程序模板。包含&#xff1a;定制介绍、定制表单填写、我的订单等。 旅游计划定制小程序网页模板源码

力扣爆刷第161天之TOP100五连刷71-75(搜索二叉树、二维矩阵、路径总和)

力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09; 文章目录 力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09;一、98. 验证二叉搜索树二、394. 字符串解码三、34. 在排序数组中查找元素的…

idea Git操作

1、代码拉取&#xff08;左上角&#xff09; 或 2、代码push&#xff08;左上角&#xff09; 3、切换分支&#xff08;右下角&#xff09; 4、分支管理 5、当前分支和某一个分支对比差异 6、当前分支某一个提交需要恢复成提交前状态&#xff08;revert&#xff09; 7、其他分…