前些时间看到有人在说用虚拟硬盘创建数据库,存放文件等等,就到网上找了有关这方面的知识。
概念
所谓虚拟硬盘就是用内存中虚拟出一个或者多个磁盘的技术。
内存的速度要比硬盘快得多,就要利用这一点,在内存中虚拟出一个或多个硬盘就可以加快磁盘的数据交换速度,从而提高电脑的运行速度。
从上面我们可以看出:所谓“虚拟”有二:其一所谓“虚拟”首先是假的,其次是能够起到所虚拟的硬盘的功能。虚拟硬盘的目的无非是为了速度牺牲一些容量。
虚拟硬盘主要作用
1.增加访问速度
2.减少目录层次
其实当你从软盘启动电脑(比如用windows98的启动盘启动)的时候,由于软盘比较慢,系统为了加快速度就会把软盘上的文件虚拟成一个硬盘分区,这个分区符在硬盘盘符和光驱盘符之间(这样要访问光盘的话,就要后退一个盘符才能访问,用dir查看原来的光盘盘符的话,会发现是一些软盘上的内容,也就是虚拟分区的内容)。
虚拟内存硬盘设置
RAMDISK是一个设置内存硬盘的免费软件,用来提高缓存和临时文件的读写的速度。因为内存的运行速度比机械硬盘快得多,加上没有硬盘机械损耗的缺点,因此很适合用来放置读写频繁且不需要存档的临时文件,不仅可以提高程序运行效率更可以降低硬盘的损耗。安装在服务器上效果更佳。
网上能找到的 RamDisk 程序大都不能支持 Windows 2003,而且许多都是收费软件。让人很不爽,而且还不是很稳定。于是这次找了一个免费的却更好的 RamDisk 软件。这个支持 Windows 2000 以上的系统,包括 Windows 2003。
这个程序原作者是 gavotte,后来 lyh728 又作了一个前端,使得安装更加容易。我在这里主要说一下如何来配置一个适合服务器使用的 RamDisk 盘。这里主要以 IIS 为例来讲。
首先用 lyh728 做到 RamDisk 的 GUI 前端来安装 RamDisk 驱动。直接双击 ramdisk.exe 然后点击 install ramdisk 按钮就可以了。然后你可以调整盘符和磁盘大小。RamDisk 的盘符默认是 R:,因为我的服务器只有一个软驱 A:,所以我把 RamDisk 的盘符设为了 B:,主要是为了保证这个盘符不会变。RamDisk 上一般放的都是临时性质的文件,比如 IE 的缓存、IIS 的压缩页面缓存、临时文件夹、PHP 的 Sessions 文件等。这些内容在服务器重启以后就没有了。我给我的服务器分了 256M 的内存作 RamDisk,实际上我发现用不了这么多,目前也只占了 20 多兆的空间而已,所以如果你的内存本来就不是很多的话,分 32M 作 RamDisk 给服务器我觉得基本上就足够了,不放心的话,也可以多给它一点空间,比如 64M 或者 128M。但是默认的 RamDisk 是格式化成 FAT 格式的,并且已经建好了一个 TEMP 文件夹。你会发现这个文件夹在服务器重启后,依然存在。你甚至会发现,你即使将 RamDisk 重新格式化为 NTFS 格式,再重启后,仍然会变为 FAT 格式,并且还有那个 TEMP 文件夹。原因在于默认的安装已经把这个配置写到注册表里了。如果想修改的话,需要用里面的 rdutil 这个工具。
首先安装完 RamDisk,并调整好盘符和大小后,什么也别做。磁盘类型默认是 Fixed Media,不要修改!另外不要急着把 IE 的缓存目录改到 RamDisk 上,否则 RamDisk 会被锁定,以至于不能在被修改保存。
然后格式化 RamDisk
FORMAT /FS:NTFS /Q /V:RamDisk /A:512 B:
其中 /FS: 后面指定的是文件系统,/A: 后面是一个单元块的大小,因为 RamDisk 上保存的大都是小文件,因此指定 512 字节比较合适。B: 是盘符。
接下来把 NTFS 的日志大小设到最小(2M)
CHKDSK /L:2048 B:
否则,会因为太大而无法压缩到注册表中。
在接下来你就可以在上面建文件夹了,比如 Temp、Sessions、Upload Temp Files、IIS Temporary Compressed Files 等。目录不要建太多,够用就行了。比如 Temp 是用来保存系统临时文件的,Sessions 可以保存 PHP 的 Session 文件,Upload Temp Files 可以保存 PHP 上传的临时文件,IIS Temporary Compressed Files 可以保存 IIS 的临时压缩文件。当然这些目录你还要给予足够的权限,比如需要让 IIS(包括用 IIS 发布的 PHP 程序)访问的目录,就需要给 IIS_WPG 用户组或者 IUSR_HOSTNAME 用户足够的权限。注意,这里也不要给 IE 建立缓存目录,即使你想让 IE 缓存也使用 RamDisk,因为当你设置 IE 的缓存到 RamDisk 的时候,IE 会自动建立这个目录的。
好了,做完这步后,先不要急着把这些目录用起来,先把这个文件系统和目录结构保存到注册表:
rdutil B: registry
好了,如果你看到保存成功的提示,就大功告成了。重启一下试试看,你会发现重新启动后,你的 RamDisk 将会保持你设置的文件系统格式,以及目录和相应的权限。
现在你就可以把系统的 Temp 目录、IIS 的压缩文件缓存、IE 缓存、PHP Session 文件目录、PHP 临时上传目录统统设置到 RamDisk 上了。