ubuntu内存不足,用Swap扩展增加虚拟内存

2024-03-21 16:28

本文主要是介绍ubuntu内存不足,用Swap扩展增加虚拟内存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux增大Swap分区,可以增加虚拟内存,以解决电脑卡机,内存不足等问题

top可以查看cpu的使用情况

lscpu可以查看本机配置的cpu硬件情况

  • 查看内存使用情况 free -h
    (下面显示"交换"或者Swap等字样说明系统已经启动了Swap)
dx@dx-UX330:~$ free -htotal        used        free      shared  buff/cache   available
内存:      7.6Gi       5.5Gi       222Mi       1.2Gi       1.9Gi       620Mi
交换:      2.0Gi       2.0Gi       0.0Ki
  • 查看内存剩余情况df -h
dx@dx-UX330:~$ df -h
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           782M  1.9M  780M    1% /run
/dev/sda6        58G   41G   15G   74% /
tmpfs           3.9G  2.4M  3.9G    1% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
efivarfs        128K   52K   72K   42% /sys/firmware/efi/efivars
tmpfs           3.9G     0  3.9G    0% /run/qemu
/dev/sda1       256M   36M  221M   14% /boot/efi
tmpfs           782M  1.7M  781M    1% /run/user/1000
/dev/sda4       2.1G   13M  2.1G    1% /media/dx/D卷
/dev/sda3       177G  167G  9.8G   95% /media/dx/OS

由上面观察,/dev/sda6 还有一定空间可用,可作为扩展Swap的备选

  • 查看Swap空间大小
root@dx-UX330:/home/dx# sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   2G   -2

观察上面可以知道,目前挂载的swap空间是在一个叫做/swapfile的文件上的,为2G

如果想对现有的Swap空间进行扩展,可以直接新建一个swap文件(当然,不能再叫做/swapfile了,可以换个名字,比如叫做/swap),这是为了为避免在设置时候发生名字冲突。
我们新起的这个文件就叫做/swap(再次提醒,之前设置swap空间的文件叫做/swapfile,新建的叫做/swap)

现在来修改这个新建的/swap的大小,进入系统根目录:


cd /

使用dd命令增加/swap文件的大小。例如,如果想将swap空间扩展到8G,可以执行:


sudo dd if=/dev/zero of=/swap bs=1M count=8192

这里的bs=1M count=8192表示每块大小为1M,共8192块,即总共8G。
当然你也可以让bs=1M count=16384表示每块大小为1M,共16384块,即总共16G。

现在来处理旧的/swapfile文件,查看他是否还在运行
sudo mkswap /swapfile
如果旧的文件正在被用作Swap空间,你需要首先使用swapoff命令来停用它:
sudo swapoff /swapfile

然后,你才可以使用mkswap命令来设置新的Swap空间:sudo mkswap /swap
最后使用swapon命令来启用Swap空间:sudo swapon /swap

注意:当你尝试使用下一步的 sudo swapon /swap 命令启用Swap文件时,系统可能会警告你关于不安全的权限设置。错误消息 swapon: /swap: insecure permissions 0644, 0600 suggested 指出Swap文件的当前权限是0644,这意味着文件所有者可以读写该文件,而其他用户只能读取它。出于安全考虑,Swap文件通常应该只有root用户才能读写,因此建议的权限是0600。要解决这个问题,你可以使用 chmod 命令将Swap文件的权限更改为0600:


sudo chmod 0600 /swap

激活新的Swap空间大小:


sudo mkswap /swap  sudo swapon /swap

最后,使用free -m命令验证Swap空间是否已成功扩展。

  • 设置为永久Swap

如果你希望系统在每次启动时都自动加载新的Swap空间,需要将Swap文件添加到/etc/fstab文件中。可以使用文本编辑器打开该文件,并在文件末尾添加类似下面的行:


/swapfile swap swap defaults 0 0

保存并关闭fstab文件。

原本的文件
在这里插入图片描述

修改后的文件
在这里插入图片描述

电脑重启后,使用命令sudo swapon --show 观察新的Swap是否已经被挂载上

dx@dx-UX330:~$ sudo swapon --show
[sudo] dx 的密码: 
NAME      TYPE SIZE USED PRIO
/swapfile file   2G 1.8G   -2
/swap     file   8G   0B   -3
  • Q:如何查看Swap文件/swapfile的所有者是谁(应该为root用户)
    ls -l /swapfile
    输出应该是类似这样的
    -rw------- 1 root root <文件大小> <日期时间> /swapfile

  • Q:如何修改文件的所有者?
    你可以使用chown命令来更改文件/swapfile的所有者,如下所示:
    sudo chown root:root /swapfile

这篇关于ubuntu内存不足,用Swap扩展增加虚拟内存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/833196

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20