CentOS技巧:减小Linux swap分区的方法

下面是“CentOS技巧:减小Linux swap分区的方法”的完整攻略:

介绍

Swap分区是Linux系统中的一种特殊分区,主要用于在物理内存不足时作为虚拟内存进行使用。但是,在某些情况下,我们可能需要减小Swap分区的大小,如修改分区布局或调整系统资源分配等。本文将介绍如何减小Linux Swap分区的大小。

步骤

1. 检查Swap使用情况

在开始减小Swap分区之前,需要先检查Swap的使用情况,确保Swap分区中不包含重要的信息。可以使用以下命令来查看Swap分区的使用情况:

sudo swapon -s

例如,输出可能如下所示:

Filename                Type        Size    Used    Priority
/dev/sda5               partition   2096124 904     -2

在这种情况下,/dev/sda5是Swap分区的设备文件,大小为2096124KB,已经使用了904KB。

2. 关闭Swap分区

在减小Swap分区之前,需要先关闭Swap分区。可以使用以下命令来关闭Swap分区:

sudo swapoff -v /dev/sda5

其中,/dev/sda5是需要关闭的Swap分区的设备文件。如果你的Swap分区不是/dev/sda5,请替换为你自己的Swap分区。

3. 编辑分区表

在关闭Swap分区之后,需要编辑分区表以减小Swap分区的大小。可以使用fdisk,gdisk或parted等分区工具来进行操作。这里我们以parted为例来说明如何编辑分区表。

首先,需要使用parted命令打开磁盘分区表:

sudo parted /dev/sda

其中,/dev/sda是需要编辑的磁盘设备文件。

现在,我们可以查看分区信息:

(parted) print all

输出可能如下所示:

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 11.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  525MB   524MB   primary   ext4            boot
 2      525MB   3357MB  2831MB  extended
 5      525MB   3357MB  2831MB  logical   linux-swap(v1)

这里,我们可以看到/dev/sda上的分区信息。Swap分区在/dev/sda5的位置,大小为2831MB。

现在,我们可以使用resizepart命令来减少分区大小:

(parted) resizepart 5 2000MB

这里,我们将/dev/sda5的大小减少到2000MB。请注意,这个命令只是调整分区大小,而不会修改分区中的数据。

4. 重新格式化Swap分区

在调整完分区大小之后,需要重新格式化Swap分区。可以使用以下命令来格式化Swap分区:

sudo mkswap /dev/sda5

其中,/dev/sda5是需要重新格式化的Swap分区的设备文件。

5. 启动Swap分区

在重新格式化Swap分区之后,需要启动Swap分区。可以使用以下命令来启动Swap分区:

sudo swapon -v /dev/sda5

现在,我们使用第一步中的命令来确认Swap分区已经启用:

sudo swapon -s

输出可能如下所示:

Filename                Type        Size    Used    Priority
/dev/sda5               partition   2000000 0       -2

在这种情况下,Swap分区的大小已经减少到2000000KB。

示例

示例一:减少/VAR/SWAPFILE大小

有时候使用了交换文件的 CentOS 系统,在安装时间时 /var/swapfile 空间规格就会被设定为系统规格的两倍或是四倍,这样在后续发现 swap 占用空间未到达 /var/swapfile 原始大小时,可以通过 lcationalloc 和 swapoff 命令,将文件缩小到期望大小并重新开启 swap 分区:

#验证
$ free -m
Swap:          4048            0         4048
#关闭swap
$ sudo swapoff -a
#删除swap文件
$ sudo rm /var/swapfile
#重新创建swap文件512M
$ sudo fallocate -l 512M /var/swapfile
#修改权限
$ sudo chmod 600 /var/swapfile
#格式化创建swap
$ sudo mkswap /var/swapfile
#开启swap
$ sudo swapon /var/swapfile
#验证
$ free -m
                      total        used        free      shared  buff/cache   available
Mem:                    8598        1322        4795         101        2480        6817
Swap:                    511           0         511

示例二:减小分区大小

centos 系统默认是较为简单的全新安装来的,不需要过多操作,但是在使用一段时间后,已经安装的程序较多,因此难免会遇到内存不充分的情况。而这个时候,大部分人都会考虑是否可以进行 swap 扩容或者进行 Linux 分区还原。这里介绍了减小一个 Swap 分区的大小的一个详细教程。

假设你有 /dev/sda3,一个 swap 分区大小为 8G,而你希望减少它至 2G:

  • 首先关闭当前的 swap:
