centos 添加、更改swap

在root权限下操作,非root用户,请使用root权限,在命令前加上sudo:
1.查看系统是否已经设置了swap交换文件(交换分区)
swapon -s
如果什么也没有就退出了,表面没有设置任何交换文件(分区)。
2.查看内存大小
free -m
看到内存大小,来确定交换文件的大小,建议值是内存的2-4倍。当然这只是建议值,你可以根据情况来选择。
3.查看磁盘大小
df -h
看看磁盘容量,来确定到底设置多大的交换文件比较好。
4.创建交换文件
你也可以创建一个交换分区。我们创建交换文件就好了。有的主机没有办法创建交换分区。相对于创建交换分区来讲,创建交换文件是要容易很多了。
交换文件一般都很大,如何创建大文件的空文件呢?下面有可供选择的命令:
命令1:fallocate -l 2G /swapfile
2G是容量,/swapfile是文件名和所在的路径,这里是在根目录下创建这样一个文件。但是有些系统就可能会失败。如果失败,就换下一个命令。
命令2:truncate -s 2G /swapfile
参数基本相同。这个命名创建文件的速度很快,但是可能有问题。我遇到的就是在设置交换文件的时候提示文件有很多洞洞,也就是没法使用。那就换下一个命令。
命令3:dd if=/dev/zero of=/swapfile bs=4096 count=512k
这个命令就OK了。但是不要去掉if=/dev/zero,不然还是会出问题的。of后面是文件的路径和文件名,bs是文件块大小,count是块的数量。bs*count=文件大小。我测试过,bs没有要求要对齐到扇区大小的512字节,但是建议对齐一下,也就是设置为512的整倍数,以免一些系统又出问题。文件越大创建的速度越慢,但是只要最后可以,还是可以等的。创建完会有这样的提示:
524288+0 records in
524288+0 records out
2147483648 bytes (2.1 GB) copied, 38.2492 s, 56.1 MB/s
文件名可以是其他的,不一定要是swapfile哦。
5.设置文件的权限
将文件的权限设置为600,因为在设置交换文件时需要。下面是设置命令:
chmod 600 /swapfile
6.设置交换文件,将swapfile指定为交换文件
mkswap /swapfile
设置完后,提示:
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=9ab7410d-5c33-49f1-9f20-a192dc2e0088
7.启动交换文件
swapon /swapfile
8.查看交换文件设置情况
swapon -s
提示如下:
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
9.再使用free确认一遍
free
提示如下:
CentOS7设置swap交换文件的完整过程
这样,系统需要时就会使用它了。
10.如果不再需要了,可以关闭
swapoff /swapfile
关闭之后,再用
swapon -s
就不到交换文件信息了。
11.永久生效交换文件
上面设置的只是临时使用的,重启系统就没有了。如要永久使用这个交换文件,就要写到配置文件里。
配置文件是:/ect/fstab
我们用vi编辑这个文件:
vi /ect/fstab
进入后,按i进入编辑模式,然后在最后一行加入:
/swapfile swap swap sw 0 0
按Esc键退出编辑状态,然后输入:wq,回车就可以退出了。
这样就搞定了。

==========================================================================

更改Swap配置(可选)
有几个涉及swap的选项可能会影响到系统的性能表现。大部分情况下这些选项是可选的,具体要修改成什么样则取决于你的应用需求以及个人偏好。

Swappiness
swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。

该数值越接近于0,系统越倾向于不进行swap,仅在必要的时候进行swap操作。由于swap要比内存慢很多,因此减少对swap的依赖意味着更高的系统性能。

该数值越接近于100,系统越倾向于多进行swap。有些应用的内存使用习惯更适合于这种情况,这也于服务器的用途有关。

输入如下命令查看当前的swappiness数值:

cat /proc/sys/vm/swappiness

30

CentOS 7默认设置了30的swappiness,这对于大部分桌面系统和本地服务器是比较中庸的数值。对于VPS系统而言,可能接近于0的值是更加合适的。

使用sysctl命令可以修改swappiness。比如将swappiness设为10:

sudo sysctl vm.swappiness=10
vm.swappiness = 10

本次修改将一直生效到下次重启前。如果希望永久修改该数值,则需要编辑sysctl配置文件:

sudo nano /etc/sysctl.conf

将以下内容粘贴到文件末尾:

vm.swappiness = 10

编辑完成后,保存退出,之后服务器每次重启的时候会将swappiness设置为该值。

缓存压力(Cache Pressure )
另一个可以考虑更改的配置项是vfs_cache_pressure,该配置项涉及特殊文件系统元文件条目的存储。对此类信息的频繁读取是非常消耗性能的,所以延长其在缓存的保存时间可以提升系统的性能。

通过proc文件系统查看缓存压力的当前设定值:

cat /proc/sys/vm/vfs_cache_pressure

100

这个数值是比较高的,意味着系统从缓存中移除inode信息的速度比较快。一个保守一些的数值是50,使用sysctl命令进行设置:

sudo sysctl vm.vfs_cache_pressure=50

vm.vfs_cache_pressure = 50

这条命令仅在重启前有效。要让该设置永久有效,需要编辑sysctl配置文件:

sudo nano /etc/sysctl.conf

在文件末尾添加如下内容:

vm.vfs_cache_pressure = 50

保存退出,服务器就会在每次重启后都自动将缓存压力设置为50了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注