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

    文章

    1290

    浏览量

    57230
  • 计算机
    +关注

    关注

    19

    文章

    7414

    浏览量

    87704
  • 内存
    +关注

    关注

    8

    文章

    2998

    浏览量

    73877
收藏 人收藏

    评论

    相关推荐

    如何选择DDR内存条 DDR3与DDR4内存区别

    随着技术的不断进步,计算机内存技术也在不断发展。DDR(Double Data Rate)内存条作为计算机的重要组成部分,其性能直接影响到电脑的运行速度和稳定性。DDR3和DDR4是目前市场上最常
    的头像 发表于 11-20 14:24 255次阅读

    内存模组n/a怎么解决?

    一、内存模组n/a问题概述 1.1 内存模组的定义 内存模组,又称为RAM(Random Access Memory),是计算机系统中用于存储数据的硬件设备。它允许处理器快速访问和处理
    的头像 发表于 10-14 10:44 334次阅读

    逻辑内存和物理内存区别

    逻辑内存和物理内存计算机系统中两个重要的概念,它们在计算机的运行和数据处理中起着至关重要的作用。 1. 物理内存(Physical Mem
    的头像 发表于 09-27 15:38 436次阅读

    Cache和内存有什么区别

    Cache(高速缓存)和内存(Memory,通常指主存储器或RAM)是计算机存储系统中两个重要的组成部分,它们在计算机的性能和数据处理中扮演着不同的角色。以下是对Cache和内存之间
    的头像 发表于 09-26 15:28 1011次阅读

    buffers内存与cached内存区别

    free 命令是Linux系统上查看内存使用状况最常用的工具,然而很少有人能说清楚 “buffers” 与 “cached” 之间的区别
    的头像 发表于 07-29 14:17 449次阅读
    buffers<b class='flag-5'>内存</b>与cached<b class='flag-5'>内存</b>的<b class='flag-5'>区别</b>

    内存的种类都有哪些?有什么区别

    内存,作为计算机中不可或缺的组成部分,承担着存储和交换数据的重要任务。随着技术的不断发展,内存的种类也日益丰富,每种类型都有其独特的特点和适用场景。以下是对内存种类及其
    的头像 发表于 07-15 18:15 1w次阅读

    内存容量与类型如何影响计算机性能

    内存的容量与类型作为计算机硬件系统中的重要组成部分,对计算机的整体性能有着至关重要的影响。它们不仅决定了系统能够同时处理的数据量大小,还影响着程序的运行速度、系统的响应能力以及多任务处理的效率。下面,我们将从多个维度深入探讨
    的头像 发表于 07-15 18:05 1867次阅读

    Jtti:新加坡云服务器运行内存和存储内存有区别

    新加坡云服务器 的运行内存(RAM)和存储内存在功能、速度、用途等方面有所区别。以下是它们的主要差异: 一、功能: 运行内存(RAM):主要用于临时存储正在运行的程序和数据,以便CPU
    的头像 发表于 06-25 14:26 430次阅读

    恒讯科技解析:通用型、内存型与计算型的云主机有什么区别

    在云计算中,确实可以根据业务需求选择不同类型的云主机实例,正如选择适合特定旅行的车辆一样。以下是通用型、内存型和计算型云主机的一些特点和适用场景: 一、通用型云主机: 优势:提供均衡的CPU、
    的头像 发表于 06-05 17:29 425次阅读

    寄存器和内存区别

    计算机体系结构中,寄存器和内存是两个至关重要的组成部分。它们各自承担着不同的角色,共同确保计算机系统的正常运行。本文将对寄存器和内存进行详细的介绍,包括它们的定义、功能以及二者之间的
    的头像 发表于 05-12 17:11 1955次阅读

    服务器内存条和普通内存条的区别

    服务器内存条和普通内存条的区别  服务器内存条和普通内存条是计算机中常见的两种
    的头像 发表于 02-19 10:19 8669次阅读

    系统内存和运行内存区别

    区别。 首先,系统内存是指计算机中存储程序和数据的硬件设备,也被称为主存或内存条。它是计算机用来临时存储数据和指令的地方,相当于
    的头像 发表于 01-15 16:32 3087次阅读

    加速计算卡与AI显卡有什么区别

    加速计算卡与AI显卡有什么区别? 加速计算卡与AI显卡是两种不同的硬件设备,它们在设计和功能上有显著区别。本文将详细介绍这两种设备的区别,包
    的头像 发表于 01-09 14:10 1345次阅读

    运行内存12g和16g的区别

    运行内存12g和16g的区别  运行内存计算机中的一种硬件组件,用于存储正在运行的程序和数据。12GB和16GB是两种常见的内存容量,它们
    的头像 发表于 12-25 15:12 1.1w次阅读

    内存溢出与内存泄漏:定义、区别与解决方案

    内存溢出与内存泄漏:定义、区别与解决方案  内存溢出和内存泄漏是计算机科学中常见的问题,在开发和
    的头像 发表于 12-19 14:10 2469次阅读