CentOS上配置Swap交换空间

《CentOS上配置Swap交换空间》

启用swap

swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机服务的用户,我们不推荐启用swap。这甚至会影响到跟你的虚拟机共用宿主机的其他用户。

# free -m
total        used        free      shared  buff/cache   available
Mem:           1.8G        1.0G        486M         25M        305M        613M
Swap:            0B          0B          0B

# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda1      ext4       79G   31G   45G  41% /
devtmpfs       devtmpfs  910M     0  910M   0% /dev
tmpfs          tmpfs     920M     0  920M   0% /dev/shm
//创建Swap文件 fallocate 该命令能够创建一个预分配指定大小空间的文件。输入如下指令创建一个4GB的文件

# fallocate -l 4G /swapfile
//首先我们需要更改swap文件的权限,确保只有root才可读,否则会有很大的安全隐患
# chmod 600 /swapfile

# mkswap /swapfile
Setting up swapspace version 1, size = 4194300 Ki
no label, UUID=340a98e6-aa93-4015-847e-4cb29f7fff17

//告知系统将该文件用于swap:
# swapon /swapfile

//查看是否生效
# swapon -s

关于:swapon 失败: 无效的参数

/dev/sda2是扩展分区,不能直接使用。要在扩展分区中建立逻辑分区。 
分区有多种类型,主分区,扩展分区(内含一个或多个逻辑分区)。 
只有主分区和逻辑分区中才能建立文件系统
//使Swap文件永久生效
# vi /etc/fstab
//加入以下内容
/swapfile swap swap sw 0 0
//更改Swap配置(可选)
有几个涉及swap的选项可能会影响到系统的性能表现。
_ Swappiness _
swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。

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

输入如下命令查看当前的swappiness数值:
查看当前:
# cat /proc/sys/vm/swappiness 
//0
//临时修改:
# sysctl vm.swappiness=30

//永久修改
# vi /etc/sysctl.conf
将以下内容粘贴到文件末尾:
-----------
vm.swappiness=30
_ 缓存压力(Cache Pressure )_
通过proc文件系统查看缓存压力的当前设定值:cat /proc/sys/vm/vfs_cache_pressure #100
这个数值是比较高的,意味着系统从缓存中移除inode信息的速度比较快。一个保守一些的数值是50,使用sysctl命令进行设置:

//查看
# cat /proc/sys/vm/vfs_cache_pressure //100
# sysctl vm.vfs_cache_pressure=50  //临时修改
# vi /etc/sysctl.conf
---------
vm.vfs_cache_pressure=50

禁用swap

# vi /etc/sysctl.conf
vm.swappiness=0

//关闭
# swapoff -a

//启用
# swapon -a

//注释swap分区 ,前面加'#'
# vi /etc/fstab 
#UUID=04bfce28-0e0a-4cf2-9394-36de3a04264b swap swap    defaults  0 0
点赞

发表评论

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