内存管理区别windows和linux内存管理区别,Linux系统内存管理

当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。这正是Windows和Linux在内存管理上的区别,乍一看,Linux系统吃掉我们的内存(Linux ate my ram),但其实这也正是其内存管理的特点。

下面为使用free命令查看结果

$<2>$ free -m

total      used      free    shared    buffers    cached

Mem:          3834      2952        882          0          2      2096

-/+ buffers/cache:        852      2981

Swap:        3074        23      3051

输出的第二行表示系统内存的使用情况:

Mem: total(总量)= 3834MB,

used(已使用)= 2952MB,

free(空闲)= 882MB,

shared(共享内存)= 0MB,

buffers = 2MB,

cached = 882MB

注:前面四项都比较好理解,buffer 和 cache找不到合适的词来翻译,它们的区别在于:

A buffer is something that has yet to be “written” to disk.

A cache is something that has been “read” from the disk and stored for later use.

即buffer用于存放要输出到磁盘的数据,而cache是从磁盘读出存放到内存中待今后使用的数据。这块内存从操作系统的角度确实被使用,但如果用户要使用,这块内存是可以很快被回收被用户程序使用,因此从用户角度这块内存应划为空闲状态。它们的引入均是为了提供IO的性能。

输出的第三行表示在第二行的基础上-/+ buffers/cache得到的:

– buffers/cache used = Mem used – buffers – cached = 2952MB – 2MB – 2096MB = 852MB

+ buffers/cache free = Mem free + buffers + cached = 882MB + 2MB + 2096MB = 2981MB

操作系统把内存分为三部分:

1、已经被应用使用部分。

2、操作系统用来IO缓冲,可以被释放给应用使用部分。即free命令中”buffers/cached”的内存。

3、未被使用部分。

实验证明:dd if=/dev/zero of=bigfile bs=1M count=1000

du -h bigfile

echo 3 | tee /proc/sys/vm/drop_caches

free -m

time cat bigfile > /dev/null

free -m

time cat bigfile > /dev/null

free -m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值