正德厚生,臻于至善

Linux swap分区的创建、扩容

系统在什么情况下才会使用SWAP?
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。
cat /proc/sys/vm/swappiness
60
该值默认值是60.
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

如何修改swappiness参数?

--临时性修改:

sysctl vm.swappiness=10
vm.swappiness = 10
cat /proc/sys/vm/swappiness
10
这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

--永久修改:
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10

或者:
echo 'vm.swappiness=10' >>/etc/sysctl.conf
保存,重启,就生效了。

# lvm
lvm> lvs
  LV                        VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LVDbOra1                  VGExaDb -wi-ao---- 400.00g                                                    
  LVDbSwap1                 VGExaDb -wi-ao----  48.00g                                                    
  LVDbSys1                  VGExaDb -wi-ao---- 100.00g                                                    
  LVDbSys2                  VGExaDb -wi-a----- 100.00g                                                    
  LVDbVdSWED01DBADM01DATAC1 VGExaDb -wi-ao---- 128.00m                                                    
  LVDbVdSWED01DBADM01RECOC1 VGExaDb -wi-ao---- 128.00m                                                    
  LVDoNotRemoveOrUse        VGExaDb -wi-a-----   1.00g                                                    
lvm> 

lvextend -L +16G /dev/mapper/VGExaDb-LVDbSwap1
swapoff -a
mkswap -L SWAP /dev/mapper/VGExaDb-LVDbSwap1
swapon /dev/mapper/VGExaDb-LVDbSwap1
swapon -va
free -a

lvextend -L 64G /dev/mapper/VGExaDb-LVDbSwap1
swapoff -a
mkswap -L SWAP /dev/mapper/VGExaDb-LVDbSwap1
swapon /dev/mapper/VGExaDb-LVDbSwap1
swapon -va
free -a

for i in `cd /proc;ls | grep "^[0-9]" | awk ' $0 >100'` ; do printf "%-20s %-20s\n" "$(awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps )" "$(cat /proc/$i/cmdline)"; done 2>&1 | sort -k2nr | head

for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done| sort -k2 -rn|head -20

for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done 2>&1 |sort -k2nr |head

lvcreate -L 64G -n LVDbSwap2 VGExaDb
mkswap -L SWAP /dev/mapper/VGExaDb-LVDbSwap2
swapon /dev/mapper/VGExaDb-LVDbSwap2
swapon -s

Linux swap分区的创建、扩容
一、swap分区的创建
1、文件类
        dd if=/dev/zero of=/home/swap bs=1G count=20 #创建一个20G大小的swap文件
        mkswap /home/swap #文件格式化
        swapon /home/swap #启用该swap分区
        swapon -s #查案swap分区挂载情况

2、逻辑卷
        lvcreate -L 20G -n lv_swap vg0 #创建一个20G的逻辑卷
        mkswap /dev/vg0/lv_swap #格式化该分区为swap格式
        swapon /dev/vg0/lv_swap #启用该swap分区
        free -h 或者swapon -s

记得将swap的挂载写入/etc/fstab里
二、swap的扩容
文件类的扩容可以用新建swap的方法再次生成一个swap文件,并启用
逻辑卷类的直接扩容即可

LVM逻辑卷之扩展Swap交换分区
关闭当前swap分区
1.清理系统内存占用程序
关闭交换分区(swapoff)前,请确保剩余内存空间大于等于已使用的交换分区空间。关闭交换分区后,交换分区的内容会释放到内存中。如果内存剩余空间不足,可能会导致报错:swapoff failed: Cannot allocate memory。确保物理内存剩余充足后,我们可以查看内存状态。
free -m

2.关闭swap
swapoff /dev/mapper/centos-swap 
swapon -s

3.再次查看内存状态
free -m

七、扩展swap分区大小
1.查看系统硬盘情况
lsblk

2.扩展卷组
pvcreate /dev/vdb
vgextend centos /dev/vdb

3.扩展swap逻辑卷
扩展逻辑卷,增加6G大小空间。
lvextend -L +6G /dev/centos/swap 

4.格式化分区
mkswap /dev/centos/swap 

5.启动swap分区
swapon /dev/mapper/centos-swap

6.查看swap状态
free -m
赞(0) 打赏
未经允许不得转载:徐万新之路 » Linux swap分区的创建、扩容

评论 抢沙发

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫

登录

找回密码

注册