LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1481|回复: 8

swap使用为0

[复制链接]
发表于 2008-12-3 11:34:45 | 显示全部楼层 |阅读模式
我的机器Core2 2.2主频 1G RAM,装系统的时候依据在ubuntu下的经验没有分swap分区。装完后启动compiz firefox等软件会出现系统突然卡一下的情况,卡的时间很短1、2秒钟。

开系统监视看了一下内存工作在90%多,应用程序占50%-60%,系统缓存占35%左右,卡的时候CPU有一个核会瞬间达到100%,我想应该是在为应用程序清理内存空间。

问题确认于是准备加一个swap文件做缓冲,在/home下用dd命令建了一个512M大小的swapfile,mkswap初始化,swapon /home/swapfile启用交换文件。但是问题依旧,还是会卡一下。用top命令看状态swap 5xxxxxx used 0 free space 5xxxxx(具体记不住了,大概是这样)。不管开多少程序used永远都是0。

google了一下找不到解决方法。有人遇到类似的问题,但都没有答案,回贴的大部分都是在说swap的大小或者说1G RAM可以不用swap云云。

我感觉是不是还要对内核进行设置,因为装系统时没有设置swap,在配置内核时也就没有启用相关的参数,所以现在就算加上了swap系统也不会自动去使用。

BTW: 后来我在fstab中加上了swap,让swap在系统开机时就启用。看启动时的信息有“Activetive Swap"文字的输出,但进入系统后swap的used还是一直为0,系统照卡不务
发表于 2008-12-3 11:49:09 | 显示全部楼层
貌似内存占用不接近100%,linux内核是绝不会使用swap的,不像windows
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-3 11:53:34 | 显示全部楼层
我开了N多个mplayer同时播放视频,直到mplayer再也打不开为止,系统监视器和top都显示内存已经满了,但swap还是used 0,郁闷。
回复 支持 反对

使用道具 举报

发表于 2008-12-3 11:55:30 | 显示全部楼层
强烈怀疑你swap挂上了没,贴一下free
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-3 12:52:38 | 显示全部楼层
swap肯定是挂上了,free有显示 ,没挂上的话top也不会有显示的
现在在公司,没在家,等回家才能贴上来free的结果
回复 支持 反对

使用道具 举报

发表于 2008-12-3 20:13:49 | 显示全部楼层
你确定你所说的"卡" 不是 硬盘的问题???
查一下硬盘吧  IDE硬盘要开启DMA sata的看看一下libata 是不是cpu占用过高 貌似某个版本的内核libata 有bug

硬盘IO操作的时候 cpu也有可能会达到100%

你的问题 根本不是什么swap的问题 也不是内存不够用的问题

换个内核 查下硬盘 内存  也有可能是硬件问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-4 10:52:04 | 显示全部楼层
笔记本 SATA硬盘,硬件能确保正常也没有什么特殊设备,在ubuntu和XP下无问题
昨晚上仔细看了一下LINUX的内存使用策略,这种应该是正常情况。会瞬间卡一下应该是内存不足(装东西比较多 lighttpd mysql compiz firefox jre都是内存大户)
今天晚上回家把cache设置一下试试,明天来报结果
回复 支持 反对

使用道具 举报

发表于 2008-12-4 18:27:21 | 显示全部楼层
内存不用完,永远都不会用你的 swap 的。
如果用到了 swap,你的系统只有比现在更慢,你想想吧,那会就不止 cpu 占用了,还有磁盘的 io 占用。

开 compiz 的时候,不止内存cpu很重要,你的显卡也很重要。烂显卡怎么都块不了的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-4 21:06:17 | 显示全部楼层
调整了的缓存策略,现在系统缓存由原来占用内存35%左右减少到11%,腾出了更多空间给应用程序,情况有所好转,但偶尔还是有卡的状况出现,现在开始怀疑是不是我的省电策略有问题,接着查。顺便贴一下如何调整linux下系统的缓存策略。

proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
free.

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to
free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >
/proc/sys/vm/drop_caches.

Because this is a non-destructive operation and dirty objects
are not freeable, the user should run sync(8) first.

顺带提一下,我的本是Core2 主频2.2,1G内存,2400XT独显128M显存,250G SATA硬盘。虽然不是极品配置,但在XP下跑孤岛危机中等画质不卡,跑个魔兽什么的不成问题,而且我的配置跟在ubuntu下是一样的,臃肿的ubuntu不卡到了瘦身优化过的arch下却开始卡了,肯定是配置哪有问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表