【银河麒麟】云平台查看内存占用与实际内存占用不一致,分析处理过程,附代码

1.需求/问题描述

发现云平台查看内存占用与实际内存占用不一致。

2.分析过程

在系统中获取虚拟机内存使用率目前主要有两种方式,一种是通过virsh dommemstat获取,另外一种是通过qga接口获取。由于之前修复界面虚拟机cpu使用率时为qga接口获取,因此主要从qga接口介入查询。

在qga接口中预留了查询vcpu使用率,内存使用率(used/total),网卡等信息查询。

通过上述代码定义,可以使用

virsh qemu-agent-command vm

'{"execute":"guest-band-info","arguments":{"order":"None"}}' --pretty查询到虚拟机vcpu、内存、网卡等相关信息。

在上述返回结果中,可以看到其中包括内存各项信息,有返回内存usage使用率信息,通过对比虚拟机内查询到的内存信息,如下所示

在对比qga返回结果与虚拟机内的内存信息后,qga返回used与系统内used不一致,该处used=系统内used+buff/cache 之和,计算内存使用率均正常。从此时可以判断出qemu源码中计算内存使用率正确。

3.分析结果

根据内存使用率计算方式,以下图为例,根据qga中提供的使用率计算

MemUsage=(used+buff/cache)/total

即:(5482+55706)/63939=0.9569,换算百分比为95.69%,与界面显示内存使用率一致,证明qga获取的内存使用率无误,qemu侧无需修改。

附:内存使用率

如上图,linux系统在free命令后会发现free(剩余)的内存很少,而自己又没有开过多的程序或服务。对于上述的情况,正确的解释是:linux的内存管理机制与windows的有所不同。linux的内存管理机制的思想主要是内存利用率最大化。内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

各字段含义:

total:系统中总的物理内存量。

used:已被使用的内存量,这包括用于系统进程、应用程序和文件系统缓存的内存。

free:未被使用的内存量,这是未被分配给任何进程的空闲内存。

shared:被共享的内存量,这是多个进程共享的内存,如共享库或共享内存段。

buff/cache:用于缓存的内存量,这包括用于文件系统缓存(buffers)和磁盘缓存(cache)的内存。

available:可用内存量,这部分内存可以被应用程序申请使用

free或者top等查询内存信息均来自/proc/meminfo中的数据结构信息

其中MemAvailble:代表当前可用内存,MemFree只是尚未分配的内存,并不是所有可用的内存。有些已经分配掉的内存是可以回收再分配的。比如cache/buffer、slab都有一部分是可以回收的,这部分可回收的内存加上MemFree才是系统可用的内存,即MemAvailable。同时要注意,MemAvailable是内核使用特定的算法估算出来的,并不精确。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCP2515汽车CAN总线支持SPI接口的控制器芯片替代型号DPC15

器件概述 DPC15是一款独立CAN控制器,可简化需要与CAN总线连接的应用。可以完全替代兼容MCP2515 图 1-1 简要显示了 DPC15 的结构框图。该器件主要由三个部分组成: 1. CAN 模块,包括 CAN 协议引擎、验收滤波寄存 器、验收屏蔽寄存器、发送和接…

SpringBoot2+Vue3开发博客管理系统

项目介绍 博客管理系统,可以帮助使用者管理自己的经验文章、学习心得、知识文章、技术文章,以及对文章进行分类,打标签等功能。便于日后的复习和回忆。 架构介绍 博客管理系统采用前后端分离模式进行开发。前端主要使用技术:Vu…

VBA技术资料MF165:关闭当前打开的所有工作簿

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

宠物空气净化器哪家强?希喂、小米、安德迈谁最具性价比?

猫咪掉毛是一种正常的生理现象,每只猫咪都会周期性地更换毛发。但是,当您发现家里的沙发、地毯、衣物、甚至空气中都漂浮着难以清理的猫浮毛时。还是会很烦恼,最重要的是空气中的浮毛如果不及时清理的话长时间停留在空气中会对身体造成一定威…

2021数学建模C题目– 生产企业原材料的订购与运输

C 题——生产企业原材料的订购与运输 思路:该题主要是通过对供应商的供货能力和运送商的运货能力进行估计,给出合适的材料订购方案 程序获取 第一题问题思路与结果: 对 402 家供应商的供货特征进行量化分析,建立反映保障企业生…

Hive期末总结

hive的概念,谁开发的 Apache Hive 是一个Apache 软件基金会维护的开源项目 Facebook贡献 hive是一个基于hadoop的数据仓库工具(对数据汇总查询和分析的工具) hive执行原理 Hive通过给用户提供的一系列交互接口,接收到用户的指令…

IDS Gaia-X Catena-X Manufacturing-X的关系

来源:小盟科普丨Catena-X数据空间在汽车领域落地https://mp.weixin.qq.com/s/Ftp0UGAohsh4ltLn3DylAw

