linux 内存使用原理,linux中内存使用原理
首先介绍一下linux中内存是如何使用的。
当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存
来使用,也称为Swap。如果给所有应用分配足够内存后,物理内存还有剩余,linux会尽量再利用这些空闲内存,以提高整体I/O效率,其方法是把这部
分剩余内存再划分为cache及buffer两部分加以利用。
从磁盘读取到内存的数据在被相关应用程序读取后,如果有剩余内存,则这部分数据会存入cache,以备第2次读取时,避免重新读取磁盘。当一个应用程序在
内存中修改过数据后,因为写入磁盘速度相对较低,在有空闲内存的情况下,这些数据先存入buffer,在以后某个时间再写入磁盘,从而应用程序可以继续后
面的操作,而不必等待这些数据写入磁盘的操作完成。
如果在某个时刻,系统需要更多的内存,则会把cache部分擦除,并把buffer中的内容写入磁盘,从而把这两部分内存释放给系统使用,这样再次读取cache中的内容时,就需要重新从磁盘读取了。
通过以上分析可以得知,空闲物理内存不多,不一定表示系统运行状态很差,因为内存的cache及buffer部分可以随时被重用,在某种意义上,这两部分内存也可以看作诗额外的空闲内存。swap如果被频繁调用,bi,bo长时间不为0,则才是内存资源是否紧张的依据。
阅读(1918) | 评论(0) | 转发(2) |
linux 内存使用原理,linux中内存使用原理相关推荐
- c语言围棋原理,围棋中的数学原理
围棋是我国传统"四艺"之一,文献所载可以追溯到春秋战国时期.如今,围棋已经变成国际通行的棋种.可是你知道吗,围棋不仅是我国的文化遗产,其中还隐藏着很多有趣的数学小知识. (1)&q ...
- java condition原理_java中Condition接口原理及实现
Condition是在java 1.5中才出现的,它用来替代传统的Object的wait().notify()实现线程间的协作,相比Object的wait().notify(),使用Condition ...
- linux malloc命令,减少 curl 中内存分配操作(malloc)
今天我在 libcurl 内部又做了一个小改动,使其做更少的 malloc.这一次,泛型链表函数被转换成更少的 malloc (这才是链表函数应有的方式,真的). 研究 malloc 几周前我开始研究 ...
- java list原理_Java中ArrayList实现原理
前言 这个分类中,将会写写Java中的集合.集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织.存储数据.这里写的集合,一部分是比较常 ...
- histeq matlab原理,MATLAB中histeq的原理以及自写的具体实现函数
1.什么是直方图? 直方图是数字图像处理中一个简单而重要的常用工具,它从总体上刻画了一幅图像的灰度内容. 具体来说,直方图描述的是图像中具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标 ...
- Java中内存溢出和内存泄露详解
1.内存溢出(OOM) 在程序中导致程序崩溃的两种原因有: ①.空指针.下标越界等异常,这类问题主要原因是因为代码写的有问题 ②.还有一类问题是,代码看着也没有问题,在进行GC时,回收也没有空出足够的 ...
- java内存设置最大内存_JVM中内存的设置和分配(最大内存,总内存,剩余内存的区别)...
1.设置分配的内存大小 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的 ...
- js内存泄露 垃圾回收_Java内存体系结构(模型),垃圾回收和内存泄漏
js内存泄露 垃圾回收 Java内存架构(Java内存模型) 上面是堆的Java内存模型以及Java虚拟机(JVM)中运行的任何Java应用程序的PermGen. 还提供了比率,以使您更好地了解如何在 ...
- 处理导入的原理图库中Designator字体不对的问题
文章目录 前言 一.在原理图库中修改 总结 前言 AD在导入第三方原理图库的时候,有时候会遇到Designator字段的字体或者颜色不对的问题,像下面一样. 这时候可以在原理图中改,但是如何在原理图库 ...
最新文章
- yum使用、单用户模式、救援模式
- 【转】心目中的编程高手
- 安装Apache的步骤
- 『设计模式』电话接线员与中介者模式
- 安装 Alibaba Cloud Toolkit
- 逻辑回归和线性回归区别
- iOS锁屏代码注意使用新接口
- Windows AD域管理软件详解
- Java、JSP网吧自动计费收费管理系统
- 人口普查数据有疑问???
- printf 输出对齐
- 百度杯”CTF比赛(十二月场)
- 字符串处理工具类,主要是针对内容txt对标点符号进行处理-java处理字符串符号工具类实现逻辑
- 【BZOJ2037】Sue的小球(动态规划)
- 按键精灵实现验证码识别
- android studio signingconfigs 打正式包,android signingConfigs打包配置
- 英飞凌 AURIX TC3XX 系列单片机的链接文件
- k8s和docker区别
- Joint Coronary Centerline Extraction and Lumen Segmentation from CCTA CNNTracker and Vascular Grap
- Jenkins的简单使用,小白式教程
热门文章
- 设置 Linux 的 LD_LIBRARY_PATH 变量
- axis2 wsdl2java 使用方式
- shell 删除七日内日志_shell日志删除(超容量自动)
- Shell else if mysql_Shell if else语句(详解版)
- 向量表示 运动抛物线_ALevel物理知识点详解:抛物线运动
- eslint php,ESlint操作步骤详解
- 转子碰磨 matlab,航空科普:什么是航空发动机转子碰磨?
- css的再深入9(更新中···)
- 深入理解JavaScript之Event Loop
- vue菜鸟从业记:完成项目最后一公里之真机测试和打包上线