- 交换分区的概念
- 交换分区的作用
- 交换分区对系统i的影响
交换分区的概念
交换空间的实质是利用硬盘空间,临时充当内存来使用。我们可以将Swap分区理解为物理内存的扩展,有拥有自己独特的文件格式,这点上与Windows是不同的。
交换分区的作用
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。这些被释放的空间可能来自那些很长时间没被操作的程序,而这些空间中的数据就临时被保存到交换分区中,当那些程序要运行是,再从交换分区中恢复到物理内存中。系统在物理内存不够时, 才进行分区的交换。
但实际上,不是所有从物理内存中交换出来的数据都会被放到交换分区中,否则交换分区就会不堪重负。有相当一部分的数据会被直接交换到文件系统去。但也存在例外,比如用户使用malloc和new函数直接认为地在内存上进行操作时,它们需要交换分区,但因为它们在文件系统中没有相应的文件,因此被称作“匿名”内存数据。这类数据还包括堆栈中的的一些状态和变量数据等。所以说交换分区是“匿名”数据的交换空间。
交换分区对系统的影响
交换分区分配太多会浪费磁盘空间,而分配的太少则系统会发生错误。
如果系统的物理内存用光了,系统就会跑的很慢,但仍可以运行;而如果交换分区用完了,作为系统会发生错误。通常情况下,交换分区的大小应该大于等于物理内存的大小,最小不应该小于64M,通常来说,交换分区的大小应该是物理内存大小的2~2.5倍。
对于不同的引用,配置不同。如果是小的桌面系统,只需要较小的交换分区,而大的服务器系统,则视情况不同来分配。比如数据库服务器和Web服务器,访问量越大,对交换分区的要求越多。
除此之外,交换分区的数量对性能的影响也很大。由于交换分区的交换操作是磁盘I/O的操作,如果有多个交换分区,交换分区的分配会以轮流的方式操作于所有的交换分区,这样会大大均衡I/O的负载,加快分区交换的速度。如果只有一个交换分区,所有的交换操作会让交换区很忙碌,系统这时候大多数时间都处于等待状态,效率很低。如果使用性能监视工具会发现,此时的CPU并不忙碌,但系统运行却很慢忙着说明了瓶颈在I/O上。