linux的内存管理

news/2024/7/20 15:49:35 标签: 内存管理, 操作系统

http://www.linuxeye.com/Linux/1932.html

linux的内存管理

linux的内存分为:物理内存和虚拟内存。
物理内存就是系统硬件提供的内存大小,是真正的内存。
虚拟内存:虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。
使用场景:物理内存不足,linux内核将暂时不用的内存数据写入交换空间,则物理内存得到释放;当需要用到那些数据时,则从交换空间读入物理内存。

常用内存监控命令:top free
free

total: 物理内存总大小
used:已经使用的物理内存大小
free:空闲的物理内存大小
shared:多个进程共享的内存大小
buffers/cached:磁盘缓存的大小

Men:代表物理内存使用情况
buffers/cache:代表磁盘缓存使用情况
swap:代表交换空间使用情况。

从内核的角度看内存的状态:
物理内存大小7820M,空闲内存大小824M。已经使用的内存为7820-824=6996M。可用内存824并不包含buffers和cached。
内核完全控制着内存的使用情况,Linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。

从应用层的角度看内存的状态:
已经使用4093M,可用空间大小3727M。3727=190+2712+824
应用程序可用的物理内存值是Mem项的free值加上buffers和cached值之和,也就是说,这个free值是包括buffers和cached项大小的,对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候,buffers/cached会很快地被回收,以供应用程序使用。

为了降低磁盘读取数据对时间和资源的消耗,linux引入了buffer/cache机制
buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers 与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操 作系统的性能。但buffers与cached缓冲的内容却是不同的

buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。

 

转载于:https://www.cnblogs.com/dongfangzhizi/p/5813004.html


http://www.niftyadmin.cn/n/1157457.html

相关文章

路由问题引起的怪异现象

大家都来写博文,为51CTO大家庭添彩,一起来进步!下面大家一起来看看路由问题引起的故障。故障现象一个C段的IP里有个别服务器出现了以下情况。现象一:能够正常远程桌面连接,ping 外网正常,上网正…

MySQL通过函数获取字符串汉字拼音首字母大写字符串

DELIMITER $$ DROP FUNCTION IF EXISTS Fun_GetPY$$ CREATE FUNCTION HIS.Fun_GetPY (in_string VARCHAR(21845)) RETURNS VARCHAR(21845) CHARSET utf8 BEGIN #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值 DECLARE tmp_…

java 超时锁_java-错误:更改minSdkVersion时超时等待锁定构建文件的构建脚本类缓存...

java-错误:更改minSdkVersion时超时等待锁定构建文件的构建脚本类缓存我尝试在build.gradle(模块:app)中更改minSdkVersion(模块:app)并得到下一个错误:Error:Timeout waiting to lock buildscript class cache for build file E:…

PHP5安装好了,再附加GD库

之前被网上的文档误导(网络上一篇文章总是拷来拷去),导致升级这个拖了二天。如果你用的是centos很简单,用以下方法: 把下面的yum 保存成一个批处理,再给他运行权限yum -y install gdyum -y install gd-deve…

Spring中@Resource与@Autowired

问题 这其实就是Autoware与Resource没有正确的使用,这个错误是因为wmPoiOplogService这个变量装配方式是Resource,按照Resource的按名字查找的方式,并没有找到bean id为wmPoiOplogService的bean所以就报出这个错误。 举个栗子? Bean.java 1 …

java final 使用_Java_final的使用

/*final : 最终。作为一个修饰符,1,可以修饰类,函数,变量。2,被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。3,被final修饰的方法不可以被复写。4,被final修饰的变量…

【转】[你必须知道的.NET] 第四回:后来居上:class和struct

引用自:http://www.cnblogs.com/anytao/category/155694.html作者:Anytao本文将介绍以下内容: • 面向对象基本概念• 类和结构体简介• 引用类型和值类型区别1. 引言提起class和struct,我们首先的感觉是语法几乎相同,…

ASP.NET2.0Theme回顾总结

今天要规划一个项目的UI,重新回顾总计了一下asp.net 2.0下Theme的相关知识: 1.Theme是根目录下App_Themes,必须是这个名称 2.App_Themes下一级的每一个子文件夹为一个Theme 3.每个Theme文件夹下可以包含skin 文件、css 文件、图片文件、XML 文件、脚本文件以及子文件夹等。 The…