Centos7 设置Sawp交换分区

 尤正航   2021-03-27 00:18   692 人阅读  1 条评论

Sawp交换分区介绍

使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将
远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。
当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用 swap 交换分区最大的限制。

Sawp设置建议

首先看下Redhat官方的文档中关于swap分区大小设置的建议

物理内存建议的交换空间大小如果开启休眠功能建议的交换空间大小
⩽ 2GB内存的2倍内存的3倍
> 2GB – 8GB等于内存大小内存的2倍
> 8GB – 64GB至少4G内存的1.5倍
> 64GB至少4G不建议使用休眠

因此此,一般来说可以按照如下规则设置swap大小:

4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。

4-8G的物理内存,SWAP 等于内存大小。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G。

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

Swap查看状态

##可以看到swap部分参数都为0,即没有配置

[root@master ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:             15           0          15           0           0          14
Swap:             0           0           0

##如果没有任何输出,则代表没有配置

[root@master ~]# swapon  -s

Swap创建文件

##查看磁盘空间
[root@master ~]# df -h

##创建分区文件
[root@master ~]# dd if=/dev/zero of=/var/swap bs=1M count=8192

##命令详解 if 表示infile,of表示outfile,bs=1M代表增加的模块大小是1M,count=5120代表模块个数8192,也就是8G空间

Swap启用交换分区

##设置Swap交换分区文件
[root@master ~]# mkswap /var/swap
正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=93b31890-7c1d-41df-8e63-8acfed97ed27

##设置交换分区权限,如果不设置会报insecure permissions 0644, 0600 suggested.
[root@master ~]# chmod -R 0600 /var/swap

##启用Swap交换分区文件
[root@master ~]# swapon /var/swap 

##查看是否生效
[root@master ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:             15           0           6           0           8          14
Swap:             7           0           7

[root@master ~]# swapon  -s
文件名				类型		大小	已用	权限
/var/swap                              	file	8388604	0	-2

Swap设置永久生效

##命令添加和手工编辑fstab文件添加都可以

[root@master ~]# echo "/var/swap swap swap defaults 0 0" >> /etc/fstab 
[root@master ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Fri Dec 25 21:29:20 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=4e312607-9094-47ef-9e92-996569dd615f /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/var/swap swap swap defaults 0 0

##重新加载fstab文件,检查是否挂载错误,以免造成系统启动错误等问题
[root@master ~]# mount -a

Swap性能调优

swappiness参数值说明
vm.swappiness = 0     仅在内存不足的情况下--当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。 
vm.swappiness = 1     内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。 
vm.swappiness = 10    当系统存在足够内存时,推荐设置为该值以提高性能。 
vm.swappiness = 0     Centos默认值为0,
vm.swappiness = 100   内核将积极的使用交换空间

查看swappiness默认值
[root@master ~]# sysctl -a | grep vm.swappiness
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens160.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.swappiness = 0

##临时修改
[root@master ~]# sysctl -w vm.swappiness=10
vm.swappiness = 10

##永久修改
[root@master ~]# echo "vm.swappiness = 10"  >>  /etc/sysctl.conf
[root@master ~]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.swappiness = 10

特别注意:
在不影响业务和系统,物理内存足够情况下,优先建议使用最后一种修改swappiness这样可以保证在优先使用物理内存
而在物理内存不足的情况下使用swap防止内存溢出。根据查询资料建议设置值10!!!

删除Swap交换分区

##关闭交换分区
[root@master ~]# swapoff /var/swap

##删除交换分区文件
[root@master ~]# rm -rf /var/swap

##删除fstab文件挂载信息 
[root@master ~]# vi /etc/fstab


本文地址:https://cjava.net/post/105.html
版权声明:本文为原创文章,版权归 尤正航 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

 评论列表

  1. 小霸王
    小霸王  @回复

    不错哇