0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算内存与非计算内存有什么区别?

璟琰乀 来源:twt企业IT社区 作者:twt企业IT社区 2020-11-04 11:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通俗的说法:

凡是硬盘上有对应的数据,占用的内存,就是非计算内存,非计算内存需要被别的进程用到时,其中的数据无需page out,因为再次需要读取的时候从硬盘文件中拿出来即可。

凡是硬盘上没有数据对应的内存占用叫做计算内存,例如用C写个程序,分配一块1MB的内存,这部分内存不管其中数据是否有意义,硬盘上没有文件对应,叫做计算内存。

以上所谓“硬盘上有无对应数据”的前提是:计算内存、非计算内存是操作系统的分类,所以操作系统知道硬盘上有对应,才叫非计算内存。虽然任何数据库的内存占用绝大部分是磁盘缓冲,按理说其中的数据硬盘上有对应,但是,这些内存是数据库管理的,操作系统只知道这些内存是DBMS主动向操作系统申请的,其中放的什么,操作系统并不知道,所以是计算内存。

breakdown: 计算内存、非计算内存都是指物理内存占用,而物理内存的情况,由于VMM机制,是时刻在变化的,所以只能说某一瞬间,计算内存、非计算内存各占用多少。

● 计算内存:

凡是进程/程序运行中用程序代码向操作系统申请的内存,全部是计算内存,也就是说除非这个程序运行起来,除了自身代码占用的内存,一点额外的内存也不用,否则它几乎必然会造成计算内存占用的。说“几乎”,是因为计算内存、非计算内存都是指物理内存,如果一个程序申请了1MB内存,但一段时间没有用这部分内存,很可能在其他进程需要内存,且物理内存比较紧张时,按照LRU算法(Latest Recently Unused,最近最少使用),被操作系统部分或全部page out到paging space中,如果全部被page out了,可以说这个时刻,此进程没有使用计算内存。换句话说,就是程序申请了1MB内存,那么它在某一时刻占用的计算内存从0字节~1MB都有可能。

进程主动向操作系统申请分配的内存,从程序编码上来看,以C为例,典型的就是malloc,当然,还有程序语言中的隐式分配,反正对于操作系统来说都一样,例如char *string1=“ABCDEFG”; int number=22222; 前者会导致自动向操作系统申请8个字节,后一个会申请一个字(两个字节)

当进程退出,或者意外崩溃,对于操作系统来说,它知道进程不在了,而进程申请的内存,操作系统明确知道是哪些的,在资源回收的过程中,会自动把这个进程申请的内存释放掉,这个过程是很快的。所以我们可以看到:如果计算内存高企,我们把应用一停,也就是把使用计算内存最多的进程停止,计算内存占用率立刻就下来了。

● 非计算内存:

操作系统明确知道这部分内存的用途是放硬盘对应数据的,所以,显然这部分内存不是任何进程可以控制,也就是说不可能一个程序主动要求分配多少非计算内存或者释放多少。这部分完全是操作系统在直接管理:分配、记录状态、使用、释放,其他进程只可能用间接手段影响非计算内存,例如读写文件。

非计算内存我们常见的是如下用途:

——程序代码:当运行程序时,代码初始装入到物理内存的什么地方、重定位到什么地方,是操作系统管理的,它会记住程序代码放在物理内存什么地方,及其对应程序文件的位置。当程序代码占用的page frame需要被其他用途使用时,操作系统直接把这个page frame转给要使用这部分内存的进程,并记录标志,下次要是这个page原来的内容需要被引用,从对应程序文件中的对应位置读取进入物理内存。有些进程的某些计算内存占用是不能被替换的,例如执行VMM管理任务的操作系统核心进程,所以这部分会有操作系统机制设置标志,这个就是常说的pin住某些内存不准替换掉。

——磁盘访问缓冲区:这个不是常说的缓存区,缓存区(英文Cache)的目的是用来提高性能,而缓冲区(英文Buffer),是为了块设备访问特点的要求,比如硬盘块设备、逻辑卷块设备,必须读写的基本单位是一个块,一般是512字节,哪怕你只读写一个字节,也必须一次读进512字节,修改特定的那一个字节,然后再整个512字节块全部写出到硬盘。这就需要缓冲区的存在。缓冲区的总个数,是不固定的,操作系统可以根据同时在访问的块的数量随时调整。

——NFS访问缓冲区,原理基本同上;

——文件系统缓存:这个肯定是每一个字节都有硬盘文件对应的,显然是非计算内存。

限制 AIX 的 nocomp (非计算)内存最大值。

把 AIX 的

minperm% = 20

maxclient% = 80

maxperm% = 80

调整更低。

解决步骤:

查看原来的AIX的 minperm% 、 maxclient% 、 maxperm% 的值。如下:

Root 用户查看:

》vmo –a

minperm% = 20

maxclient% = 80

maxperm% = 80

把 minperm% 设置成 10 , maxclient% 设置成 20 , maxperm% 设置成 20

用 root 命令行执行:

1 、 vmo -p -o minperm%=10

2 、 vmo -p -o maxclient%=20

3 、 vmo -p -o maxperm%=20

备注:

minperm 和 maxperm 参数的值

操作系统通过把在曾经读写的内存页留在实内存一满足不同要求。如果文件页面在它们的页帧被重新分配前被请求,那就节省了输入输出操作。该文件页面可以来自本地的或远程的(如 NFS )系统。

页帧使用的文件相对用于计算的(工作或程序文本)段的文件的比例是松散地受控于 minperm 和 maxperm 的值的:

如果 RAM 中文件页面所占的百分比高于 maxperm ,页面替换的窃取只用于文件页。

如果 RAM 中文件页面所占的百分比低于 minperm ,页面替换的窃取同时用于文件页和计算页。

