Ubuntu 18.04 LTS 和 CentOS 7 增加 Swap 空间

news/2024/7/5 5:55:07

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

文章目录

  • 前言
  • 环境:
  • 使用文件划分swap 分区
          • 删除之前的swap文件(如果有)
          • 创建一个swap文件
        • 配置为开机自动启用
        • 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   # 在底部,添加指定新值的行

http://lihuaxi.xjx100.cn/news/955266.html

相关文章

burp联动xray进行被动扫描

burp联动xray进行被动扫描0、简介1、打开burp&#xff0c;设置转发数据包&#xff0c;将burp抓到的数据包&#xff0c;额外转发到本机的7777端口2、出现这个代表配置成功3、接着在xray里输入这串代码&#xff0c;让xray进行监听本机的7777端口&#xff0c;进行被动扫描&#xf…

用Python自己写一个分词器,python实现分词功能,隐马尔科夫模型预测问题之维特比算法(Viterbi Algorithm)的Python实现

☕️ 本文系列文章汇总&#xff1a; &#xff08;1&#xff09;HMM开篇&#xff1a;基本概念和几个要素 &#xff08;2&#xff09;HMM计算问题&#xff1a;前后向算法 代码实现 &#xff08;3&#xff09;HMM学习问题&#xff1a;Baum-Welch算法 代码实现&#xff08…

树状数组讲解

树状数组 文章目录树状数组引入例题AcWing241.楼兰图腾思路代码AcWing 242. 一个简单的整数问题思路代码AcWing 244. 谜一样的牛思路代码总结引入 树状数组主要维护的是这样一个数据结构&#xff1a; tr[x]表示以x为终点的长度为lowbit(x)的前缀和 对于树状数组主要就两种操作 …

边缘计算开源项目解读——kubeedge mappers实现

0 背景 本文重点解读kubeedge项目中的mapper模块。该模块位于kubeedge的edgecore的南向边缘侧&#xff0c;主要对接入kubeedge的终端设备&#xff0c;进行协议的适配和转换&#xff0c;使其可以和边缘设备通信&#xff0c;转换后的协议是我们前面描述的mqtt协议&#xff0c;当然…

【数据库理论】研究 ANSI/ISO SQL 标准、事务、数据异常与隔离级别

文章目录 一、前言二、简介研究的演进过程三、一致性级别与锁机制3.1 定义 1 :一致性的非正规定义3.2 定义 2 :一致性的锁协议定义3.3 定义 3 :一致性的正式定义四、《ANSI SQL-92 标准》[^1] 定义的现象与隔离级别4.1 ANSI (ISO/IEC) SQL 标准简介4.2 ANSI SQL 定义的现象4…

密码传输和存储,如何保证数据安全?

本文从一个输入密码登录场景说起&#xff0c;详细介绍了密码传输过程的改进和思路&#xff0c;最后展现出一个相对安全的传输和存储方案。点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达场景在互联网项目中&#xff0c;我们经常会遇到以下…

中心频率法确认VMD的K值的python实现

变分模态分解VMD1.1原理 VMD算法是利用VMD是一种新的信号分解方法,就是求解变分问题。首先构造变分问题,将信号f分解为K个IMF分量,且每个模态分量都有各自的中心频率,同时求解模态的估计带宽之和最小值,约束条件为所有模态分量之和与原始信号相等。 算法认为所有分量都是集…

解锁大厂思维,剖析《阿里巴巴开发手册》之Integer缓存问题引发的分析

小熊学Java网站&#xff1a;https://javaxiaobear.gitee.io/&#xff0c;每周持续更新干货&#xff0c;建议收藏&#xff01; 1、引言 阿里巴巴Java开发手册在第一章节&#xff0c;编程规约中OOP规约的第7条提到&#xff1a; **【强制】**所有整型包装类对象之间值的比较&…