centos 设置swap linux swap分区必须吗
本篇文章给大家谈谈centos 设置swap,以及linux swap分区必须吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
如何在CentOS中添加Swap
1、检查 Swap空间
在设置 Swap文件之前,有必要先检查一下系统里有没有既存的 Swap文件。
运行以下命令:
swapon-s
如果返回的信息概要是空的,则表示 Swap文件不存在。
2、检查文件系统
在设置 Swap文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap。运行以下命令:
df-hal
检查返回的信息,还剩余足够的硬盘空间即可。
3、创建并允许 Swap文件
下面使用 dd命令来创建 Swap文件。
ddif=/dev/zeroof=/swapfilebs=1024count=512k
参数解读:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file>
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file>
bs=bytes:同时设置读入/输出的块大小为bytes个字节
count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
4、格式化并激活 Swap文件
上面已经创建好 Swap文件,还需要格式化后才能使用。运行命令:
mkswap/swapfile
激活 Swap,运行命令:
swapon/swapfile
以上步骤做完,再次运行命令:
swapon-s
你会发现返回的信息概要:
FilenameTypeSizeUsedPriority
/swapfilefile5242840-1
如果要机器重启的时候自动挂载 Swap,那么还需要修改 fstab配置。
用 vim打开/etc/fstab文件,在其最后添加如下一行:
/swapfileswapswapdefaults00
最后,赋予 Swap文件适当的权限:
chownroot:root/swapfile
chmod0600/swapfile
Centos修改swappiness
swappines是Linux的一个内核参数,控制系统在进行swap时,内存使用相对权重。
那么系统在进行swap时,系统做了什么?
在Linux系统中,当物理内存不足时,系统会拿出预先设定好的部分硬盘空间当swap分区使用,从而解决内存容量不足的情况。
当某进程向系统请求内存发现不足时,系统会把内存中暂时不用的数据交换出去,放在swap分区中,这个过程称为 swap out。
当某进程又需要这些数据且系统发现还有空闲物理内存时,又会把swap分区中的数据交换回物理内存中,这个过程称为 swap in。
当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
可以理解为系统在硬盘上设置swap分区,当内存不足了,把这部分硬盘当作内存来用。
swappiness参数值可设置范围在0到100之间。
此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。
CentOS系统此参数的默认值是30,表示当内存使用超过70%,系统开始使用swap分区。
这里CDH推荐swappiness为10,表示当内存使用率超过90%,系统开始使用swap分区。
或
临时修改,当前系统的swappiness为10,但重启后,系统的swappiness继续恢复默认值。
此方法为永久修改swappiness分区的办法。
如何设置/修改centos上的swap交换分区
小swap分区的方法:
1、先“df-h”和“fdisk- l”命令查看一下当前分区情况
/dev/mapper/vg_"hostname"-lv_swap就是swap分区,为2G。swap分区亦可用free命令查看到。
2、用swapoff命令关闭交换分区:
# swapoff/dev/mapper/vg_"hostname"-lv_swap
然后用free命令检查下swap是否变为0了。
3、用lvreduce命令把swap分区减小1500M:
# lvreduce-L-1500M/dev/mapper/vg_"hostname"-lv_swap
输入y,确定,看到提示swap减小至516M。
4、重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:
# mkswap/dev/mapper/vg_"hostname"-lv_swap
5、swapon开启swap分区:
# swapon/dev/mapper/vg_"hostname"-lv_swap
然后用free命令检查下swap是否变为516M了。