Bootstrap

Linux基础(十一)——内存交换空间swap

1.swap的作用

如果突然间某支程序用掉你大部分的内存, 那你的系统恐怕有损毁的情况发生喔! 所以, 早期在安装 Linux 之前, 大家常常会告诉你: 安装时一定需要的两个 partition , 一个是根目录, 另外一个就是 swap( 内存交换空间) 。
当内存不足的时候, 为了让后续的程序可以顺利的运行, 因此在内存中暂不使用的程序与数据就会被挪到 swap 中了。 此时内存就会空出来给需要执行的程序载入。 由于 swap 是用磁盘来暂时放置内存中的信息, 所以用到 swap 时,你的主机磁盘灯就会开始闪个不停啊。
所以swap作用就是:所以swap作用就是:Swap(交换分区)是一种用于虚拟内存管理的机制,其主要作用是在物理内存(RAM)不足时,将一些数据暂时存储到硬盘的交换分区或交换文件中,帮助系统维持正常运行。

2.使用实体分区创建swap

在这里插入图片描述
①分区

[root@CentOS7 ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 14667709 sectors (7.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  
   2            6144         2103295   1024.0 MiB  0700  
   3         2103296        65026047   30.0 GiB    8E00  
   4        65026048        67123199   1024.0 MiB  8300  Linux filesystem
   5        67123200        69220351   1024.0 MiB  0700  Microsoft basic data

Command (? for help): n
Partition number (6-128, default 6): 
First sector (34-83886046, default = 69220352) or {+-}size{KMGTP}: 
Last sector (69220352-83886046, default = 83886046) or {+-}size{KMGTP}: +512M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200
Changed type of partition to 'Linux swap'

Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 13619133 sectors (6.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  
   2            6144         2103295   1024.0 MiB  0700  
   3         2103296        65026047   30.0 GiB    8E00  
   4        65026048        67123199   1024.0 MiB  8300  Linux filesystem
   5        67123200        69220351   1024.0 MiB  0700  Microsoft basic data
   6        69220352        70268927   512.0 MiB   8200  Linux swap

Command (? for help): w

②格式化并启动

[root@CentOS7 ~]# mkswap /dev/sda6
正在设置交换空间版本 1,大小 = 511996 KiB
无标签,UUID=8f378295-b670-4e63-a852-1fdc66426490
[root@CentOS7 ~]# blkid /dev/sda6
/dev/sda6: UUID="8f378295-b670-4e63-a852-1fdc66426490" TYPE="swap" 
[root@CentOS7 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        516M        132M         27M        323M        286M
Swap:          1.0G        318M        705M
[root@CentOS7 ~]# swapon /dev/sda6
[root@CentOS7 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        516M        131M         27M        324M        286M
Swap:          1.5G        318M        1.2G
[root@CentOS7 ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	1048572	326144	-2
/dev/sda6                              	partition	511996	0	-3

可以看到启动swap后,swap的total增加了0.5G。swapon -s用于列出目前使用的 swap 设备有哪些。

3.使用文件创建swap

dd if=/dev/zero of=/tmp/swap bs=1M count=128
mkswap /tmp/swap
swapon /tmp/swap
swapoff /tmp/swap /dev/vda6
nano /etc/fstab
swapon -a
swapon -s

;