三、 合理设置交换分区大小以提高服务器性能。
在Linux服务器部署的时候,除了要考虑是否需要安装以上两个分区格式外,最重要的就是合理设置交换分区。什么交换分区呢?简单的说,交换分区就是一个在硬盘空间中划分的“虚拟内存”。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到交换分区空间中,等到那些程序要运行时,再从交换分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行交换分区交换。
其实交换分区在Windows操作系统中也存在,只是换了个名字而已。在微软操作系统中这个交换分区又叫做虚拟内存。在使用Windows系统时,大家可能有这个直观的感受。在微软操作系统中同时运行多个程序。当管理员切换到一个很长时间没有“运行”的程序时,会听到硬盘突然发出很大的响声。但是此时没有从硬盘中读取大量数据。为什么会突然发出这么大的硬盘数据读取声音呢?这是因为这个程序的内存被那些频繁运行的程序给占用了(内存不能够容纳全部程序的情况下),放到了虚拟内存中。因此,一旦此程序被放置到前端,它就会从虚拟内存中取回自己的数据,将其放进内存,然后接着运行。
Linux操作系统下的虚拟分区就是跟虚拟内存一样,起着一个备用内存的作用。交换分区的调整对Linux服务器的性能至关重要。通过调整交换分区,有时甚至可以越过系统性能瓶颈,节省系统升级费用。交换分区不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,利用硬盘空间来增大有限的内存大小。更重要的是,交换分区是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰,可以提高更高的安全性。同时也可以有效避免多个进程之间相互干扰的情况。当系统管理员在部署网络应用的时候,需要合理设置这个交换分区的大小。通常情况下,一般建议交换分区为内存的一倍到两倍大小为好。如果设置的太大是一种浪费,太小又不能够满足应用程序的需要。如果中间对服务器的内存进行升级了,那么这个交换分区的大小也需要随之调整。
另外需要注意的是,交换分区的数量对性能也有很大的影响。因为交换的操作其实就是是磁盘输入输出(丛硬盘中存取数据)的操作,如果有多个交换分区,则交换分区空间的分配会以轮流的方式操作所有的交换分区,这样会大大均衡硬盘输入输出的负载,加快交换速度。如果只有一个交换分区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。此时系统管理员就会发现CPU并不很忙,而系统却慢。这说明,瓶颈在硬盘的输入输出上,依靠提高CPU的速度是解决不了问题的。在Linux系统中可以创建一个以上的交换分区。在部署应用服务器时,如果并发访问用户比较多或者一台服务上同时部署多个网络应用,则应多建立几个交换分区,以减轻磁盘输入输出的压力。另外这个交换分区的位置对交换分区与服务器的性能也会产生影响。应尽量把交换分区放在硬盘驱动器的起始位置,因为一个磁盘的起始位置物理上是在最外的柱面上,所以磁头每转一圈可以覆盖更大的面积。