📄 program-memory-manage.html
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="Edward Fu">
<meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
<title>Freesoft Linux FAQ -- Linux内存管理的介绍</title>
</head>
<body>
liaocheng wrote:
<p>> 宫博士及各位网友:
<br>> 您好!
<br>>
<br>> 按照您的指导,对换分区显示:
<br>> total
used free shared
buffers cached
<br>>
<br>> Mem: 6548
6484 64
2292 104 1504
<br>> -/+ buffers/cache:
4876 1672
<br>>
total used
free
<br>> Swap:
22140 0
22140
<br>> 这说明对换分区一经工作了,只是还没有装任何东西.
<br>> 我 还搞不明白ram的各个分派任务:
<br>> total 是说我的8M ram核心占用1.5
M左右还剩6.5 M .
<br>> used 为什么试用了这么多,被谁吃了.
<br>> shared
buffers cached这几项又是啥意思.
<br>>
<br>> 请您务必告诉俺,要不我看这难受.
<br>>
<br>>
谢谢!!!!
<br>> zixian li
<p>李子宪朋友:您好!
<p>您贴的数据显示您有6548K内存的原因是:
<p>1,您的8兆内存中有中有384K不能用,因此就剩下7808K了。
<br>2,内核常驻内存占用了一点几兆,不可对换。
<p>这样系统有6548K可以使用。其中6484K被用了,64K空闲,2292K
<br>被不止一个进程使用(shared)可能是共享库,104K用于缓冲区,
<br>1504K用于缓存(好象主要是块设备用)。
<p>Linux的内存管理是请求式页面管理,不象DOS将整个作业对换出去
<br>(进来)。因此有些进程可能部分在内存,部分在盘上(虚拟存储器)
<br>这个管理对程序是透明的。
<p>虽然如此但是请将你的工作集限制在你的内存尺寸以内,不然的话系统
<br>效率会降低很多。
<p>宫敏
<p>
<br>----------------------------------------
<br>
<br>我看挺正常的呀,没有什么问题。你用free命令看看减去buffer的存储器量
<br>比较反映真实的情况。你有没有使用磁盘对换空间呢?
<p>Linux的内存管理方式比较不同,系统和用户各占两个G的虚拟地址空间,实际
<br>的限制是你的实存加上对换空间。所有的代码和所需要的数据都在这个地址空间
<br>中进行分配。未被任何进程分配的实存被用作系统的缓冲区和块设备高速缓存使
<br>用。当某些进程要求更多的内存或者新的进程开始调用程序的时候系统首先试图
<br>减少各种缓冲器的尺寸腾出空间给他们使用,当缓冲器的尺寸达到最小值的时候
<br>系统开始进行页面淘汰(LRU算法),遭到淘汰的页面是那些最近最少被使用到
<br>的页面,而不是象有些愚蠢的系统那样把整个进程对换出去。因此有些进程会部
<br>分在盘上,部分在内存。所有活动页面的集合叫做“工作集”。工作集的大小不
<br>应该超过你的实际物理内存的大小,否则会发生系统“抖动”,也就是系统不停
<br>地将页面调进调出,造成运行速度奇慢无比。:-(
<p>有时你会发现内存已经很空了,可是对换区并没有完全释放,这是为什么呢?这
<br>个原因就是那些个页面一直没有被用到。既然没有被用到那么就让他们在盘上待
<br>着吧,尽管内存足以把它们调入但是没有理由让它们进来,那些空间作各种缓冲
<br>器用似乎更合理些。
<p>有些写得不太好的应用程序会造成存储器的泄漏,但是那不是系统的问题而是应
<br>用程序的毛病。这类毛病的典型就是那些“客户/服务器”类型的应用。一些客
<br>户请求服务器增加内存占用但是用完后忘记或者没有能够通知服务器释放那些被
<br>占用的存储器,例如某个X客户加载新字体,用过之后没能够通知X服务器释放那
<br>些字体就退出运行了,这时候X服务器的尺寸就增加了很多,再来一次,又增加很
<br>多。最后没办法只能杀死服务器才能释放被无效占用的内存。这看上去是服务器不
<br>好,泄露存储器,但是实际上是不良客户客户造成的。(我那个中文系统目前就是
<br>这么个不良客户,所以没拿出来)
<p>道理讲了一大堆,你的问题还得具体分析。从你帖的内容上面看没有发现什么进程
<br>的尺寸变大很多。能不能把free胡结果给我看看?一般来说,在半夜的时候那个
<br>crontab要做很多的事情,包括把你的硬盘扫个遍,为你更新文件名数据库,你
<br>下回用locate PartialFfilename就会很快给出包含PartialFilename
<br>的所有文件的完整路径名。这项工作会大量占用内存,有可能改变系统的内存分配
<br>策略,如果多看几天下来没什么大的变化,例如内存不断被占用就不必在意。
<p>不知道我说清楚没有?
<p>已经是早晨了,不行了,我得睡一会儿了。:-)
<p>再见
<p>宫敏
<br>--
<br>----
<br>NT=No Thanks, WWW=World Wide Wait
<br>Does PnP mean "Plug and Pray"?
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -