Ubuntu如何修改Swap交换空间大小

 更新时间:2025年03月27日 14:24:30   作者:龙之叶  
这篇文章主要介绍了Ubuntu如何修改Swap交换空间大小问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

安装Ubuntu系统时,选择了默认空间分配方案,Swap空间仅1G,而实际的物理内存有32G,分给Swap空间至少为内存的1倍,最好是内存值的2倍,系统相当卡顿,重做系统后,费力部署的环境怎么又需要重新部署,头痛!

一、查看本机Swap交换空间的内存大小

命令如下

free -m

执行结果如下:

longzhiye@longzhiye-laptop:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          31995         374       30603           9        1016       31142
Swap:           976          65         911

可以看到本机的Swap空间为976M左右,即1G空间。

下面我们将其扩大64G

二、创建Swap文件

sudo -i

输入密码后,切换root。

mkdir /swap

建立swap文件夹

cd /swap/

进入到swap文件夹

sudo dd if=/dev/zero of=swapfile bs=64M count=1k

建立swapfile,大小为bs*count = 64M * 1k = 64G

sudo mkswap -f swapfile

将生成的文件转换为Swap文件

执行结果如下:

longzhiye@longzhiye-laptop:~$ sudo -i
[sudo] longzhiye 的密码: 
root@longzhiye-laptop:~# cd /
root@longzhiye-laptop:/# mkdir /swap
root@longzhiye-laptop:/# cd swap/
root@longzhiye-laptop:/swap# sudo dd if=/dev/zero of=swapfile bs=64M count=1k
记录了1024+0 的读入
记录了1024+0 的写出
68719476736 bytes (69 GB, 64 GiB) copied, 276.311 s, 249 MB/s
root@longzhiye-laptop:/swap# sudo mkswap -f swapfile
Setting up swapspace version 1, size = 64 GiB (68719472640 bytes)
无标签, UUID=c7feaf13-7f02-4941-a07f-86a43bdf3ef5

三、激活Swap文件

sudo swapon swapfile
free -m

激活Swap文件,并重新查看Swap空间 内存

执行结果如下:

root@longzhiye-laptop:/swap# sudo swapon swapfile
swapon: /swap/swapfile:不安全的权限 0644,建议使用 0600。
root@longzhiye-laptop:/swap# free -m
              total        used        free      shared  buff/cache   available
Mem:          31995         381         374           9       31238       31065
Swap:         66512          64       66448

可以看到Swap空间内存从1G变为64G = 我们扩大的64G+原始的1G。

四、设置为永久Swap

未做此步骤,重启之前的设置都失效!!!!

sudo gedit /etc/fstab

更改swap路径。

# /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
UUID=b726da21-83a0-497b-b3eb-a09f16403d60 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=C0BE-3630  /boot/efi       vfat    umask=0077      0       1
#UUID=c7bb6d12-b247-4119-9c27-797f9995884e none            swap    sw              0       0
/swap/swapfile            swap            swap    sw              0       0

五、扩展

如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录。

执行下列命令:

sudo swapoff swapfile

如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件。

/swap/swapfile /swap swap defaults 0 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Linux/Windows系统中设置PYTHONPATH环境变量的操作步骤

    在Linux/Windows系统中设置PYTHONPATH环境变量的操作步骤

    PYTHONPATH 是一个环境变量,它告诉 Python 解释器在哪些目录中查找要导入的模块,这对于包含不在标准目录中的自定义模块非常有用,本文给大家介绍了如何在 Linux/Windows 系统中设置 PYTHONPATH 环境变量,需要的朋友可以参考下
    2025-02-02
  • Linux配置静态ip的详细流程步骤

    Linux配置静态ip的详细流程步骤

    这篇文章主要给大家分享介绍了关于Linux配置静态ip的详细流程步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • Linux曝出Sudo提权漏洞 任意用户亦可运行root命令

    Linux曝出Sudo提权漏洞 任意用户亦可运行root命令

    近期曝出的一个提权漏洞,却直指 sudo 的一个安全策略隐患 —— 即便配置中明确不允许 root 用户访问,该漏洞仍可允许恶意用户或程序,在目标 Linux 系统上以 root 用户身份执行任意命令
    2019-10-10
  • linux如何实现一键部署nfs过程图解

    linux如何实现一键部署nfs过程图解

    这篇文章主要介绍了linux如何实现一键部署nfs过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Linux中一种友好的find替代工具(fd命令)

    Linux中一种友好的find替代工具(fd命令)

    这篇文章主要介绍了Linux中一种友好的find替代工具(fd命令),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Apache Spark 2.0 在作业完成时却花费很长时间结束

    Apache Spark 2.0 在作业完成时却花费很长时间结束

    大家在使用 Apache Spark 2.x 的时候可能会遇到这种现象:虽然我们的 Spark Jobs 已经全部完成了,但是我们的程序却还在执行。怎么回事呢?下面小编通过实例代码给大家介绍下
    2019-06-06
  • Linux 和Windows 安装Git 步骤详细介绍

    Linux 和Windows 安装Git 步骤详细介绍

    这篇文章主要介绍了Linux 和Windows 安装Git 步骤详细介绍的相关资料,需要的朋友可以参考下
    2017-01-01
  • Linux socket函数详解

    Linux socket函数详解

    在网络编程中,协议是指计算机系统之间进行通信和交互所遵循的规则和约定,协议在网络编程中起着举足轻重的作用,它定义了通信双方的行为规范,确保了网络通信的顺利进行,这篇文章主要介绍了Linux socket函数,需要的朋友可以参考下
    2024-02-02
  • CentOS 设置默认JDK步骤详解及命令

    CentOS 设置默认JDK步骤详解及命令

    这篇文章主要介绍了 CentOS 设置默认JDK步骤详解及命令的相关资料,这里对配置Java的环境进行了详细的介绍,需要的朋友可以参考下
    2016-11-11
  • 详解Ubuntu16.04安装nvidia驱动+CUDA+cuDNN的教程

    详解Ubuntu16.04安装nvidia驱动+CUDA+cuDNN的教程

    这篇文章主要介绍了Ubuntu16.04安装nvidia驱动+CUDA+cuDNN教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论