swap 分区

swap 分区

做者:张首富
时间:2020-06-18
w x:y18163201

什么是 swap 分区

Linux中Swap(即:交换分区),相似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的状况。Android是基于Linux的操做系统,因此也可使用Swap分区来提高系统运行效率 。算法

交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的状况下,操做系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的做用是同样的。bash

以上解释来自于百度百科markdown

何时才会使用 swap 分区

实际上是Linux经过一个参数swappiness来控制的。固然还涉及到复杂的算法。app

这个参数值可为 0-100,控制系统 swap 的使用程度。高数值可优先系统性能,在进程不活跃时主动将其转换出物理内存。低数值可优先互动性并尽可能避免将进程转换处物理内存,并下降反应延迟。默认值为 60。注意:这个只是一个权值,不是一个百分比值,涉及到系统内核复杂的算法。ide

修改这个权重性能

echo 10 > /proc/sys/vm/swappiness
sysctl vm.swappiness=10 #临时修改
echo "vm.swappiness=10" >> /etc/sysctl.conf #永久修改
sysctl -p #生效

swap分区设置多大合适

关于这个问题,应该说只能有一个统一的参考标准,具体还应该根据系统实际状况和内存的负荷综合考虑,像ORACLE的官方文档就推荐以下设置,这个是根据物理内存来作参考的。操作系统

RAM Swap Space
Up to 512 MB 2 times the size of RAM
Between 1024 MB and 2048 MB 1.5 times the size of RAM
Between 2049 MB and 8192 MB Equal to the size of RAM
More than 8192 MB 0.75 times the size of RAM

如何建立 swap 分区

利用剩余磁盘建立 分区来生成swap 分区

1,首先利用 fdisk 方式建立一个分区出来code

2,而后使用 mkswap 方式来格式化分区进程

mkswap /dev/sdb2

3,启动交换分区内存

swapon /dev/sdb2

4,设置成开机自动启动

echo "/dev/sdb2 swap swap defaults 0 0" >> /etc/fstab

利用剩余空间建立 swap 分区

1,建立一个目录,(可省略,可是不建议)

mkdir /swapdir && cd /swapdir

2,使用 dd 命令建立大小合适的的交换文件:

dd if=/dev/zero of=/swapfile bs=1M kcount=1000
建立一个名为swapfile 的 1G 的交换文件

3,格式化此文件

mkswap /swapdir/swapfile

4,启用交换分区

swapon /swapdir/swapfile

5,设置开机自启动

echo "/swapdir/swapfile swap swap defaults 0 0" >> /etc/fstab

如何扩容 swap分区

只须要按照上面步骤建立 swap 分区,挂载上去以后就自动扩容上去了

如何缩减 swap 分区

1,用下面命令查看下当前 swap 分区上面挂载了那些磁盘

swapon -s / cat /proc/swaps

2,关闭对应的 swap 分区

swapoff /dev/sdb2
相关文章
相关标签/搜索