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

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解