swap空间扩容

本文介绍了如何查看并增加Linux系统的swap空间,包括创建新的swap分区、格式化、激活以及设置优先级。通过编辑/etc/fstab文件,可以调整新分区的优先级,确保重启后生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查看现有swap空间大小

[root@centos7 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        2028116      389108     1266584       12644      372424     1424920
Swap:       2097148           0     2097148

2.添加新磁盘,并进行分区。分区类型为82(Linux swap / Solaris)
在这里插入图片描述

[root@centos7 ~]# 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 write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x5dfd214d.

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-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +8G
Partition 1 of type Linux and of size 8 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x5dfd214d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16779263     8388608   82  Linux swap / Solaris

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

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

将分区/dev/sdb1格式化为swap分区,并激活新的swap分区,然后查看swap分区大小

[root@centos7 ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=524054a2-6683-48e7-808f-8e51ac4be8ff
[root@centos7 ~]# swapon /dev/sdb1
[root@centos7 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -2
/dev/sdb1                               partition       8388604 0       -3
[root@centos7 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        2028116      401980     1252876       12644      373260     1412424
Swap:      10485752           0    10485752

如果要/dev/sdb1分区每次优先使用,可编辑/etc/fstab文件,将此分区的优先级改为1,修改完成后需重启机器才会生效

[root@centos7 ~]# vi /etc/fstab
[root@centos7 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Aug 13 23:27:51 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=18170546-e5ce-4fd1-9f7a-45df40e45621 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1               swap                    swap    defaults,pri=1  0 0

[root@centos7 ~]# reboot
[root@centos7 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sdb1                               partition       8388604 0       1
/dev/dm-1                               partition       2097148 0       -2
<think>好的,我现在需要帮助用户了解如何在RK3568平台上进行swap分区的扩容。首先,我要回忆一下swap分区的基本概念和作用。swap分区通常用作虚拟内存,当物理内存不足时,系统会将部分数据暂时存放到swap中,以防止应用程序崩溃。扩容swap可以在内存不足时提高系统的稳定性,尤其是在资源受限的嵌入式设备上,比如RK3568平台。 接下来,我需要查阅用户提供的引用内容,看看是否有相关的swap扩容方法。引用[1]提到了在Linux下使用dd命令创建swap文件、格式化、挂载并写入/etc/fstab的步骤。虽然这是针对一般Linux系统的,但RK3568通常运行基于Linux的系统,所以这些步骤可能适用。不过需要考虑RK3568的具体硬件和系统配置,比如存储设备的名称和分区情况。 引用[2]、[3]、[4]主要涉及LVM和根目录的扩容,这可能不直接适用于swap扩容,但其中的一些命令如vgextend和lvextend可能在需要调整逻辑卷大小时有用。不过用户的问题是关于swap分区,而不是LVM管理的根目录,所以可能需要区分这两种情况。 接下来,我需要整理步骤。首先,用户需要确定当前swap的大小,可以通过free -h或swapon --show命令查看。然后,创建swap文件或分区。这里有两种方法:使用文件作为swap,或者调整swap分区的大小。考虑到RK3568可能使用嵌入式系统,使用swap文件可能更灵活,不需要重新分区。 根据引用[1],创建swap文件的步骤包括用dd命令生成文件,格式化为swap,激活并添加到fstab。需要注意的是,dd命令的参数是否正确,比如块大小和总大小。同时,格式化swap应使用mkswap命令,挂载使用swapon,并且确保/etc/fstab中的条目正确,以便重启后自动挂载。 此外,引用[3]提到不同文件系统使用的调整工具,比如resize2fs和xfs_growfs,但这对swap文件可能不适用,因为swap有专门的格式化方式。因此,重点应放在创建和配置swap文件上。 还需要考虑RK3568的存储介质是否有足够的空间来创建swap文件。用户需要确保存储设备(如eMMC或SD卡)有足够的剩余空间,否则dd命令会失败。此外,过多的swap可能会影响存储设备的寿命,尤其是使用闪存的情况下,需权衡利弊。 可能的错误点包括:误操作分区导致数据丢失,路径或文件名错误,权限问题等。因此,在操作前建议备份重要数据,并仔细检查命令参数。 最后,生成相关问题时要围绕swap扩容的方法、验证、优化、替代方案等,帮助用户进一步理解。</think>### RK3568平台swap分区扩容方法 在RK3568平台上进行swap扩容通常采用**swap文件展**方式,避免直接调整分区带来的风险。以下是详细步骤: --- #### **步骤1:查看当前swap状态** ```bash free -h swapon --show # 确认当前swap类型(分区或文件) ``` 若原swap为分区(如`/dev/mmcblk0p3`),可通过文件展叠加容量[^1]。 --- #### **步骤2:创建swap文件** ```bash sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 # 创建2GB文件,根据存储空间调整count值 sudo chmod 600 /swapfile # 设置权限防止误访问 ``` **注意**:文件路径推荐放在存储设备剩余空间较大的位置(如`/mnt/sdcard/swapfile`) --- #### **步骤3:格式化并激活swap** ```bash sudo mkswap /swapfile # 格式化文件为swap格式 sudo swapon /swapfile # 立即生效 ``` 通过`free -h`验证容量是否增加[^1]。 --- #### **步骤4:设置开机自动挂载** ```bash echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab ``` **关键点**:若原swap为分区,此操作会叠加容量而非替换。 --- #### **步骤5(可选):调整swap性能参数** 修改`/etc/sysctl.conf`优化交换频率: ```bash vm.swappiness = 60 # 默认值通常为60,嵌入式场景可适当降低 vm.vfs_cache_pressure = 100 ``` --- #### **验证与风险提示** 1. **重启验证**:执行`sudo reboot`后再次检查`free -h` 2. **存储介质寿命**:频繁交换可能缩短Flash寿命,建议在内存不足时谨慎启用 3. **性能监控**:使用`vmstat 1`观察`si/so`(交换频率) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值