Unix系统下对swap分区大小修改

在对swap分区大小调整前还需要注意是否还有数据正在使用swap分区,如果是有在使用需要先修改下系统的内核变量刷新下swap分区查验下,以免造成数据丢失,系统中默认使用swap时的是依靠/proc/sys/vm/swappiness中的变量来控制的,默认/proc/sys/vm/swappiness中的变量时60,当/proc/sys/vm/swappiness变量设置为0时是表示尽量不使用swap空间,其中值越大表示系统越倾向于使用swap空间,可以通过修改内核变量文件/etc/sysctl.conf来动态控制
[root@localhost ~]# sysctl -q vm.swappiness#查询默认vm.swappiness变量大小
vm.swappiness = 60
[root@localhost ~]# vim /etc/sysctl.conf
…略…
vm.swappiness = 0
[root@localhost ~]# sysctl -p
[root@localhost ~]# swapoff -a && swapon -a#刷新swap,即关了再开

这样就降低了系统对swap的使用可能性,当然如果内存确实够时此时还是会使用到swap空间的,此时就不能对swap分区大小做调整,如果没有那么才能继续做swap分区大小的调整,而对swap分区做调整时有分成2种情况:1、是使用传统磁盘分区 2、使用LVM管理的swap分区。这两种情况下对系统的swap分区做调整是有所不同的。
  先说一下传统磁盘分区对swap分区做调整的方法,总的来说使用传统磁盘分区下对swap的增加和减小大致的原理是一致的:
[root@localhost ~]# swapon -s#先确认下是哪一个分区是作为swap分区
[root@localhost ~]# dd if=/dev/zero of=/tmp/swap bs=1MB count=2048#创建一个写满0的swap文件用来做swap,大小根据你需要调整的swap分区来定
[root@localhost ~]# chmod 600 /tmp/swap
[root@localhost ~]# swapoff -a#离线所有swap分区,相当于umount swap分区
[root@localhost ~]# mkswap /tmp/swap#创建swap分区,注意要记录下下面生成的UUID
mkswap: /tmp/swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1999996 KiB
no label, UUID=7cc2ddfc-6057-49c8-b7a8-4f6e3807d731
[root@localhost ~]# swapon /tmp/swap#激活swap分区

[root@localhost ~]# swapon -s
[root@localhost ~]# swapoff -a
[root@localhost ~]# lvreduce -L 2048M /dev/mapper/VolGroup-Lv_swap
[root@localhost ~]# mkswap /dev/mapper/VolGroup-Lv_swap#注意记录UUID
mkswap: /dev/VolGroup/VolGroup-Lv_swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=d6210042-9bc0-4e56-bc5a-3ade79eb4791
[root@localhost ~]# swapon /dev/mapper/VolGroup-VolGroup--Lv_swap

总之如果是对swap修改后都要对/etc/fstab文件做修改,以确保重启后系统能自动挂载swap分区

猜你喜欢

转载自www.linuxidc.com/Linux/2017-08/146253.htm