RVBoards-D1内存 1GB不够怎么办,交换 ”文件/分区" 为你解忧
-
一、基础知识
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。 需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了, 因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存.SWAP分区只是临时的解决办法. linux下得分区推荐一个交换分区,一个根分区,其中交换分区如上所说作为redhat或者其它虚机所划分的内存不够时候来使用! 交换分区(swap)的合理值一般在内存的2 倍左右,可以适当加大。 实际上具体还是以实际应用为准,swap为内存的2倍也不过是一种以讹传讹的说法。 如果交换分区的使用都超过4GB以上了,可想而知服务器的性能应该差很多了。 Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。 前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。
二、创建交换文件
在d1开发板上直接运行以下命令 #1、在根目录创建交换文件swapfile,bs为块大小,count为块的数量 sudo dd if=/dev/zero of=/swapfile bs=64M count=16 #2、格式化交换文件 sudo mkswap /swapfile #3、挂载交换文件 sudo swapon /swapfile #如果,不再使用交换文件,如下卸载并删除 #4、卸载交换文件 sudo swapoff /swapfile #5、删除交换文件 sudo rm /swapfile #top命令查看交换文件是否生效 top - 10:57:07 up 11 min, 1 user, load average: 1.00, 1.08, 0.80 Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 992.7 total, 67.3 free, 140.3 used, 785.1 buff/cache #"*************MiB Swap表示交换文件使用情况**************" MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 831.7 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 794 root 20 0 7044 2828 2252 R 1.0 0.3 0:04.21 top 641 root 20 0 18084 3904 1612 S 0.7 0.4 0:03.06 systemd+ 118 root 20 0 18084 5236 2960 S 0.3 0.5 0:01.90 systemd+ 143 avahi 20 0 5028 2696 2272 S 0.3 0.3 0:01.44 avahi-d+ 623 root -2 0 0 0 0 S 0.3 0.0 0:00.33 xradio_+
三、创建交换分区
#注:请提前对sd卡进行备件,防止数据丢失 下面分区方式仅适用于RVBoards_D1_Debianv_img_v0.5镜像 , 删除原sd卡mmcblk0p6分区,新建swap分区和新的扩展存储分区 原sd卡mmcblk0p6分区是扩展存储分区,不会影响系统运行
[email protected]:~# fdisk -l #fdisk -l查看分区信息 Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 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 Disklabel type: gpt Disk identifier: AB6F3888-569A-4926-9668-80941DCB40BC Device Start End Sectors Size Type /dev/mmcblk0p1 41464 47549 6086 3M Microsoft basic data /dev/mmcblk0p2 47550 48053 504 252K Microsoft basic data /dev/mmcblk0p3 48054 48557 504 252K Microsoft basic data /dev/mmcblk0p4 49152 251903 202752 99M Microsoft basic data /dev/mmcblk0p5 253358 10739117 10485760 5G Microsoft basic data /dev/mmcblk0p6 10739712 62333948 51594237 24.6G Linux filesystem
[email protected]:~# fdisk /dev/mmcblk0 #利用fdisk 命令对sd卡重新分区 Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d #输入’d‘,删除第6分区 Partition number (1-6, default 6): 6 #输入’6‘,删除第6分区 Partition 6 has been deleted. Command (m for help): n #输入’n‘,新建分区 Partition number (6-8, default 6): 6 #输入’6‘,新建6分区 First sector (48558-62333948, default 10739712): #输入’回车‘,选择默认启始位置 #输入分区大小 Last sector, +/-sectors or +/-size{K,M,G,T,P} (10739712-62333948, default 62333948): 30000000 Created a new partition 6 of type 'Linux filesystem' and of size 9.2 GiB. Command (m for help): n #输入’n‘,新建分区 Partition number (7,8, default 7): #输入’7‘,新建7分区 First sector (48558-62333948, default 30001152): #输入’回车‘,选择默认启始位置 #输入分区大小,直接输入“回车”,默认大小 Last sector, +/-sectors or +/-size{K,M,G,T,P} (30001152-62333948, default 62333948): Created a new partition 7 of type 'Linux filesystem' and of size 15.4 GiB. Command (m for help): w #输入’w‘,完成分区,写入并退出 The partition table has been altered. Syncing disks.
[email protected]:~# fdisk -l #查看新分区信息 Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 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 Disklabel type: gpt Disk identifier: AB6F3888-569A-4926-9668-80941DCB40BC Device Start End Sectors Size Type /dev/mmcblk0p1 41464 47549 6086 3M Microsoft basic data /dev/mmcblk0p2 47550 48053 504 252K Microsoft basic data /dev/mmcblk0p3 48054 48557 504 252K Microsoft basic data /dev/mmcblk0p4 49152 251903 202752 99M Microsoft basic data /dev/mmcblk0p5 253358 10739117 10485760 5G Microsoft basic data /dev/mmcblk0p6 10739712 30000000 19260289 9.2G Linux filesystem /dev/mmcblk0p7 30001152 62333948 32332797 15.4G Linux filesystem
[email protected]:~# mkswap /dev/mmcblk0p6 #格式化交换分区 Setting up swapspace version 1, size = 9.2 GiB (9861263360 bytes) no label, UUID=a38e9d65-5619-4ec5-b9cb-5547da777295 [email protected]:~# mkfs.ext4 /dev/mmcblk0p7 #格式化扩展存储分区 mke2fs 1.46.2 (28-Feb-2021) Creating filesystem with 4041599 4k blocks and 1011840 inodes Filesystem UUID: 63494eb8-ffed-43fd-a630-d8a8c5c3397d Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
#编辑 /etc/fstab,挂载交换分区和存储分区 [email protected]:~# vim /etc/fstab # UNCONFIGURED FSTAB FOR BASE SYSTEM /dev/mmcblk0p5 / ext4 rw 0 1 /dev/mmcblk0p6 swap swap defautls 0 0 /dev/mmcblk0p7 /mnt ext4 rw 0 2 #重启后,用top命令查看交换分区是是否生效 [email protected]:~# top #MiB Swap表示交换文件使用情况 top - 12:38:23 up 1 min, 1 user, load average: 3.01, 1.09, 0.39 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.0 us, 1.0 sy, 0.0 ni, 88.3 id, 9.7 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 992.7 total, 679.9 free, 139.9 used, 172.9 buff/cache 'MiB Swap: 9404.4 total, 9404.4 free, 0.0 used. 832.1 avail Mem ' PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 205 avahi 20 0 5028 2708 2296 S 1.0 0.3 0:00.26 avahi-d+ 59 root -51 0 0 0 0 S 0.7 0.0 0:01.02 irq/56-+ 725 root 20 0 7044 2868 2288 R 0.7 0.3 0:00.09 top 554 root 20 0 18092 5476 3184 S 0.3 0.5 0:00.37 systemd+ 1 root 20 0 94772 8500 6012 S 0.0 0.8 0:03.08 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp