一、修改Swap分区大小步骤:
在Linux中,交换区(swap area)的优先级通常是由内核自动管理。
1. 查看当前交换区的配置:
sudo swapon --show
或者
free -h
这两个命令都可以显示交换区的使用情况。
2. 创建一个新的交换文件(例如,1GB大小):
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
3. 设置交换文件的权限:
sudo chmod 600 /swapfile
4. 将文件设置为交换区:
sudo mkswap /swapfile
5. 启用交换区
sudo swapon /swapfile
6. 使交换区在系统启动时自动启用,需要编辑/etc/fstab
文件。首先,找到交换文件的UUID:
sudo blkid /swapfile
记下UUID值,然后在/etc/fstab
文件中添加以下行(用实际的UUID替换UUID的值
):
UUID=your_uuid none swap sw 0 0
例如:
UUID=f2f8e0e0-1a9e-4d8c-9e0b-5b7c3e6b5b8c none swap sw 0 0
保存文件并退出。
现在,每次系统启动时,交换区都会自动启用并具有默认优先级。如果你需要手动调整交换区的优先级,可以使用swapoff
命令关闭交换区,然后使用swapon -p [priority]
命令重新启用交换区,其中[priority]
是一个0到100之间的整数,表示优先级。例如,要将优先级设置为50,可以执行:
sudo swapoff /swapfile
sudo swapon -p 50 /swapfile
二、调整Swap分区使用优先级:
调整Swap分区后,如果发现即便物理内存用光了但虚拟内存的使用率还是上不来,则需要通过修改swappiness的值来提高Swap分区的使用优先级,调整范围为0-100,值越大交换分区越优先使用,如果需要优先使用内存 则调低swappiness的值即可。ubuntu系统中swappiness默认60,centos中默认10,所以在centos中swap内存的使用率是很低的。
具体调整swappiness值的方法如下:
1. 查看当前swappiness值:
cat /proc/sys/vm/swappiness
2. 临时修改swappiness值(重启后还原默认值):
方法(1):sudo sysctl vm.swappiness=10
方法(2):echo 10 > /proc/sys/vm/swappiness
3.永久修改swappiness默认值(重启生效):
# 编辑 sysctl 配置文件
sudo vi /etc/sysctl.conf
# 添加或修改以下行来设置 swappiness
vm.swappiness = 10
# 应用更改
sudo sysctl -p
swappiness值及对应策略说明:
swappiness值 | SWAP策略 |
Vm.swappiness=0 | 这会导致linux系统几乎禁用SWAP,除非出现outofMemory的情况 |
vm.swappiness=1 | 这是除禁止SWAP之外的最保守的SWAP策略 |
vm.swappiness=10 | 通常在内存空间非常充足时,为了提高整体性能,会将值更改为10,以便有效降低SWAP使用频次 |
vm.swappiness=60 | 默认值,属于中庸策略 |
vm.swappiness=100 | 系统会及其激进地进行SWAP,这会严重影响整体性能 |