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

yizhihongxing

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日

相关文章

  • ASP.net MVC redis完整示例(含集合,哈希,sortedset)

    (核心部分原创,转载请保留链接) 1:下载redis for windows or linux安装并开启服务,并在vs的工具菜单下安装nuget(本文采用windows版本) http://www.fanli7.net/a/caozuoxitong/Windows/20150318/497842.html(redis安装和开启) http://www.cnb…

    Redis 2023年4月12日
    00
  • Oracle中PL/SQL复合数据类型

    很好,下面是Oracle中PL/SQL复合数据类型的详细攻略: 什么是PL/SQL复合数据类型 PL/SQL (Procedural Language/Structured Query Language)是Oracle数据库的过程式语言,它支持复合数据类型。复合数据类型是将不同类型的数据组合成一个整体来处理。PL/SQL中的复合数据类型主要包括数组类型、记录…

    database 2023年5月21日
    00
  • redis搭建哨兵集群的实现步骤

    下面是关于”redis搭建哨兵集群的实现步骤”的详细攻略。 1. 前置条件 在搭建哨兵集群之前,需要先安装并配置好redis主从集群。 2. 部署哨兵节点 2.1 安装redis 使用apt-get命令安装redis: sudo apt-get install redis-server 2.2 配置redis 在每个redis节点的配置文件中,需要添加如下配…

    database 2023年5月22日
    00
  • 深入理解Java虚拟机体系结构

    理解JVM体系结构的核心概念 JVM体系结构由类加载器、运行时数据区、执行引擎三个部分构成。其中,类加载器主要负责将.class文件加载进JVM并转换为字节码,运行时数据区则负责存放类、对象、方法等信息。执行引擎则是JVM的核心,它负责将字节码转换为机器码并执行。了解这些核心概念是理解JVM体系结构的基础。 理解JVM执行字节码的过程 JVM执行字节码的流程…

    database 2023年5月21日
    00
  • PHP程序员玩转Linux系列 备份还原MySQL

    PHP程序员玩转Linux系列 备份还原MySQL 简介 当我们在网站开发中涉及到MySQL数据库的操作时,备份还原数据库是很必要的操作。Linux系统提供了多种方式来备份和还原MySQL数据库。 方法一:使用 mysqldump 命令 备份数据库 使用 mysqldump 命令可以备份MySQL数据库。以下是备份的命令: mysqldump -u user…

    database 2023年5月22日
    00
  • sql server创建临时表的两种写法和删除临时表

    SQL Server是一款常见的关系型数据库管理系统,它允许用户创建临时表。临时表与普通表不同,它们用于存储临时数据,只在当前会话中存在,并在会话结束时被自动删除。创建临时表可使用两种不同的语法,分别为“CREATE TABLE #临时表名”和“CREATE TABLE ##临时表名”。 创建临时表的两种写法 CREATE TABLE #临时表名 使用CRE…

    database 2023年5月21日
    00
  • mysql中格式化日期详解

    MySQL中格式化日期详解 MySQL中,使用DATE_FORMAT()函数能够将日期、时间类型的数据格式化为我们需要的字符串格式。 语法 DATE_FORMAT(date,format) 其中,date为MySQL中日期、时间类型的字段或表达式,format为日期、时间格式字符串。 格式化语法 格式符号 含义 %Y 四位数字的完整年份 %y 两位数字的年份…

    database 2023年5月22日
    00
  • Centos下配置Redis开机启动脚本

    下面是 CentOS 下配置 Redis 开机启动脚本的完整攻略。 步骤1:下载并安装 Redis 首先需要下载并安装 Redis,可以到 Redis 官网(https://redis.io/download)下载对应版本的 Redis,解压到指定目录,然后使用 make 命令进行编译和安装即可,具体步骤如下: # 下载 Redis 5.0.8 wget h…

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