交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的。 它像windows下的虚拟内存。
它的作用是缓存数据。 划分它时,大小设成你的物理内存的大小的两倍。
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
linux 的swap相当于windows的虚拟内存,当物理内存不能够满足系统和进程的运作时,就会用到swap,另外有些程序会在它们初始化时残留的极少再用到得内存页内容转移到swap空间,以减少物理内存空间的使用,分配太多的swap空间会浪费磁盘空间,而swap太少,则系统会发生错误,如果系统的物理内存用光了,系统运行会很慢,而如果swap空间用光了,系统会直接报错。
echo 10 > /proc/sys/vm/swappiness
vm.swappiness的值越小,表示系统更优先使用内存,越大表示优先使用swap,系统默认的值为60。
vmscan.c里面
swap_tendency = mapped_ratio / 2 + distress + vm_swappiness;
大概就是跟上面三个相关的了,系统就只开放第三个给用户设置。
你可以用free -m查看下内存 如果free的值没有了也就是说空闲内存容量没了 就会用到swap