免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jonelaw
打印 上一主题 下一主题

linux内存持续增加的问题! [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-09-17 16:04 |显示全部楼层

  1. 2 2008-09-17 16:01 >free -m
  2.              total       used       free     shared    buffers     cached
  3. Mem:          2017       1966         50          0        337       1238
  4. -/+ buffers/cache:        390       1626
  5. Swap:         2415          0       2415
复制代码


看-/+ buffers/cache之后的值

内存的事不能不较真。。 再看一次确定下:wink:

论坛徽章:
0
2 [报告]
发表于 2008-09-17 16:25 |显示全部楼层

回复 #8 jonelaw 的帖子

占着? 我巴不得他把内存都用了呢...
硬盘的传输速度是多少?内存是多少? 被cache的文件,下次调用的时候就不必去硬盘读取了。

空着内存不用才浪费呢

论坛徽章:
0
3 [报告]
发表于 2008-09-17 16:30 |显示全部楼层
#echo 1 > /proc/sys/vm/drop_caches
可以暂时清空cache,你若喜欢就去清

永久放弃使用cache的办法,容我想想...

论坛徽章:
0
4 [报告]
发表于 2008-09-17 16:56 |显示全部楼层
windows后遗症

论坛徽章:
0
5 [报告]
发表于 2008-09-18 11:14 |显示全部楼层
原帖由 tom0732 于 2008-9-17 22:40 发表

问题是经常出现一种情况用free查看内存才使用几百兆(总共4G的内存),但已经开始使用虚拟内存了.这是怎么回事啊?
按理说有缓存可以重复调用啊.


个人理解.. 没找到太多的理论依据:
当执行一些需要大量内存的软件,内存中暂时不用的数据就有可能被交换到swap。
有一种“SWAP惶恐处理”的机制,大概是说,
当内存使用激增,内存管理系统不知道这种激增会持续多久,也不知道会有多大需求,
当激增达到一个阙值的时候,内存管理系统会提前转移内存中部分数据(非cache)到swap,尽力避免物理内存不足。

而被用做cache的内存,内核是不必担心的,在需要这部份内存的时候,被cache的数据可以立刻丢弃
考虑上面两个原因,系统中仍有内存用做cache,却开始使用swap,是可能的。

关键的一点,cache虽然使用了物理内存,但cache中的数据随时可以被立刻drop掉,
在某种程度上说,被用作cache的内存和空闲状态差别不大。


关于swap的使用,不能单从free命令的swap使用数量来考察,还要结合vmstat中swap的读写情况来考虑。
vmstat命令显示的列表中,“si   so ”下的数值显示了swap的实时读写状况。

  1. # vmstat
  2. procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
  3. r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
  4. 1  0    224  50812 185752 1477916    0    0    42    99   61  136  9  8 82  1

复制代码

[ 本帖最后由 maitr 于 2008-9-18 23:31 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-09-18 23:29 |显示全部楼层
27楼那个回复,继续往下看。。

因为cache的数据可以随时丢弃,所以被cached状态的内存和空闲一样,处于可用状态,有进程申请物理内存,drop掉部分cache信息,立刻就可以把相应的内存空间分配给进程。
而used状态的内存必然要将其中数据交换到swap后才可被重新使用。

那么,当一个应用短时间内消耗大量内存。触发了SWAP惶恐处理机制,怎样调度才是正确的?怎样调度能增加可用的物理内存?
drop掉本来就和空闲无异的cache,还是将暂时不用的数据转移到swap?

论坛徽章:
0
7 [报告]
发表于 2008-09-18 23:37 |显示全部楼层
cache内容随时可以被丢弃,这导致cached状态的内存随时可以变成可用内存,只需要一个drop指令,
这是cache很关键的一种特性。

关于swap,除了作为内存不足时的额外补给,还有一个关键用途,一时想不起了,我去查下

论坛徽章:
0
8 [报告]
发表于 2008-09-19 00:25 |显示全部楼层
在哪找到的。。 差不多就是这东西。。

:em11: 我刚才掉线了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP