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日

相关文章

  • 在sqlserver中如何使用CTE解决复杂查询问题

    CTE(Common Table Expression)是 SQL Server 中一个强大的查询方式,它主要用于解决复杂查询问题,并可以提高查询效率。在 SQL Server 2005 之前,我们可能需要嵌套多个子查询或使用临时表等方式来解决复杂查询问题,但这些方式难以维护且效率有限。而 CTE 可以更清晰地表达查询逻辑、提高查询效率且易于维护。 下面是 …

    database 2023年5月21日
    00
  • MySQL的Data_ADD函数与日期格式化函数说明

    MySQL中的DATE_ADD函数可以用于对日期和时间进行加减运算,可以将指定的时间加上一定的时间间隔,生成新的日期和时间。 DATE_ADD函数语法如下: DATE_ADD(date,INTERVAL expr type) 其中,date参数是日期或时间的表达式,INTERVAL关键字可以指定一个时间间隔,expr则是需要指定的时间间隔的具体数值,type…

    database 2023年5月22日
    00
  • linux环境安装node.js开发环境搭建图文教程

    下面是详细的“Linux环境安装Node.js开发环境搭建图文教程”: 简介 Node.js是基于谷歌V8引擎的JavaScript运行环境,它可以将JavaScript代码使用操作系统的API与本地资源进行交互。本篇教程将会介绍如何在Linux环境下安装Node.js,并搭建开发环境。 步骤 1. 安装Node.js 首先需要安装Node.js,可以通过官…

    database 2023年5月22日
    00
  • MySQL中符号@的作用

    当在 MySQL 中使用符号 @ 时,有以下两个常见的作用: 1. 用户变量 用户变量是一种可以保存值以供后续查询使用的变量。在MySQL中,用户变量以 @ 符号开头,后面跟上变量名,例如 @my_variable。 用户变量与普通变量的区别在于,用户变量只在当前连接中有效。也就是说,如果您使用多个连接来访问同一个数据库,则每个连接都有其自己的变量。 以下是…

    database 2023年5月22日
    00
  • 使用mongovue把sqlserver数据导入mongodb的步骤

    使用mongovue工具将SQL Server数据导入MongoDB需要以下步骤: 下载和安装mongovue工具。 在mongovue中创建一个新的MongoDB连接。 选择导入数据的目标数据库。 打开SQL Server Management Studio(SSMS),并运行一个查询来选择您要导出的数据。 将 SSMS 中的查询结果导出为CSV文件。 在…

    database 2023年5月21日
    00
  • php+Ajax处理xml与json格式数据的方法示例

    下面是“php+Ajax处理xml与json格式数据的方法示例”的详细攻略。 一、xml数据处理 1.使用DOM进行xml数据解析 使用DOM可以很容易地解析xml数据,下面是一个简单的示例。 <?php $xml = ‘<?xml version="1.0" encoding="UTF-8"?> &…

    database 2023年5月21日
    00
  • redis反序列化报错如何解决

    这篇文章主要介绍“redis反序列化报错如何解决”,在日常操作中,相信很多人在redis反序列化报错如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis反序列化报错如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! redis反序列化报错原因分析 问题:Cannot deserialize,无法反序列化 分…

    Redis 2023年4月10日
    00
  • VS2022连接数据库MySQL并进行基本的表的操作指南

    下面是“VS2022连接数据库MySQL并进行基本的表的操作指南”的完整攻略: 准备工作 安装 MySQL 数据库,可以从官网下载安装包:https://dev.mysql.com/downloads/mysql/。 安装 MySQL 数据库的 .NET 驱动程序,可以从官网下载安装包:https://dev.mysql.com/downloads/conn…

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