Linux常用基本命令

linux目录 1.查看linux本机ip ip addr 2.新建文件夹 mkdir 文件夹名 3.新建文件 touch 文件名.后缀 4.删除文件 rm 文件名.后缀 5.删除文件 rm -r 文件名 6.不询问直接删除 rm -rf 文件名/文件名/ 7.显示目录下文件,文件夹 作用:显示指定目…

【Apache Doris】如何实现高并发点查?(原理+实践全析)

【Apache Doris】如何实现高并发点查?(原理实践全析) 一、背景说明二、原理介绍三、环境信息四、Jmeter初始化五、参数预调六、用例准备七、高并发实测八、影响因素九、总结 本文主要分享 Apache Doris 是如何实现高并发点查的,以…

【论文阅读】-- Attribute-Aware RBFs:使用 RT Core 范围查询交互式可视化时间序列颗粒体积

Attribute-Aware RBFs: Interactive Visualization of Time Series Particle Volumes Using RT Core Range Queries 摘要1 引言2 相关工作2.1 粒子体渲染2.2 RT核心方法 3 渲染彩色时间序列粒子体积3.1 场重构3.1.1 密度场 Φ3.1.2 属性字段 θ3.1.3 优化场重建 3.2 树结构构建…

Pinia详解

文章目录 简介特点用法1. 安装Pinia2. 注册Pinia Store3. 创建Pinia Store4. 使用Pinia Store 区别 Vuex详解 Pinia是一个基于Vue 3的状态管理库,专为Vue 3设计。它提供了一种简单、直观且可扩展的方式来组织和访问应用程序的状态。Pinia的设计灵感来源于Vuex&#…

199.罗马数字转整数(力扣)

代码解决 class Solution { public:// 定义一个哈希表来存储罗马数字符号及其对应的整数值unordered_map<char, int> res {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000},};// 将罗马数字字符串转换为整数的函数int romanToInt(string s) {int num 0; …

keepalive+nginx高可用架构

目录 一.keepalive简要介绍 1.keepalive相关文件 2.keepalive配置组成 3.keepalive全局配置 4.配置虚拟路由器 5.抢占模式和非抢占模式 抢占模式&#xff08;Preemptive Mode&#xff09; 使用方法&#xff1a; 非抢占模式&#xff08;Non-preemptive Mode&#xff09;…

vue3-openlayers 轨迹回放(历史轨迹)(ol-animation-path实现)

本篇介绍一下使用vue3-openlayers轨迹回放&#xff08;历史轨迹&#xff09;&#xff08;ol-animation-path实现&#xff09; 1 需求 轨迹回放&#xff08;历史轨迹&#xff09;实时轨迹 2 分析 轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;一般是一次性拿到所有…

LabVIEW在核磁共振实验室的应用

​核磁共振&#xff08;NMR&#xff09;实验室在进行复杂的核磁共振实验时&#xff0c;需要一个高效、灵活且易于操作的实验控制和数据采集系统。传统的NMR实验系统往往使用专门的硬件和软件&#xff0c;存在系统封闭、扩展性差、维护成本高等问题。为了解决这些问题&#xff0…

fastadmin框架修改前端时间戳格式的时区

一、上传文件 将 moment-timezone-with-data.js 和 moment-timezone-with-data.min.js 文件上传到项目的 \public\assets\libs\moment\ 文件夹中。 二、配置中引入文件 在 \public\assets\js\require-backend.js 文件中增加所引入文件的配置: moment-timezone-with-data: …

计算机方向国际学术会议推荐

*华中师范大学伍伦贡联合研究院与南京大学联合主办 第三届人工智能、物联网和云计算技术国际会议&#xff08;AIoTC 2024&#xff09; 大会官网&#xff1a;www.icaiotc.net 时间地点&#xff1a;2024年9月13-15日&#xff0c;中国武汉 收录检索&#xff1a;EI Compendex&a…

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测 目录 分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测&#xff0c;…

发动机燃烧仿真|CMCL填补CFD与0维/1维均质反应模型方法间的空白

发动机的研制涉及空气动力、燃烧传热、自动控制等多方面的问题。相比基于物理样机试验的传统涉及方法&#xff0c;数值模拟仿真设计方法大大地节约了研发成本、缩短了研发周期。 对于发动机一维概念设计&#xff0c;CMCL燃烧仿真解决方案可以帮助用户快速准确实现点火、熄火、…

什么是AI绘画?全网最细stable diffusion工作原理讲解!

前言 &#xff08;这篇文章是给那些打算接触AI绘画和还不太了解的人写的&#xff09;什么是AI绘画&#xff1f;什么配置才能AI绘画&#xff1f;要怎样部署文件、输入咒语&#xff1f;你是否有着这样的疑问&#xff0c;在这个系列我会写一下我近一个多月的学习成果&#xff0c;…