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中mysql密码修改

    这个方式是你可以在知道密码的情况下进行密码修改,也可以在不知道密码的情况下进行密码修改 重置密码第一步: #vim /etc/my.cnf(注:windows下面修改的是my.ini) 在文档内搜索mysqld定位到【mysqld】文本段 在【mysqld】后面的任意一行添加“skip-grant-tables”用来跳过密码验证的过程。 第二部:重启mysq…

    Linux 2023年4月11日
    00
  • tomcat性能优化之如何搭建Apr模块

    Tomcat性能优化之如何搭建Apr模块 什么是Apr模块 Apr是Apache Portable Runtime的缩写,是一个跨平台的Apache服务器公共库,提供了一系列高性能和稳定的API,可以显著提高Apache服务器的性能。Apr模块可以让Tomcat在处理请求时更快地响应客户端请求。 如何搭建Apr模块 步骤一:安装Apr库 首先下载Apache…

    Linux 2023年5月14日
    00
  • MongoDB基础知识梳理

      简介 MongoDB 是由 C++ 编写的开源 NoSQL 和基于文档的数据库。MongoDB 提供了面向文档的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一款非常流行的文档类型数据库。 MongoDB 是非关系型数据库当中功能最丰富,最像关系型数据库的。它支持的数据结构非常松散,会将数据存储为一个文档,数据…

    2023年4月8日
    00
  • Linux 修改Python命令的方法示例

    下面我将为你详细讲解“Linux修改Python命令的方法示例”的完整攻略。 背景 在使用 Linux 系统时,我们经常会使用 Python 解释器来运行 Python 程序。但是,有些时候你可能会遇到这样的情况:你想使用系统中的其他 Python 版本,但是在终端中输入 python 命令时,默认会使用系统中的 Python 版本。那么,如何修改 pyth…

    Linux 2023年5月14日
    00
  • Linux下python2和python3共存

    https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 下载命令: wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 解压: tar xvf Python-3.4.4.tar.xz 进入目录: cd Python-3…

    Linux 2023年4月12日
    00
  • Xshell5连接虚拟机中的Linux的方法以及失败原因解决

    下面是 “Xshell5连接虚拟机中的Linux的方法以及失败原因解决” 的完整攻略。 介绍 在虚拟机程序(例如VMware Workstation、VirtualBox)中新建一个Linux虚拟机时,我们通常会需要连接到虚拟机中的Linux系统,使用Xshell5工具是一种很常见的连接方式,本攻略将介绍如何使用Xshell5连接到虚拟机中的Linux,并解…

    Linux 2023年5月24日
    00
  • Linux系统镜像制作

    Linux系统镜像制作 https://biux.cn/archives/26.htmlhttps://www.cnblogs.com/linuxAndMcu/p/10774020.htmlhttps://www.cnblogs.com/sztom/p/10184766.htmlhttps://developer.aliyun.com/article/481…

    Linux 2023年4月11日
    00
  • Linux securetty命令

    Linux 中的 securetty 命令是一个用于控制哪些终端可以登录系统的命令。它可以在 Linux 系统中配置哪些终端可以用于登录系统,以提高系统的安全。在 Linux 中,通常会使用 securetty 命令来配置终端登录权限,以便只有授权的终端可以登录系统。 使用 securetty 命令基本语法如下: securetty [options] 其中…

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