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日

相关文章

  • redis之List操作

    List操作,redis中的List在在内存中按照一个name对应一个List来存储。如图:     1、lpush(name,values) # 在name对应的list中添加元素,每个新的元素都添加到列表的最左边 # 如: # r.lpush(‘oo’, 11,22,33) # 保存顺序为: 33,22,11 # 扩展: # rpush(name, va…

    Redis 2023年4月12日
    00
  • redis中key的设置方法步骤

    Redis是一种基于内存的键值对数据库,它支持丰富的数据类型,同时也提供了强大的键管理机制。在Redis中,key是最基本的存储单位,下面我们就来详细讲解一下Redis中key的设置方法步骤。 1. 命令格式 在Redis中,设置一个key的语法结构非常简单,例如: SET key value 其中key表示键名,value表示键值。 2. 键名的命名规则 …

    database 2023年5月22日
    00
  • 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

    深入理解SQL的四种连接 背景 在使用关系型数据库时,连接是一个非常重要的操作。有很多种连接方式,本文将介绍SQL中最常见的四种连接:左外连接、右外连接、内连接和全连接。 左外连接(LEFT JOIN) 左外连接是指将左表中的所有行与右表中匹配的行连接起来,如果右表中没有匹配的行,则用空值来填充。语法如下: SELECT * FROM table_a LEF…

    database 2023年5月22日
    00
  • 解决centos7中tomcat启动与本机访问问题

    下面我将为大家提供详细的“解决centos7中tomcat启动与本机访问问题”的攻略。具体步骤如下: 1. 安装Tomcat 在centos7上安装Tomcat,可以使用以下命令: sudo yum install tomcat 注意:如果没有安装Java环境,需要先安装Java环境。可以使用以下命令来检查Java是否安装: java -version 如果…

    database 2023年5月22日
    00
  • MySQL死锁的产生原因以及解决方案

    MySQL死锁是指两个或多个事务,互相持有对方所需要的资源,导致所有事务都被阻塞,无法继续执行的情况。死锁的产生原因主要是并发控制不当和数据操作不规范。下面是详细的解释和解决方案。 产生原因 数据库并发控制不当:当多个事务同时请求并获取同一个资源时,会使所有请求被阻塞。当这种情况发生时,MySQL会尝试回滚某个事务来打破死锁,但这往往会导致数据的不一致。 数…

    database 2023年5月22日
    00
  • MySQL利用UNION连接2个查询排序失效详解

    MySQL中的UNION操作符可以将两个或多个SELECT语句的结果集合并在一起,而且不会重复。在使用UNION连接两个查询进行排序时,需要注意以下问题: UNION前后查询的字段数必须相等,且类型也要一致; UNION连接查询的结果集会自动去重,需要使用UNION ALL才能保留重复的记录; UNION操作会对所有的查询进行排序,而且会消耗更多的资源。 下…

    database 2023年5月22日
    00
  • Linux下定时自动备份Docker中所有SqlServer数据库的脚本

    下面就是“Linux下定时自动备份Docker中所有SqlServer数据库的脚本”的攻略。 准备工作 在开始操作脚本之前,需要先进行一些准备工作。 安装mssql-cli工具 为了能够操作SqlServer数据库,需要安装mssql-cli工具。mssql-cli是微软推出的命令行工具,能够方便地连接SqlServer数据库以及执行T-SQL语句。 安装方…

    database 2023年5月22日
    00
  • 使用shell脚本一键部署LNMP架构的方法

    使用shell脚本一键部署LNMP架构的方法需要以下几个步骤: 1. 安装必要的软件 在使用shell脚本部署LNMP之前,需要安装以下软件:- Git:用于从Github上下载LNMP的脚本文件;- Nginx:用于提供HTTP服务并负责反向代理PHP-FPM;- MySQL:用于存储数据;- PHP:用于解析PHP代码;- PHP-FPM:用于处理PHP…

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