配色: 字号:
什么是交换分区以及如何创建交换分区
2023-09-17 | 阅:  转:  |  分享 
  
介绍交换分区是Linux中的一项功能,可提供虚拟内存空间和多种好处。它允许操作系统有效地处理内存需求。因此,交换分区提高了系统稳定性、响应能
力和繁重工作负载处理。本指南将探讨交换分区及其优缺点,并概述在 Linux 系统上创建和管理交换分区的步骤。先决条件运行 Linu
x 的系统。具有 root 权限的帐户。硬盘上的可用空间。什么是交换分区?交换分区是硬盘驱动器的一部分,用作交换内存,即 RAM
的溢出空间。使用交换分区的目的是使计算机比仅使用 RAM 更有能力处理内存请求。当 RAM 开始填满时,操作系统会将不常用的进程或
数据从 RAM 移至交换分区。底层机制是?交换?或?分页,它使用交换分区作为虚拟内存。当没有足够的物理 RAM 来容纳所有当前活动
的数据和程序时,该机制会扩展可用内存。尽管使用交换分区听起来是一种增加可用内存量的简单方法,而无需将计算机升级为更多 RAM,但事
实并非如此。有一些限制和指南,如下所述。使用交换分区的好处交换分区在 Linux 或其他类Unix操作系统中提供了多种好处。使用交
换分区的一些优点是:虚拟内存扩展。交换空间用作物理内存 (RAM) 的扩展。当 RAM 被充分利用时,操作系统会将不常访问的数据临
时存储在交换空间中。这样做可以增加系统的虚拟内存,允许用户同时运行更多应用程序。提高系统稳定性。如果系统耗尽物理 RAM,它可能会
变得不稳定甚至崩溃。交换分区通过在物理内存过载时提供安全网来防止这种情况发生。多任务处理。交换分区允许用户同时运行更多应用程序,而
不会遇到内存不足导致的速度减慢或崩溃的情况。此功能对于工作负载繁重的服务器和系统特别有利。休眠支持。许多操作系统(包括 Linux
和 Windows)在计算机处于休眠状态时使用交换分区来存储 RAM 的内容。休眠允许用户关闭计算机电源,然后从中断处恢复工作。
不会出现内存不足 (OOM) 情况。如果进程占用过多内存,拥有交换空间可以防止 OOM 情况。操作系统将不太重要的数据交换到交换分
区,以允许关键的系统进程继续运行。紧急恢复。交换分区在内核崩溃或崩溃时会很有帮助。交换分区捕获内存转储,这对于诊断崩溃原因和故障排
除非常有价值。兼容性。交换分区受到各种操作系统的支持,使其成为可靠且广泛使用的内存管理解决方案。使用交换分区的缺点交换分区有很多好
处,但如果过度使用,也会有缺点和注意事项。潜在的缺点是:磁盘空间使用情况。交换分区会占用一部分磁盘空间,这在存储容量有限的系统中很
不方便。性能较慢。性能会下降,因为读取和写入磁盘的速度明显慢于访问 RAM 中的数据。过多的交换(颠簸)会降低系统性能。磁盘磨损。
固态硬盘 (SSD)每个存储单元的写入周期有限。频繁交换会增加 SSD 的磨损,从而缩短其使用寿命。对于传统硬盘驱动器 (HDD)
,磁盘磨损不太令人担忧。资源利用效率低下。在某些情况下,交换分区可以掩盖与物理 RAM 不足相关的问题。虽然解决方案是添加更多 R
AM 或优化软件,但严重依赖交换空间可能会导致性能下降。复杂的管理。管理交换分区可能比管理交换文件更复杂。分区需要在系统安装或扩展
时手动创建和管理,这比配置交换文件更不方便。碎片化。随着时间的推移,交换分区会变得碎片化,从而降低系统性能。当数据在交换空间中写入
和删除时,就会产生碎片。灵活性有限。更改交换分区的大小可能需要调整系统分区的大小,甚至重新配置整个存储设置,这可能既耗时又存在风险
。潜在的安全风险。正在运行的进程中的敏感数据最终可能会出现在交换空间中。如果交换空间未正确加密,则存在未经授权访问磁盘的安全风险。
为了减轻这些缺点,请遵循使用交换分区的一般准则,以最大限度地减少交换,并根据您的特定系统要求和约束创建分区。如何检查/查找您的交换
分区有几种方法可以检查 Linux 交换分区的大小和使用情况:交换命令使用该swapon命令激活交换分区或显示现有交换分区的详细信
息。请按照以下步骤操作:1. 打开终端(Ctrl?+?Alt?+?T)。2. 运行以下命令:swapon --show?编辑输出显
示交换空间的路径、交换类型(分区或文件)、大小以及当前使用的交换量。优先级列确定在存在多个交换空间的情况下交换数据时使用交换设备的
顺序。在上面的示例中,交换分区尚未配置,因此磁盘上仅存在一个交换文件。检查 /proc/swaps 文件/proc/swaps文件
?包含交换空间信息及其利用率。使用cat 命令查看该文件。跑步:cat /proc/swaps?编辑输出与命令的输出相同swapo
n。自由命令free 命令提供有关系统内存使用情况的信息,包括虚拟内存。运行以下命令:free -m?编辑输出显示 RAM 和交换
空间,包括大小、已用内存、可用内存等。top 或 htop 命令top 命令显示系统资源的交互式实时视图。该htop命令是 的替代
命令top,具有更加用户友好的界面。使用top或htop查看 Linux 中的交换空间利用率。请按照以下步骤操作:1. 运行以下命
令:top2. 按Shift?+?O打开“排序依据”提示。3. 键入VIRT(虚拟内存使用情况)并按Enter。?编辑输出按虚拟内
存使用情况显示进程,包括 RAM 和交换空间。如何创建交换分区根据您的偏好,创建新分区或使用现有分区的可用空间作为交换文件。要创建
新分区,您可以使用任何磁盘实用程序,例如fdisk、gdisk或parted。在本教程中,我们将使用fdisk.注意:只能从尚未分
区的磁盘空间创建新分区。在本教程中,我们添加了一个新磁盘/dev/sdb/。请按照以下步骤操作:fdisk1.对要分区的磁盘运行命
令:sudo fdisk [disk_path]?编辑替换[disk_path]为您的磁盘标识符。2. 键入p?并按Enter 键
以查看磁盘概览。?编辑输出提供有关新分区的可用磁盘空间的信息。如果最后一个分区在硬盘驱动器的最后一个扇区之前结束,则有足够的空间来
创建新分区。上面的输出显示整个磁盘空间可用于创建新分区。3. 键入n并按Enter创建新分区。对于分区类型,输入?p?并按Ente
r。?编辑4. 设置分区编号(或保留默认编号1)并按Enter键确认。5. 输入新分区的第一个可用扇区,然后按Enter。您也可以
保留提供的默认选项。6. 设置分区的最后一个可用扇区。您可以以 KiB、MiB 或 GiB 为单位指定分区大小。我们将创建一个1G
iB的交换分区,所以命令是:+1G?编辑7. 按p确认分区创建并按Enter确认。?编辑8. 默认情况下,分区类型为83,而82是
交换空间的分区类型标识符。键入t并按Enter 键更改分区类型。将值更改为?82?并按Enter。?编辑9. 使用验证更改并?使用
Enterp?确认。10.fdisk在确认之前不要对磁盘进行任何更改。要继续进行更改,请键入w,然后按Enter。?编辑12. 使
用以下语法更新分区表:sudo partprobe [disk_path]替换[disk_path]为您的磁盘名称。例如,对于磁盘
/dev/sdb,运行:sudo partprobe /dev/sdb13. 使用该?mkswap?命令格式化交换空间分区。该命令
在分区中写入交换签名,其余部分保持未格式化。未格式化的空间存储内存页。使用以下语法格式化分区并创建交换空间:sudo mkswap
[disk_path]例如:?编辑格式化后,交换分区已创建并可供使用。交换分区应该有多大?现代系统中交换分区的大小取决于几个因素
,例如物理 RAM 量、工作负载大小、休眠支持、硬盘驱动器类型和速度等。此外,不同的 Linux 发行版对交换空间大小有特定的建议
。以下指南概述了多个 Linux 发行版的交换空间建议,并提供了交换大小提示:红帽RedHat 发行版的交换分区大小应为可用 RA
M 的 20%。最小 RAM 量为 4GB。中央操作系统CentOS 提供了以下指南:如果 RAM 总量低于 2GB,则交换分区应
为 RAM 容量的两倍。如果您的 RAM 超过 2GB,则交换分区的大小应为 RAM + 2GB。例如,将 8GB 交换空间用于
6GB RAM。Ubuntu/DebianUbuntu 的交换大小建议基于休眠的使用。如果您使用休眠模式,则交换分区应等于 RAM
量加上 RAM 量的平方根。如果您不使用休眠功能:对于小于 1GB 的 RAM,交换分区大小应至少与 RAM 大小相同,最多为
RAM 大小的两倍。对于超过 1GB 的 RAM,创建的交换分区至少等于 RAM 量的平方根,最多为 RAM 量的两倍。如何初始化
/启用交换分区使用 Linux 命令启用交换分区swapon。本教程将展示如何激活分区并使更改持续存在。请按照以下步骤操作:1.激
活交换分区使用swapon命令暂时启用交换分区:sudo swapon [disk_path]替换[disk_path]为您的分区
的路径。2. 检查隔夜利息使用情况通过运行以下命令验证交换分区是否处于活动状态:swapon --show?编辑输出应包括新的交换
分区。3. 使交换持久化(可选)将该分区包含在?/etc/fstab?文件中,以确保交换分区在引导时激活。在文本编辑器(例如nan
o?)中打开文件sudo nano /etc/fstab在末尾添加以下行:/dev/sdb none swap sw 0 0替换/
dev/sdb为交换分区的路径。如何更改交换分区的大小您可以通过扩展或缩小 Linux 中的交换分区来更改其大小。以下部分概述了每
个场景的步骤。如何扩展交换分区fdisk使用、gparted、 或 等工具扩展交换分区parted。在本教程中,我们将使用fdis
k,这是一个比图形工具更复杂的 CLI 实用程序,gparted因为它涉及手动分区表编辑。请按照以下步骤使用以下命令扩展交换分区f
disk:重要提示:使用时请小心fdisk,因为错误的操作可能会导致数据丢失。在继续之前请务必备份重要数据。1. 检查现有的交换在
调整交换分区大小之前,请检查当前交换大小和使用情况:swapon --show2. 禁用交换要安全地调整交换分区的大小,请首先通过
运行以下命令将其禁用:sudo swapoff -a3. 打开正确磁盘的 fdiskfdisk针对包含要调整大小的交换分区的磁盘运
行。语法是:sudo fdisk [disk_path]替换[disk_path]为正确的设备路径(例如/dev/sdb)。?编辑
4. 列出分区在 中fdisk,键入p以打印当前分区表。输出显示磁盘上的分区列表。?编辑5.删除交换分区识别列表中的交换分区并记下
其起始扇区。要删除交换分区,请键入d,然后按Enter。交换分区条目从分区表中消失。6. 创建一个新的交换分区键入?n?以创建新分
区。按照提示操作:分区类型:选择默认值(主)。分区编号:使用与删除的交换分区相同的编号。第一个扇区:指定起始扇区。确保指定与原始交
换分区相同的起始扇区。最后一个扇区:指定交换分区的新大小。您可以使用+扇区来表示大小(例如,+?2G 表示 2 GB)
。7. 将更改写入磁盘键入w将更改写入分区表并退出fdisk。该操作将重新创建具有新大小的交换分区。8.格式化新分区调整分区大小后
,使用mkswap命令对其进行格式化。使用以下语法:sudo mkswap [disk_path]替换[disk_path]为新的
交换分区。?编辑9.启用交换通过运行以下命令重新启用交换分区:sudo swapon -a10.更新/etc/fstab要使更改永
久生效,请使用文本编辑器更新/etc/fstab文件以反映新的交换分区。将旧的交换分区条目替换为新的交换分区条目。11. 重新启动
重新启动系统以确保更改生效。跑步:sudo reboot如何减少交换分区减少交换分区与扩展交换分区类似,唯一不同的步骤是步骤 6,
其中不是扩展交换分区,而是指定较小的大小来缩小交换分区。请记住,调整分区大小会带来一些风险,如果操作不当可能会导致数据丢失。在运行
命令之前备份数据并仔细检查命令。如何禁用和删除交换分区要使用 禁用然后删除交换分区fdisk,请按照以下步骤操作:警告:删除交换分
区时请务必小心,因为这可能会影响系统稳定性。确保您有所有重要数据的备份。1. 检查当前掉期使用情况在删除交换分区之前,请检查当前交
换使用情况和可用交换设备:swapon --show2. 禁用交换使用该swapoff命令禁用交换分区。语法是:sudo swap
off [disk_path]替换[disk_path]为您要禁用的交换分区的路径。3. 删除交换条目(可选)如果要删除交换分区,
下一步是从/etc/fstab文件中删除该条目。使用文本编辑器(例如nano)打开/etc/fstab :sudo nano /e
tc/fstab删除交换分区对应的行4.打开适当磁盘的 fdiskfdisk针对包含要删除的交换分区的磁盘运行。语法是:sudo
fdisk [disk_path]替换[disk_path]为正确的设备标识符(例如/dev/sdb)。5. 列出分区键入p以显示
当前分区表以及磁盘上的分区列表。识别列表中的交换分区(它应该是“Linux swap”类型代码82)。记下分区标识符(例如/dev/sdb)并确保您选择了要删除的正确交换分区。6.删除交换分区条目键入d后跟分区号(例如dN,其中N是交换分区的分区号)。?编辑这将从分区表中删除交换分区条目。7. 将更改写入磁盘键入w将更改写入分区表并退出fdisk。此步骤将永久删除交换分区。8.更新分区信息删除交换分区条目后,更新磁盘的分区信息。执行以下命令刷新信息:sudo partprobe9. 重新启动最好重新启动系统,以确保所有更改生效,并且不会出现对已删除交换分区的持久引用。跑步:sudo reboot通过执行这些步骤,您已使用 成功禁用并从 Linux 系统中删除了交换分区fdisk。结论本教程解释了交换分区的概念、它的使用方法及其优缺点。执行以下步骤后,您将了解如何创建、调整大小和删除交换分区。?
献花(0)
+1
(本文系云端筑梦师A...原创)