Swap内存
Swap内存,即交换区内存,也叫虚拟内存。它的本质是物理磁盘拿出来一部分伪装成内存的区域。
我们知道程序是运行在内存中的,程序从内存中读写数据的速度仅低于cpu,但比磁盘高不止一个数量级。一台机器的内存是有限的,当机器的cpu不够用时,就必 须把内存中不经常运行的程序给踢出去,踢到哪里呢,这个时候swap交换区就出现了。当内存不够的时候,被踢出去的程序就暂存在swap交换区中,当需要这个被踢出去的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到内存中,这种换入换出的操作实现了内存的循环利用,让用户感觉不到内存的限制。
内存和swap之间是按照内存页为单位进行数据交换的,一般Linux中内存页的大小设置为4kb。而内存和磁盘是按照内存块来交换数据的。
当物理内存使用完或者达到一定比例之后,我们可以使用swap做临时的内存使用。当物理内存和swap都被使用完那么就会出错,out of memory。对于使用多大比例内存之后开始使用swap,在系统的配置文件中可以通过调整参数进行修改。
cat /proc/sys/vm/swappiness
60
该参数可以从0-100进行设置。0就是最大限度使用内存,尽量不使用swap;100就是积极使用swap。这个具体的通过系统的算法进行确定。