虚拟内存背后的概念是使用一个磁盘做为RAM的一个扩展,因此有效可用的内存也会随之增长。内核把当前没有使用的内存块的内容写入磁盘,因此内存可以被用做其他的目的.当原来的内容再次被使用时,他们再被读回内存。这些对于用户是完全透明的;只有程序可以看到有效的大量内存,而没有注意偶尔驻留在磁盘上的部分。对于硬盘的读写要比实际的内存要慢,因此程序不会运行得太快。硬盘上被用于虚拟内存的部分称作交换分区。
Linux可以使用一个文件系统中正常的文件或者一个单独的分区作为交换空间。一个交换分区要比交换文件要快,但是交换文件很容易改变它的大小(没有必要对一个整个的硬盘再分区,从零开始安装一切是可能的)。当需要的交换空间是已知的,创建一个交换分区,否则首先使用交换文件,如果知道确切地需要多少交换空间,那么就创建一个交换分区。
注意:操作系统术语:计算机科学通常区别交换(向交换空间写入全部)和分页(写入固定大小的部分,通常是几千个字节,一次)。分页在Linux被实现,与交换相比更加有效率,但是传统的Linux术语谈论交换。
下面是理解红帽企业版Linux的虚拟内存概念的一些有用的链接:
* 关于虚拟内存的信息:
http://www.redhat.com/magazine/001nov04/features/vm/
* 理解红帽企业版Linux 3 的虚拟内存:
http://people.redhat.com/nhorman/papers/rhel3_vm.pdf
* 理解红帽企业版Linux 4 的虚拟内存:
http://people.redhat.com/nhorman/papers/rhel4_vm.pdf
* 在红帽企业版上对Orcale的调优:
http://www.puschitz.com/TuningLinuxForOracle.shtml