如果 RAM 中文件页面所占的百分比介于 minperm 和 maxperm 之间,页面替换只窃取文件页,除非文件页的重调入数量大于计算页数。

其中 Noncomp 在 20 %- 80 %之间,此时内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。由于 SGA 属于 Comp 页,数据文件缓存属于 Noncomp 页,而在数据大量访问时,文件缓存页的交换率大于程序页( SGA ),因此大量的 SGA 页面被交换;为避免大量 SGA 页被交换,需要降低 maxperm% 值到 35 %以下,这样就只有文件缓存页面被交换,减少了 SGA 交换的次数。

来源:twt企业IT社区

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 硬盘
    +关注

    关注

    3

    文章

    1366

    浏览量

    60063
  • 计算机
    +关注

    关注

    19

    文章

    7837

    浏览量

    93447
  • 内存
    +关注

    关注

    9

    文章

    3231

    浏览量

    76499
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    内存要取代GPU?HBM之父警告:以英伟达GPU为核心的架构要被颠覆

    主板和CPU成为了主角。   而最近“HBM之父”金正浩教授也语出惊人,提出未来内存将成为主角:“GPU和CPU将会被集成到内存(HBM和HBF)里,沦为内存中的一个组件”。   倒反天罡,在
    的头像 发表于 04-03 09:54 6748次阅读
    <b class='flag-5'>内存</b>要取代GPU?HBM之父警告:以英伟达GPU为核心的架构要被颠覆

    LuatOS的内存分配机制

    不同 LuatOS 硬件平台在内存布局上存在差异,Lua 运行内存、系统内存与 PSRAM 扩展内存的分配方式各有区别。部分型号将系统与脚本
    的头像 发表于 04-16 12:37 83次阅读
    LuatOS的<b class='flag-5'>内存</b>分配机制

    DDR5内存断崖式下跌或引发踩踏式抛货?

    内存
    芯广场
    发布于 :2026年03月30日 15:35:23

    MangoTree Halo Ultra「全新PXI」,标配自动纠错内存#

    内存
    芒果树数字
    发布于 :2026年03月06日 15:59:34

    智能显示模块Flash存储空间有多大?模块的内存有多大?

    智能显示模块Flash存储空间有多大?模块的内存有多大?
    发表于 02-26 09:17

    曙光云发布“HME内存聚变技术”

    了颠覆性解决方案——正式推出“HME内存聚变引擎”(Hyper-Memory Engine),以独家软件技术,打破传统云架构中算力成本与DRAM内存容量的刚性捆绑。 这一技术的推出,实现了云计算底层架构的代际跨越。曙光云研发团队
    的头像 发表于 02-08 16:26 6.1w次阅读

    内存条崩了?涨了十倍的内存颗粒卖给谁?内存芯片接下来怎么玩?

    内存
    芯广场
    发布于 :2026年01月26日 17:48:21

    内存持续涨价,多重信号预警成本压力#内存芯片#涨价#行业#消费电子#AI#

    内存芯片
    jf_15747056
    发布于 :2026年01月08日 18:38:35

    rk基于linux/android内存管理

    一、内存分布   U-Boot 由前级 Loader 加载到 CONFIG_SYS_TEXT_BASE 地址,初始化时会探明当前系统的总内存容 量, 32 位平台上认为最大 4GB 可用(但是不影响
    的头像 发表于 12-15 10:42 287次阅读
    rk基于linux/android<b class='flag-5'>内存</b>管理

    为啥 AI 计算速度这么惊人?—— 聊聊 GPU、内存与并行计算

    提到AI,大家常说它“算得快”,其实是指AI能在眨眼间处理海量数据。可它为啥有这本事?答案就藏在“GPU+高速内存+并行计算”这trio(组合)里。咱们可以把AI要处理的数据,想象成一大堆“小任务
    的头像 发表于 12-05 14:35 1082次阅读
    为啥 AI <b class='flag-5'>计算</b>速度这么惊人?—— 聊聊 GPU、<b class='flag-5'>内存</b>与并行<b class='flag-5'>计算</b>

    内存与数据处理优化艺术

    ,避免了数组索引的额外计算。 选择合适的数据类型同样重要。如果一个变量只需要表示0或1,使用最小所需的数据类型就比使用较大的类型更好,因为它占用内存更少,可能提高缓存利用率。 对于浮点运算,在不需要
    发表于 11-14 07:46

    Credo发布业界首款内存扇出Gearbox

    Weaver,一款内存扇出Gearbox,该产品可显著提升内存带宽和内存密度,优化AI加速器或xPU的计算效率。作为Credo OmniConnect系列的首款产品,Weaver旨在解
    的头像 发表于 11-08 11:01 2462次阅读

    科普:什么AI 内存技术

    AI 内存是一种专为人工智能 (AI) 应用设计的新型内存技术。与传统的通用内存(如 DDR5 或 LPDDR5)不同,AI 内存的核心目标是解决 AI
    的头像 发表于 09-03 15:44 1632次阅读

    工业网关的内存有什么功能

    工业网关的内存是其核心硬件组件之一,承担着保障设备高效、稳定运行的关键作用,具体功能可从以下几个方面详细说明: 一、临时数据存储与处理 实时数据缓存:工业网关需要实时采集来自传感器、PLC(可编程
    的头像 发表于 08-15 10:15 683次阅读

    比肩HBM,SOCAMM内存模组即将商业化

    电子发烧友网综合报道,SOCAMM即Space - Optimized CAMM(空间优化内存模组技术),是由英伟达主导研发的面向AI计算、HPC、数据中心等领域的高密度内存解决方案。如今AI大模型
    的头像 发表于 05-17 01:15 4245次阅读