Linux下增加、删除和设置Swap文件以及创建Swap文件的脚本

1、什么是Swap分区

Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。swap分区是从磁盘空间划分而来,有的是单独使用一个分区,有的是把一个大文件当做swap。
在这里插入图片描述

2、怎么分配Swap分区

一般都说Swap分区是内存大小的1到2倍比较合适,但是有人说其实作为一般用途来讲,1~2G 就到顶了,妄想从虚拟内存上提高系统性能,是不可能的,去买内存条才是王道。

4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

3、系统在什么情况下才会使用SWAP?

实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

[root@rhce ~]#  cat /proc/sys/vm/swappiness
60
该值默认值是60.

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

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

4、如何修改swappiness参数?

—临时性修改:

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

–永久修改:

在/etc/sysctl.conf 文件里添加如下参数:

vm.swappiness=10

或者:

[root@rhce ~]# echo 'vm.swappiness=10' >>/etc/sysctl.conf

保存,重启,或者sysctl -p重新加载,就生效了。

5、如何设置Swap分区

1、检查 Swap 空间,先检查一下系统里有没有既存的 Swap 文件
swapon -s
如果返回的信息概要是空的,则表示 Swap 文件不存在。

2、确定swap文件的大小,单位为M。将该值乘以1024得到块大小。例如,64MB的swap文件的块大小是65536。

3、创建 Swap 文件,下面使用 dd 命令来创建 Swap 文件。
dd if=/dev/zero of=/swapfile bs=1024 count=4194304

【参数说明】
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入/输出的块大小为bytes个字节
count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、创建好Swap文件,还需要格式化后才能使用。运行命令:
mkswap /swapfile

5、激活 Swap ,运行命令:
swapon /swapfile

6、如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。
用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:
/swapfile   swap   swap    defaults 0 0

当下一次系统启动时,新的swap文件就打开了。

7、添加新的swap文件并开启后,检查 cat /proc/swaps 或者free命令的输出来查看swap是否已打开。

8、最后,赋予 Swap 文件适当的权限:
chown root:root /swapfile 
chmod 0600 /swapfile

9、删除SWAP分区
$ swapoff  /swapfile  #卸载swap文件
$ 并修改/etc/fstab文件 #从配置总删除
$ rm -rf /swapfile  #删除文件

6、创建Swap分区文件脚本

#!/bin/bash
read -p "请输入大小(单位:G):" i
o=`awk "BEGIN{printf $i*1024000}"`
dd if=/dev/sdb of=/var/swapfile bs=1024 count=$o &> /dev/null
sleep 1
echo "/var/swapfile文件创建成功......"
/sbin/mkswap /var/swapfile &> /dev/null
sleep 1
echo "swapfile文件格式化并转换为swap分区......" 
/sbin/swapon /var/swapfile &> /dev/null
sleep 1
echo "挂载并激活分区......"
chmod -R 0600 /var/swapfile &> /dev/null
echo "请手动将新的swap分区添加到/etc/fstab里(/var/swapfile swap swap defaults 0 0)......"
free=`free -h | grep wap: | awk -F " " '{print $2}'`
echo "swap大小为$free"
exit 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值