什么是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分区的情况。
1 2 3 4 5 6 7 8 9 10 11 |
[root@jay-linux ~]# swapon -s Filename Type Size Used Priority /dev/sda3 partition 2096120 840 -1 [root@jay-linux ~]# cat /proc/swaps Filename Type Size Used Priority /dev/sda3 partition 2096120 840 -1 [root@jay-linux ~]# free -m total used free shared buffers cached Mem: 7872 7280 592 0 429 5964 -/+ buffers/cache: 886 6986 Swap: 2046 0 2046 |
根据上面的例子,我其实该分配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
One Comment