交换分区(SWAP)的大小分配

什么是swap space(交换空间)?

交换分区(swap space)是一定磁盘空间(分区或文件),用于将部分内存中的数据换下来,以腾出内存空间用于其他需求。在一个系统中,物理内存的容量是有限的,当物理内存快使用完时,操作系统会使用交换分区(如果有的话)。当系统内存使用紧张时,操作系统根据一定的算法规则,将一部分最近没使用的内存页面保存到交换分区,从而为需要内存的程序留出足够的内存空间;在SWAP中的内存页面被访问到时,系统会将其重新载入到物理内存中去运行。

swap in (换入):是指页面从交换分区转移到内存之中;
swap out (换出):是指页面从从内存转移到交换分区中。
(这里的in/out是站在内存的角度来说的,就好理解了。)

在Windows、Unix、Linux系统中都有交换分区的概念。

Linux中的交换分区的大小分配推荐法则

曾经,有人推荐使用物理内存1/2、1倍、2倍的容量作为SWAP分区的大小。随着计算机内容容量的增大,如果有16G内存的机器,分个16G的Swap空间,似乎感觉有点浪费磁盘空间,而且多数情况下用处也并不大。在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。

内存小于4GB时,推荐不少于2GB的swap空间;

内存4GB~16GB,推荐不少于4GB的swap空间;

内存16GB~64GB,推荐不少于8GB的swap空间;

内存64GB~256GB,推荐不少于16GB的swap空间。

  • 4GB of RAM requires a minimum of 2GB of swap space
  • 4GB to 16GB RAM requires a minimum of 4GB of swap space
  • 16GB to 64GB of RAM requires a minimum of 8GB of swap space
  • 64GB to 256GB of RAM requires a minimum of 16GB of swap space

Linux中查看swap的命令

可以用“cat /proc/swaps”、“swapon -s”、“free”等命令查看Swap分区的情况。

根据上面的例子,我其实该分配4GB的Swap空间,这里演示的是2GB(可能不太符合Redhat的推荐值,因为本机使用内存量并不会太大,几乎没有使用Swap的情况)。

参考阅读:
swap的分配(包括LVM中的SWAP分配):
http://www.techotopia.com/index.php/Adding_and_Managing_RHEL_6_Swap_Space
RHEL5中swap: http://tech.groups.yahoo.com/group/redhat/message/19480

master

Stay hungry, stay foolish.

One Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注