linux怎么调整swap大小? linux扩容swap分区的技巧

Linux系统使用swap来扩展内存,当内存不足时,会将不常用的内存数据写入swap分区中。如果swap分区空间不足,就需要调整swap的大小。本文将介绍如何调整swap分区大小和Linux扩容swap分区的技巧。

调整swap分区大小

步骤1:查看当前swap分区情况

使用free -h命令查看当前的swap分区情况,如下所示:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        1.0G        133M         15M        796M        767M
Swap:          2.0G        128M        1.9G

可以看到当前系统的swap分区大小为2.0G。

步骤2:关闭swap分区

在修改swap分区时,需要先关闭swap分区。使用sudo swapoff -a命令关闭所有的swap分区。

步骤3:删除swap分区

使用sudo fdisk /dev/sdX命令进入分区工具,其中sdx为需要扩容的磁盘。使用d命令删除swap分区,在确认后使用w命令保存更改并退出分区工具。

步骤4:新建swap分区

使用sudo mkswap /dev/sdXN命令创建新的swap分区,其中sdx为需要扩容磁盘,N为新的swap分区号。

步骤5:启用swap分区

使用sudo swapon /dev/sdXN命令启用新的swap分区,其中sdx为需要扩容磁盘,N为新的swap分区号。

步骤6:修改swap分区大小

修改/etc/fstab文件,将原来的swap分区UUID改为新的swap分区UUID,即将之前的UUID替换为新的swap分区UUID。

步骤7:查看swap分区情况

使用free -h命令查看当前的swap分区情况,确认是否扩容成功。

Linux扩容swap分区的技巧

在Linux系统中,可以通过以下两种方式实现扩容swap分区的需求:

方式1:使用swap文件

可以通过新建swap文件的方式,在不改变磁盘分区结构的情况下,扩容swap分区。

  1. 创建swap文件:sudo dd if=/dev/zero of=/swapfile bs=1G count=4,其中bs指定块大小,count指定块数量,即创建一个4G大小的swap文件。

  2. 格式化swap文件:sudo mkswap /swapfile

  3. 启用swap文件:sudo swapon /swapfile

  4. 修改/etc/fstab文件:将/swapfile的设置加入/etc/fstab文件。

方式2:使用LVM

使用LVM(逻辑卷管理器)功能,可以方便地在分区扩容时扩容swap分区。

  1. 创建逻辑卷:sudo lvcreate -L 2G -n swap lv_root,其中-L指定逻辑卷大小,-n指定逻辑卷名称,前提是安装了LVM。

  2. 格式化逻辑卷:sudo mkswap /dev/mapper/vg_root-swap

  3. 启用逻辑卷:sudo swapon /dev/mapper/vg_root-swap

  4. 修改/etc/fstab文件:将/dev/mapper/vg_root-swap的设置加入/etc/fstab文件。

示例

在Ubuntu 20.04 LTS系统中,使用lsblk命令查看当前swap分区情况:

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
├─sda1   8:1    0  512M  0 part /boot/efi
└─sda2   8:2    0 19.5G  0 part /
sdb      8:16   0 1000G  0 disk
└─sdb1   8:17   0 1000G  0 part /data
sr0     11:0    1 1024M  0 rom

可以看到当前系统上没有swap分区。使用以下命令创建一个2G大小的swap逻辑卷:

$ sudo lvcreate -L 2G -n swap lv_root

使用以下命令查看创建结果:

$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_root/swap
  LV Name                swap
  VG Name                vg_root
  LV UUID                fAVeu9-3B31-l0YC-DbrO-8dCw-CtLY-7g2X8A
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2022-02-21 13:34:42 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

可以看到,创建成功。接下来使用以下命令格式化逻辑卷:

$ sudo mkswap /dev/vg_root/swap

使用以下命令启用逻辑卷:

$ sudo swapon /dev/vg_root/swap

最后使用free -h命令查看当前的swap分区情况:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        1.2G         10M         45M        720M        684M
Swap:          2.0G          0B        2.0G

