Ubuntu 18.04 LTS 和 CentOS 7 增加 Swap 空间

注意:随着时间的流逝,其中的信息可能已经有所发展或是发生改变。侵删!


前言


由于我的老古董VPS主机是 512M 的 RAM,且自动分配的swap有点小 249MB,服务多了偶尔就会提示内存不足错误。

而swap分区是一块特殊的硬盘空间,操作系统可以在内存不足时用来临时存储数据。因为内存和硬盘的速度差异,系统或程序在调用swap中的数据时会慢一些。

但在系统RAM不足是,适当增加swap分区容量有助于提高系统的性能和稳定性。




提示:以下是本篇文章正文内容,下面案例仅供参考

环境:

# 此处以Ubuntu 1804为例。非 root 用户,请 + sudo
# 查看下系统版本
root@localhost:~# lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:        18.04
Codename:       bionic

# 查看当前 RAM 和 SWAP使用情况(数据以实际显示为准)
root@localhost:~# free -m
              total        used        free      shared  buff/cache   
Mem:            497         143         18           5         345         
Swap:           269         251         10
root@localhost:~# swapon -show  # 或者swapon -s
Filename                                Type            Size    Used    Priority
/swap                                   file            135164  524     -2
# 检查硬盘驱动器分区上的可用空间
root@localhost:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            239M     0  239M   0% /dev
tmpfs            50M  5.5M   45M  11% /run
/dev/sda2        11G  5.0G  4.9G  62% /
tmpfs           249M     0  249M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           249M     0  249M   0% /sys/fs/cgroup
/dev/sda1       453M   38M  392M   9% /boot
tmpfs            50M     0   50M   0% /run/user/0



使用文件划分swap 分区

删除之前的swap文件(如果有)
# 删除 swap
root@localhost:~# swapoff /swap
root@localhost:~# 
swapon -s
Filename                                Type            Size    Used    Priority

root@localhost:~# 
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
/swap none swap sw 0 0

# 删掉 /swap none swap sw 0 0
root@localhost:~# 
vi /etc/fstab
/swap none swap sw 0 0  # 删除这行,不同系统swap的名称和路径可能不同

#
# 删除swap 分区或swap 分区文件
#快速删除磁盘分区(该方式快速但需谨慎使用)
root@localhost:~# 
dd if=/dev/zero of=/dev/swap bs=1 count=256
256+0 records in
256+0 records out
512 bytes copied, 0.00115978 s, 441 kB/s

#删除swap 分区文件 (推荐)
root@localhost:~# 
rm -rf /swapfile
创建一个swap文件

用 dd 命令来创建具有预分配空间的文件,文件名可以是swap、swapfile或者其他文件名称。

root@localhost:~#
dd if=/dev/zero of=/swapfile bs=1M count=1024

记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,4.76434 秒,225 MB/秒

/dev/zero 对 swapfile 进行格式化。。

bs 块大小和 count 块数的组合来指定文件大小。也可以指定 1G 的块大小和 1,但是如果在系统本身内存小于 1G 的情况下会由于 输入缓冲导致内存耗尽 而失败 块大小越大速度越快

# 查看
root@localhost:~# 
ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Feb 28 22:39 /swapfile

# 启用交换文件,只有 root 用户才能读取和写入
root@localhost:~# 
chmod 600 /swapfile

root@localhost:~# 
ls -lh /swapfile
-rw------- 1 root root 1.0G Feb 28 22:39 /swapfile

# 设置交换空间
root@localhost:~# 
mkswap /swapfile

Setting swap space version 1, size=1048572 KiB
No label, UUID=d945f99d-f025-4b62-adde-1ea635329bfd

# 启用交换空间
root@localhost:~# 
swapon /swapfile

# 验证
root@localhost:~# 
free -m
              total        used        free      shared  buff/cache   available
Mem:            497         148          18           5         330         334
Swap:          1023           0        1023
root@localhost:~# 
swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            1048572 0       -2
配置为开机自动启用
# 在/etc/fstab 底部增加一行
root@localhost:~# 
vi /etc/fstab
/swapfile   none    swap    sw    0   0

root@localhost:~# 
cat /etc/fstab
/swapfile none swap sw 0 0

swap 的使用策略

/proc/sys/vm/swappiness 中设置的值(百分比),决定了当内存使用达到一定的百分比,swappiness 参数配置系统将数据从 RAM 交换到交换空间的频率。如:默认值为30,则内存使用率达到了70%=(100-30)/100,则使用swap 分区

#查看默认设置的策略值
#centos8 的值例是30
[root@CentOS8 ~]# 
cat /proc/sys/vm/swappiness
30
#centos7 的值是60
[root@centos7 ~]#
cat /proc/sys/vm/swappiness
60

# # 对于 VPS 系统, 我们将其设置为 30
root@localhost:~# 
sysctl vm.swappiness=30
vm.swappiness = 30

# 持久化,在底部添加
root@localhost:~# 
vi /etc/sysctl.conf
vm.swappiness=30

root@localhost:~# wq  # 保存退出

vfs_cache_pressure是访问有关文件系统的数据 此参数配置系统将选择多少数据缓存 inode 和 dentry 信息。

# 临时配置
root@localhost:~# 
cat /proc/sys/vm/vfs_cache_pressure
100

root@localhost:~# 
sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50

# 持久化配置
root@localhost:~# 
vi /etc/sysctl.conf
vm.vfs_cache_pressure = 50   # 在底部,添加指定新值的行



参考文献:


CentOS 7 上添加 Swap - 等一念 - 博客园
https://www.cnblogs.com/nullnullnull/p/11114517.html 创建和删除swap

分区_删除swap分区_嘿,丞哥!的博客-CSDN博客
https://blog.csdn.net/xiao_dan_/article/details/108069865 Centos

添加、删除swap分区 - 知识一锅 http://www.wsmee.com/post/33 centos添加swap(转载) -
南柯Dream丶 - 博客园 https://www.cnblogs.com/NanKe-Studying/p/17063270.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值