sudo swapoff /dev/sda3
  • 然后将 /dev/sda3 设定为分区类型 id 为 82(Linux swap):
sudo fdisk /dev/sda
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap).
  • 将分区大小也加以缩减:
sudo fdisk /dev/sda
Command (m for help): d
Partition number (1-4): 3
Partition 3 has been deleted.
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (654-155061, default 654):
Using default value 654
Last cylinder, +cylinders or +size{K,M,G} (654-155061, default 155061):
Using default value 155061

注意在这里我们将开始块和结束块设置成了新的值,这样可以改变分区大小,但是确保要覆盖 Swap 的初始块。

  • 确保你输入完毕以后,最后使用 p 命令查看一下分区情况:
Command (m for help): p
Disk /dev/sda: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         275     2096482+  82  Linux swap / Solaris
/dev/sda3             276       19452   154129392+  83  Linux

剩下的就是你已经喜欢的其他 Linux 分区流程了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS技巧:减小Linux swap分区的方法 - Python技术站

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

相关文章

  • Linux配置免密登录单机和全分布详细教程

    Linux配置免密登录单机和全分布详细教程 在Linux环境下,配置免密登录可以提高我们的工作效率,本教程将详细介绍如何通过配置SSH密钥对来实现免密登录。 前置条件 需要确保客户端和服务器之间已经可以通过SSH进行远程连接。 步骤一:生成SSH密钥对 1.1 在客户端生成密钥对 打开终端,输入以下命令: ssh-keygen -t rsa 该命令执行后会显…

    Linux 2023年5月24日
    00
  • linux中的list源码分析

    网上关于list的源码分析很多,这里只是学习做比较。 list的数据结构定义 /* *双链表 */ struct list_head {   struct list_head * next, ** prev; }; 或许我们比较习惯如下的形式 struct list_head {   struct list_head * next;   struct lis…

    Linux 2023年4月11日
    00
  • [Linux] ssh秘钥对免密码登陆

      准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的.ssh目录下 执行ssh-keygen 命令, 会生成两个文件 id_rsa 和id_rsa.pub 2. 把id_rsa.pub文件上传添加到服务器b的 …

    Linux 2023年4月13日
    00
  • Linux下安装SQLServer2019的方法

    安装SQL Server 2019在Linux下主要是通过Docker镜像进行安装。以下是详细的步骤: 首先需要安装Docker和Docker Compose,可以参考官方文档进行安装。 在终端中输入以下命令拉取SQL Server 2019镜像: sudo docker pull mcr.microsoft.com/mssql/server:2019-la…

    Linux 2023年5月14日
    00
  • Linux环境下使用jsoncpp

    Linux环境下使用jsoncpp 目录 1. 下载jsoncpp 2. 生成静态库libjsoncpp.a 3. 复制相关文件至/usr/local下(方便编程) 4. CMakeList.txt编写(需要新增的) 1. 下载jsoncpp –>https://github.com/open-source-parsers/jsoncpp/tree/…

    2023年4月8日
    00
  • Linux 性能监控分析

    当我们需要及时了解系统各项指标的时候,就需要利用一些性能监控工具对系统进行实时数据的统计和分析。这里提供一个基本的“Linux性能监控分析”的攻略,帮助读者快速了解和掌握Linux系统的性能监控分析技巧。 1. 监控工具简介 top:top 是用来实时显示系统中各个进程的状态和资源占用情况的工具。可以通过 top 来查看 CPU 的占用情况、内存使用情况。 …

    Linux 2023年5月14日
    00
  • VMware克隆Linux提示找不到eth0的解决方法

    VMware克隆Linux操作系统后,可能会出现找不到eth0的情况,这是由于Linux系统默认以MAC地址命名网卡导致的。针对这样的问题,我们可以采取以下两种方法进行解决。 方法一:修改/etc/udev/rules.d/70-persistent-net.rules文件 1.进入Linux系统,打开终端。 2.输入以下命令进入文件夹: cd /etc/u…

    Linux 2023年5月24日
    00
  • Linux 下 Bash配置文件读取

     Linux安装时可能要修改的配置文件:/etc/profile、/etc/bashrc(ubuntu没有这个文件,对应地,其有/etc/bash.bashrc文件。我用的是ubuntu系统,所以下面将一律使用/etc/bash.bashrc来叙述)、~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc。 ut…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部