什么是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分区的情况。