Saturday, April 12, 2008

linux的tmpfs与windows的ramdisk

在windows上用的是ramdisk,可以把内存作为硬盘用,发觉在上面作压缩等操作很爽啊,把windows的temp文件夹和ie临时文件夹都放上面,开网页速度也有提高,把bt下载暂时存放在ramdisk上再也不用担心有损硬盘了,不过鱼和熊掌不能兼得,现在担心的是BT下到最后一点断电了怎么办?在linux上2.4之前的kernel也使用ramdisk,之后开始在内核中增加了tmpfs的支持,于是直接尝试tmpfs,把gentoo编译时的临时文件夹/var/tmp/portage挂载成tmpfs。

tmpfs和ramdisk有些不同,在windows里我创建了512M的一个ramdisk之后内存就直接被用去了512M,不管你有没有往这个分区放东西,而tmpfs挂载的64M的/tmp并没有一上来就全部用掉64M内存,而是要多少从内存中取多少直到64M。这么看来tmpfs还是比较能够节约内存的,就算分配了2G的tmpfs分区,不往里放东西也不用担心2G内存会白白耗在那里。而且就算装满2G,把这2G东西都删了,那这2G又都还给内存了。

其实这就是ramdisk和tmpfs本质的区别,一个是块设备,而tmpfs是一个文件系统。但tmpfs也有一个问题,因为是文件系统,所以在内存吃紧的时候可能会使用到swap,又回到硬盘了,昏倒。看样子主要关键还是要内存,内存大才是硬道理!但至少巧妙使用ramdisk或者tmpfs可以使得系统速度有很大的提升。

No comments: