系统在什么情况下才会使用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
Linux swap分区的创建、扩容
未经允许不得转载:徐万新之路 » Linux swap分区的创建、扩容
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。