linux/ubuntu下free查看内存占用大的解释_乌哥的家常菜_百度空间

摘要:
我们使用total1、used1、free1、used2、free2等名称来代表上面统计数据的各值,1、2分别代表第一行和第二行的数据。used1:表示总计分配给缓存使用的数量,但其中可能部分缓存并未实际使用。buffers1:系统分配但未被使用的buffers数量。buffer与cache的区别见后面。cache和buffer的区别:Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。因此,linux内存used的内存大是正常的,不同于windows哦。
大家看看我的内存占用情况:
$ free -m
total used free shared buffers cached
Mem: 1908 1844 64 0 56 689
-/+ buffers/cache: 1098 810
Swap: 3904 0 3904
一开始吓了我一跳,我开了个虚拟机分了512m内存,别的没开啥大程序,怎么那个free就变成64m那么一点儿了。。。后来查了下资料,才知道是这么回事!如下:

总物理内存:1908m,已用了1844m, shard:多个进程共享的内存为0,磁盘缓存的大小为689MB

第二行(mem)的 used/free与第三行(-/ buffers/cache) used/free的区别。

这两个的区别在于使用的角度来看,第二行 是从OS的角度来看,因为对于 OS,buffers/cached 都是属于被使用,所以他的可用内存是15864KB,已用内存是465932KB,其中包括,内核(OS)使用 Application(X, oracle,etc)使用的 buffers cached.

第三行所指的是从应用程序角度来看,对于应用程序来 说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所 以从应用程序的角度来说,可用内存=系统free memory buffers cached.

Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。
系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。
total1: 表示物理内存总量。
used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free1: 未被分配的内存。
shared1: 共享内存,一般系统不会用到,这里也不讨论。
buffers1: 系统分配但未被使用的buffers 数量。
cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
cache 和 buffer的区别:
Cache: 高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周 期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提 高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。
Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢 的设备读入数据时,速度快的设备的操作进程不发生间断。
缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定 期清空缓冲内容(即写如磁盘),也可以通过sync命令手动清空缓冲。举个例子吧:我这里有一个ext2的U盘,我往里面cp一个3M的MP3,但U盘的 灯没有跳动,过了一会儿(或者手动输入sync)U盘的灯就跳动起来了。卸载设备时会清空缓冲,所以有些时候卸载一个设备时要等上几秒钟。
修改/etc/sysctl.conf中的vm.swappiness右边的数字可以在下次开机时调节swap使用策略。该数字范围是0~100,数字越 大越倾向于使用swap。默认为60,可以改一下试试。
两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。
buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字 段放在buffer中保存。
cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。


因此,linux 内存 used的内存大是正常的, 不同于windows哦。

免责声明:文章转载自《linux/ubuntu下free查看内存占用大的解释_乌哥的家常菜_百度空间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql判断表记录是否存在,不存在则插入新纪录SQL Server使用 LEFT JOIN ON LIKE进行数据关联查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker --- (入门必读)

容器 容器就是一个视图隔离、资源可限制、独立文件系统的进程集合。所谓“视图隔离”就是能够看到部分进程以及具有独立的主机名等;控制资源使用率则是可以对于内存大小以及 CPU 使用个数等进行限制。容器就是一个进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及...

嵌入式 Linux下修改MAC地址

Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth0 up 方法二:以上方法一修改后linux重启后MAC又恢复为原来的,为了下次启动时修改后的MAC仍有效,我们可以修改文件file:/etc/rc.d /...

linux 安装nginx

1、检查服务器上是否已安装nginx:nginx -v 2、查看编译参数:nginx -v 3、 查看安装目录:rpm -ql nginx 4、查看配置文件:/etc/logrotate.d/nginx 5、在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。   5.1、rpm包安装的...

JVM 内存布局及 GC 原理

“java 的内存布局以及 GC 原理”是 java 开发人员绕不开的话题,也是面试中常见的高频问题之一。 java 发展历史上出现过很多垃圾回收器,各有各的适应场景,很多网上的旧文章已经跟不上最新的变化。本文详细介绍了 java 的内存布局以及各种垃圾回收器的原理(包括最新的 ZGC),希望阅读完后,大家对这方面的知识不再陌生,有所收获,同时也欢迎大家留...

Linux远程目录挂载

原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/ad99ab1d-1040-45e0-aaf6-f5d69c247862 问题: 1、如何使A服务器的某个目录挂载到B服务器的某个目录下,使其达到B服务下的目录文件一旦变更,...

JVM内存管理:深入垃圾收集器与内存分配策略

http://www.open-open.com/lib/view/open1322743689780.html Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。概述:说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项技术当做Java语言的伴生产物。事实上GC的历史...