交换分区swap的创建与管理
前言
swap分区是linux系统中一块特殊的硬盘空间,当实际内存不够用的时候,系统会按照一定的算法将部分不用的数据放在swap分区中,从而为当前运行的程序腾出足够的内存空间。好处在于避免内存资源不足导致的OOM(out of memory),缺点是会极大程度影响到运行在swap分区的程序的性能。
创建swap分区
一般在系统安装的时候就会创建交换分区,如果没有,可以按照以下步骤进行创建。
方式一
- 假设有块硬盘
/dev/sdb - 先使用fdisk对
/dev/sdb进行分区,分区后的/dev/sdb1作为swap分区 mkswap /dev/sdb1- 加载新的swap:
swapon /dev/sdb1 - 永久生效:编辑
/etc/fstab,增加一行:
/dev/sdb1 swap swap defaults 0 0
方式二:使用文件制作swap分区
- 先创建一个4G的文件
dd if=/dev/zero bs=4M count=1024 of=/swapfile
- 修改文件权限:
chmod 600 /swapfile - 加载:
mkswap /swapfile - 启用:
swapon /swapfile - 永久生效:编辑
/etc/fstab,增加一行:
/swapfile swap swap defaults 0 0
扩容swap分区
扩容步骤同创建swap分区
关闭swap
如果内存资源足够的话,建议关闭swap分区,避免影响程序性能
- 临时关闭:
swapoff -a - 永久关闭:编辑
/etc/fstab文件,注释swap相关行
swap分区使用倾向性
对于swap分区的使用需要根据实际情况来判断,有的应用即便性能低下,但也尽量别OOM,这样的话swap分区就很有必要;有的应用性能低下的话等于没法用,还不如oom,这种情况下就可以直接关了swap。
如果内存资源够用,但不是特别充足,不想让程序运行在swap分区,但又不想让程序oom,这时候就可以通过设置vm.swappiness参数,降低系统对swap分区的使用倾向性。默认情况下(centos 7),vm.swappiness参数的值为60。值越低,使用swap的倾向性就越低。
个人一般设置为vm.swappiness=0,将swap分区使用倾向性调为最低。注意,vm.swappiness=0表示尽可能不用swap分区,并不意味着一定不会用到swap分区。
- 编辑
/etc/sysctl.conf文件,增加一行
vm.swappiness=0
- 生效:
sysctl -p
本文来自博客园,作者:花酒锄作田,转载请注明原文链接:https://www.cnblogs.com/XY-Heruo/p/16182554.html

浙公网安备 33010602011771号