可以看到,swap分区已成功扩容,并且分区大小已经变成2.0G。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux怎么调整swap大小? linux扩容swap分区的技巧 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySQL检索数据操作方法梳理

    MySQL检索数据操作方法梳理 MySQL作为一种开源且广泛应用的关系型数据库管理系统,其检索数据的操作方法是数据库开发中经常使用的基本技能。下面是MySQL检索数据操作方法的详细攻略,包括基本语法、常用关键字和示例说明等内容。 基本语法 在MySQL中,检索数据的基本语法为: SELECT column1, column2, … FROM table_…

    database 2023年5月22日
    00
  • 深入浅析mybatis oracle BLOB类型字段保存与读取

    深入浅析MyBatis Oracle BLOB类型字段的保存与读取 概述 在使用MyBatis操作Oracle数据库过程中,我们可能会遇到BLOB类型字段的保存和读取问题。BLOB类型字段通常用于存储大型二进制数据,比如图片、音频、视频等。如何使用MyBatis操作BLOB类型字段是一个需要仔细思考的问题。 本文将介绍如何使用MyBatis进行Oracle数…

    database 2023年5月21日
    00
  • 零基础之Node.js搭建API服务器的详解

    下面是“零基础之Node.js搭建API服务器的详解”的完整攻略: 介绍 本文主要讲解如何使用Node.js搭建一个简单的API服务器,使用的工具有Express和MongoDB,主要内容包括: 安装Node.js和MongoDB 使用Express快速生成项目框架 定义API接口 连接数据库 编写API接口的实现 测试API接口 步骤 1. 安装Node.…

    database 2023年5月22日
    00
  • android设备不识别awk命令 缺少busybox怎么办

    Android设备不识别awk命令 缺少Busybox解决方案 在某些情况下,我们需要在Android设备上使用awk命令进行文本处理,但是发现设备不识别awk命令,这是因为Android本身并没有集成awk命令。要使用awk命令,我们需要安装busybox工具。 什么是Busybox Busybox是一个单一可执行文件的工具箱,它包含了常用Linux命令的…

    database 2023年5月22日
    00
  • MySQL — 练习题

      一. 表关系 1. 创建如下表,并创建相关约束.   # 创建班级表 create table class ( cid int primary key not null auto_increment, caption varchar(20) not null ); # 创建老师表 create table teacher ( tid int primar…

    MySQL 2023年4月13日
    00
  • mysql字符集和校对规则(Mysql校对集)

    MySQL字符集和校对规则是指在MySQL中使用哪种字符编码来存储数据以及如何基于这些编码进行比较排序。它对于数据的存储和检索至关重要,因为字符集和校对规则的错误设置可能会导致数据损坏和查询错误。 字符集 MySQL中支持多种字符集,包括ASCII、Latin1、UTF-8、GBK等。其中,UTF-8是目前最流行的字符集,具有广泛的应用和良好的跨平台性。 在…

    database 2023年5月22日
    00
  • CentOS下Redis数据库的基本安装与配置教程

    CentOS下Redis数据库的基本安装与配置教程 1. 安装Redis 在CentOS系统下安装Redis是十分简单的。只需使用系统默认的yum包管理工具即可完成。 打开终端并输入以下命令以更新yum: bash sudo yum update 安装redis: bash sudo yum install redis 安装完成后,可通过以下命令检查Redi…

    database 2023年5月22日
    00
  • MySQL 在触发器里中断记录的插入或更新?

    MySQL 触发器是一种特殊的存储过程,它能够在特定的事件发生时自动执行代码。在某些情况下,我们需要在触发器内中断记录的插入或更新操作,这可以通过抛出异常来实现。本文将提供一种完整的攻略来实现这一操作,具体步骤如下: 1. 定义触发器 首先,我们需要定义一个触发器,该触发器能够捕获插入或更新操作。假设我们有一个名为 orders 的表,我们需要在该表上定义一…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部