侧边栏壁纸

Linux服务器创建和删除Swap交换分区

2023年12月28日 97阅读 0评论 1点赞

前言

最近有项目需要用到 Mysql8.0 ,但是腾讯云轻量服务器的4G内存,实际可用只有3600多M,在编译安装 Mysql8.0 的时候会 Kill 掉安装进程,导致安装失败。

所以就需要给 Linux 服务器添加 Swap 交换分区(就相当于 Windows 的虚拟内存),来保证能够成功编译安装 Mysql8.0,需要注意的是,使用 Swap 交换分区会比较吃磁盘的性能,如果磁盘性能不够好,可能会对服务器的性能产生负面影响

这里使用的系统是 Centos7.9 其他系统请自行测试

关于 swap 空间的大小

很多老的教程都说 swap 空间要设置到自己物理内存的1.5~2倍

但是看到Redhat官方的文档中的建议,感觉更合理

物理内存建议的交换空间大小
>4G内存的2倍,不超过4G
4G~8G等于物理内存大小
8G~64G设置为8G

创建 swap 空间,会占用磁盘空间,请注意自己的磁盘的剩余空间

查看当前系统swap是否存在以及使用情况:

free –m
或
swapon –s

查看硬盘使用情况(一般/dev/vda1为挂载硬盘):

df –h

创建swap空间

bs=1M count=4096 表示创建一个4G(1M*4096)大小的块文件。

使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意):

# 创建虚拟内存文件 
dd if=/dev/zero of=/mnt/swap bs=1M count=4096 
# 添加权限,不添加也不影响使用
chmod 0600 /mnt/swap 
# 设置交换分区文件
mkswap /mnt/swap 
# 启用swap交换分区
swapon /mnt/swap

设置开机自动挂载

echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

设置虚拟内存使用率

swappiness=0 表示最大限度使用物理内存,然后才是swap空间。
swappiness=100 表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

# 默认一般是30,建议设置为10,即内存剩余小于10%的时候使用swap内存
echo "vm.swappiness = 10" >> /etc/sysctl.conf

使配置生效

sysctl -p

重启服务器

reboot

查看swap的情况

[root@localhost swap]# free -m

                       total       used       free     shared    buffers     cached
Mem:               980         910         70          3           8              575
-/+ buffers/cache:           326        654
Swap:              4095          0       4095

删除swap空间

查看swap分区文件

swapon -s

停止swap分区

swapoff /mnt/swap

删除swap分区文件

rm -rf /mnt/swap

删除fstab文件里面的开机自动挂载配置

使用 nano 修改fstab文件:

sudo nano /etc/fstab

删除开机自动挂载配置内容

/mnt/swap swap swap defaults 0 0

修改完成后使用 ctrl+o 保存

使用 ctrl+x 退出

重启服务器

reboot
1

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
2 文章数
1 标签数
0 评论量