LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: windrose

到底需不需要swap

[复制链接]
发表于 2004-5-31 22:18:12 | 显示全部楼层
最初由 pinksnoopy 发表
我的swap很少会占用到,除非用oracle或是vmware或是其他大点的才会

我的也是,应用程序多了以后,才用到,一般情况下,没什么用~
发表于 2004-5-31 22:36:39 | 显示全部楼层

我的内存用的很多 已使用是 245 总的是 249

而 SWAP 已使用25 总数是 510
我的是 RH 9.0 KDE  内存是 256 /SDR

一直是这个样子 SWAP 确实是用的很少。我相知到 内存是不是用的高了点。
:!! :!!
发表于 2004-6-1 01:14:22 | 显示全部楼层
最初由 javalee 发表
/dev/shm ,tmpfs, swap,这三者之间的关系?

前两者和swap是没什么关系的概念。swap是为了实现现代操作系统中VM机制的需要(Virtual Memory)。这种机制好处多多,可以虚构一个比现实内存大的多的地址空间(一般只受制于机器字长),然后提供并发同时运行多个程序,而且容许有些程序比内存容量还大。这中间用到一种叫做Demand Paging的技术,即只在运行到需要时才将页面内容从低速介质上读入内存;并且在暂时不需要数据时,将页面从内存调出,存放在外存上。为了实现这个目的,一般会在外存上开辟一段连续的专用空间,专门用来存放暂时从内存调出的数据。在*nix下的这个实现,就是swap。

而tmpfs则完全是另外一回事。swap本质上来说,是觉得内存不够用了,没关系,我们虚拟一下,让一部分硬盘空间来顶替一下——这是用时间来换空间。而tmpfs则不同——我的内存足够大,相反,我有些文件操作需要极高的速度,硬盘不能满足我。比如假如我有2G内存,日常用足够了(1G都有余),但是编译一个软件(比如mozilla)还是慢的要死,因为硬盘访问速度则比内存速度要低几百万倍。这时可以用1G(或多或少,tmpfs可以自己决定,这时它的一个好处——见后文)的内存来虚拟一个分区,在这个分区里面进行文件操作,这样节省了最大头的I/O操作时间,cpu几乎就是全速工作,一般会快个n倍(取决于你的操作是I/O瓶颈还是CPU瓶颈)。一个比较典型的用处就是,将/tmp目录挂载为tmpfs,这样所有的临时文件都是在内存中实现,速度快上几百倍是很正常的。

这个tmpfs可能会让人想到ramfs或者ramdisk之类的东西,其实本质上都一样的。不过ramfs会要求你限制使用的大小,在超出设定值时就告诉你类似“磁盘已满”的错误信息。而tmpfs有个好处,它会自动调整你的虚拟空间所占内存的大小,而在系统内存不足时,则会将tmpfs里的东西转移到swap空间里去。这样使用上有很大的灵活性。

至于/dev/shm,好像glibc 2.2以上会将其挂载为tmpfs,其目录设有粘滞位t,可以当作临时目录用。

一般kernel的文档里面应该有tmpfs的介绍,搜搜tmpfs.txt试试
发表于 2004-6-1 01:18:41 | 显示全部楼层
个比较典型的用处就是,将/tmp目录挂载为tmpfs,这样所有的临时文件都是在内存中实现,速度快上几百倍是很正常的。

这个还是很有效率的~~
谢谢Vel兄的解释 :thank
发表于 2004-6-1 01:22:59 | 显示全部楼层
最初由 Vel 发表
Nick Piggin explained that swap can improve performance no matter how much RAM you have, "well it is a magical property of swap space, because extra RAM doesn't allow you to replace unused memory with often used memory. The theory holds true no matter how much RAM you have. Swap can improve performance. It can be trivially demonstrated."
Nick Piggin解释为什么swap能够增强性能,无论你有大的真实内存,“呃,swap很奇妙,因为,再多的内存也不能提供这样一种功能,即让你将常用的内存页来替换不需要的内存页。这个原理决定了,不管你有多少RAM,swap都能进一步增强你系统的性能,这是很明显的。”

替换(swap)这个词代表高速和低速的一种折衷,这种折衷总是能带来性能提升。而且只能在高速和低速设备之间实现。这就是swap永远不会被更多的内存淘汰掉的原因。
发表于 2004-6-1 01:29:05 | 显示全部楼层
我现在系统上有个/build目录就是tmpfs,一般在里面编译小软件快极了。大点的比如kde我是不敢在里面弄……
发表于 2004-6-1 10:53:42 | 显示全部楼层

请问 tmpfs 怎么挂 挂在那里好呢!

我的是RH 9.0  那具体tmpfs 有必要挂吗?
  怎么挂? 挂到那里好呢?

谢谢!
发表于 2004-6-1 11:05:50 | 显示全部楼层
这里有篇文章,一个tmpfs的实例:
巧用tmpfs加速你的linux服务器

巧用tmpfs加速你的linux服务器
1970-01-01 08:30 am
作者:zhangweibo
来自:Linux知识宝库

今天又学了一招,就是使用虚拟磁盘来存放squid的缓存文件和php的seesion。速度快不少哦!
默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs可以使用您的RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个mkfs之类的命令才能真正地使用它,tmpfs是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
tmpfs有以下优势:
1. 动态文件系统的大小;
2. tmpfs的另一个主要的好处是它闪电般的速度。因为典型的tmpfs文件系统会完全驻留在RAM中,读写几乎可以是瞬间的;
3. tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

好了,讲了一些大道理,大家看烦了吧,还是讲讲我的应用吧:)
首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定:
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
应用实例: 1. squid的缓存目录设置
vi /etc/squid/squid.conf
修改成
cache_dir ufs /tmp 256 16 256
这里的第一个256表示使用256M内存,我觉得http: //www.linuxaid.com.cn/articles/4/4/441672019.shtml里使用ramdisk的方法还不如直接使用 tmpfs,至少每次启动不用mkfs,还可以动态改变大小。这时的/tmp实际就是dev/shm/tmp。
然后重启一下服务,ok,现在所有的squid缓存文件都保存倒tmpfs文件系统里了,很快哦。

2. 对php性能的优化
对于一个访问量大的以apache+php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。
保存seesion的方法很简单了,只要修改php.ini就行了,由于我已经把/dev/stm/tmp与/tmp绑定,所以不改写也行,至于php程序产生的缓存文件那只能改自己的php程序了:)
至于tmpfs的其他应用,我想大家可能通过这篇文章会有所启发。

全文结束
发表于 2004-6-1 12:20:46 | 显示全部楼层
我的内存512M,有1G的SWAP,但是好象重来就没有占用过SWAP (总是剩余100%)。我是按照 “两倍内存” 的古老原则划分的。
发表于 2004-6-1 12:26:39 | 显示全部楼层
tx-cary
用KDE使用炫目主题,开个Konqueror浏览有大量文件的目录,最好还要预览
开机加载gkrellm和ksmoothdock
然后开opera打开10个以上窗口
开rhythmbox加载1000首以上歌曲
开gaim聊QQ
再打开acroread看一个1M以上的pdf
同时把stardict打开取词
如果还没有用到swap再把oo打开
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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