方法如何在Linux上创建交换文件/分区

如果系统需要的内存比实际可用的内存多,则需要交换内存。内核换出为当前使用的进程提供了内存,这些内存需要较少的内存来存储较少使用的页面。因此,内存页面被复制到硬盘上的预设空间。磁盘速度比内存速度慢得多。交换页为当前应用程序提供了更多的内存(RAM)空间,并使应用程序运行得更快。

交换空间位于硬盘驱动器上,其访问时间比物理内存慢。交换空间可以是专用的交换分区(推荐),交换文件或交换分区和交换文件的组合。 (现代计算机的RAM超过4096 MB,因此交换空间大小是计算机RAM的两倍或32 MB,以较大者为准,但最大为2048 MB(或2 GB)我们建议您有4GB)。新版本的Ubuntu和CentOS支持使用交换文件。

在本教程中,您将学习如何在Linux系统上创建交换分区或文件。

目录

  • 创建一个交换分区。
  • 如何为LVM创建交换分区
  • 扩展LVM的交换分区
  • 删除交换分区
  • 调整swappiness属性
  • 结论

创建一个交换分区。

1)检查磁盘空间

使用fdisk命令检查磁盘上是否有足够的空间来创建新分区以进行交换。

# fdisk -l

Disk /dev/sda: 10.7 GB, 10720641024 bytes, 20938752 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x66fe37bd

我们将使用 /dev/sdb 用于交换的磁盘。免费检查掉期 -m 命令;我们有:

# free -m
 total used free shared buff/cache available
Mem: 988 88 645 50 254 813
Swap: 0 0 0

您会看到我们没有交换分区。您也可以使用以下命令进行验证

# swapon -s

您会看到我们没有退货。这意味着没有交换

2)创建一个分区。

使用FDISK之类的工具创建一个新分区。

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the

Command (m for help):

你可以进入吗? m 帮助命令将列出您不同的可能性。我们创建一个新分区以便与我们交换。 n 命令

Command (m for help): n
Partition type:
 p primary (0 primary, 0 extended, 4 free)
 e extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-1048575, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575, default 1048575): 
Using default value 1048575
Partition 1 of type Linux and of size 511 MiB is set

现在,我们使用t命令将分区定义为交换类型。

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'

十六进制代码 在Linux交换分区中 82。 现在我们保存更改,然后 w 命令

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

创建一个新分区作为交换。 ID切换更改为82(用于交换)。让我们检查一下 fdisk -l 命令:

# fdisk -l

Disk /dev/sda: 10.7 GB, 10720641024 bytes, 20938752 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x66fe37bd

 Device Boot Start End Blocks Id System
/dev/sdb1 2048 1048575 523264 82 Linux swap / Solaris

您可以看到最后一行提到的“ Linux swap”。

注意事项: 在最新版本的Ubuntu和CentOS上,我们创建交换文件并将其用于交换分区。让我们看看如何创建交换文件。

只需使用dd命令或将其分类即可创建文件(例如2 GB超过1 GB)。

# dd if=/dev/zero of=/mnt/swapfile bs=1024 count=2097152

or

# fallocate -l 2G /mnt/swapfile
# chmod 600 /mnt/swapfile

然后按照以下步骤操作。

3)格式化为交换模式

定义分区后,对新创建的交换分区执行mkswap命令,因为需要将其格式化为“交换模式”。

# mkswap -f /dev/sdb
mkswap: /dev/sdb: warning: wiping old swap signature.
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=c4696894-0b09-4fbe-87bb-a34d6d307a4e

# mkswap /mnt/swapfile

4)启用交换空间

现在,我们的交换分区已格式化,我们需要运行命令swapon来启用交换空间以启用它。

# swapon /dev/sdb

5)检查交换空间

使用以下命令检查新添加的交换空间:

# free -m
 total used free shared buff/cache available
Mem: 988 88 646 50 254 814
Swap: 511 0 511

6)添加到fstab文件。

然后添加新创建的交换分区 /etc/fstab 文件看起来像这样:

/dev/sdb swap swap defaults 0 0

如何为LVM创建交换分区

您可以在服务器上安装LVM,并且需要创建交换分区。由于以下步骤,在“ LVM模式”中不完全相同

第一步: 我们首先需要创建一个8GB LVM2逻辑卷。

#lvcreate rootvg -n swapvol -L 8G

步骤二答:创建逻辑卷后,我们需要格式化新的交换空间。

# mkswap /dev/rootvg/swapvol

第三步: 为了确保在重启服务器时自动安装交换分区,我们需要添加以下条目 /etc/fstab 档案:

/dev/rootvg/swapvol swap swap defaults 0 0

步骤4: 现在我们需要启用扩展逻辑卷。

# swapon -v /dev/rootvg/swapvol

如果要成功创建要测试的逻辑卷,请使用 swapon -sfree -m 检查交换空间的命令。

扩展LVM的交换分区

可以,您需要扩展交换分区,因为实际的交换大小不适合您的工作。使用LVM,可以按以下方法直接增加现有分区的大小:

第一步: 在本例中,您首先需要使用dev / rootvg / swapvol标识交换卷组。首先需要使当前交换无效

# swapoff -v /dev/rootvg/swapvol

步骤2: 现在您需要调整卷组的大小以显示增加的空间

# lvm lvresize /dev/rootvg/swapvol -L +8G

我们想从8GB增加到16GB

第三步: 现在我们需要格式化空间

# mkswap /dev/rootvg/swapvol

步骤4: 现在我们需要为标记为swap的设备启用swap /etc/fstab

# swapon -va

删除交换分区

由于多种原因,您可能需要在LVM模式下删除交换分区。

第一步: 首先需要删除交换分区,以禁用与LVM或其他有关的逻辑卷的交换

# swapoff -v /dev/rootvg/swapvol

步骤2: 第二个原则是删除卷,因为您需要完全删除交换分区。

lvremove /dev/rootvg/swapvol

第三步: 现在我们需要从中删除以下条目 /etc/fstab 档案

/dev/rootvg/swapvol swap swap defaults 0 0

调整swappiness属性

定义系统交换数据交换区域中RAM之外的swappiness值的频率。当前,swappappiness值存储在文件“ / proc / sys / vm / swappiness”中。这是一个介于0到100之间的值,内核尝试进行交换,以避免较低的值更接近于零。这意味着服务器的值可以为0,并且桌面应接近60,但可以。

# cat /proc/sys/vm/swappiness
60

结论

在本教程中,我们看到了如何在Linux上创建交换文件/分区。请尽情阅读并在“希望和评论”下面的部分中提供您的建议。

Sidebar