2019-05-27

Linux-swap

Linux交换区简介

Linux交换区简介

Linux交换区相当与Windows的虚拟内存,大小通常要大于等于内存的大小。
交换空间可用于两个目的,弥补物理内存(RAM)过小的问题;以及PC睡眠的支持。
https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate

  • suspend (suspend to RAM)挂起到RAM方法会削减除RAM之外的大多数机器的电源,这是恢复机器状态所必需的。由于节省了大量电力,建议笔记本电脑在电池运行且盖子关闭(或用户处于非活动状态一段时间)时自动进入此模式。
  • hibernate (Suspend to disk)挂起到磁盘方法将机器的状态保存到swap交换空间并完全关闭计算机。打开机器电源后,状态将恢复。在此之前,功耗为零。
  • hybrid suspend 挂起到两种方法都会将机器的状态保存到swap交换空间,但不会关闭机器电源。相反,它调用通常挂起到RAM。因此,如果电池没有耗尽,系统可以从RAM恢复。如果电池电量耗尽,系统可以从磁盘恢复,这比从RAM恢复要慢得多,但机器的状态并没有丢失。

Linux交换区:可以使用独立的分区,也可以使用一个文件。
查看现有交换分区的几种方式:
$ swapon
NAME       TYPE      SIZE USED PRIO
/dev/sda12 partition   8G   0B   -2
$ swapon -show
Filename Type Size Used Priority
/dev/sda12                              partition 8386556 0 -2
$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.3Gi       3.6Gi       280Mi       1.9Gi       4.9Gi
Swap:         8.0Gi          0B       8.0Gi

Swap partition

查看/etc/fstab文件。
# /dev/sdb6
UUID=77727c05-e82e-426f-b1b2-9062be75ad62 /          ext4      rw,relatime 0 1
# /dev/sdb7 LABEL=Shome
UUID=3591c8cd-47f7-4bf6-a417-e62b685f9144 /home      ext4      rw,relatime 0 2
# /dev/sdb9
UUID=13802d9f-8485-4d1f-a08c-583abe64961f none      swap      defaults  0 0

$ lsblk -f
NAME    FSTYPE LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sdb                                                                     
├─sdb6  ext4   Sarch  77727c05-e82e-426f-b1b2-9062be75ad62   14.1G    48% /
├─sdb7  ext4   Shome  3591c8cd-47f7-4bf6-a417-e62b685f9144     13G    55% /home
└─sdb9  swap          13802d9f-8485-4d1f-a08c-583abe64961f                [SWAP]

再增加一个交换区
$ sudo mkswap /dev/sda12
Setting up swapspace version 1, size = 8 GiB (8587833344 bytes)
no label, UUID=08aba37c-1b94-4d14-af39-cd416e0ecf57
$ sudo swapon /dev/sda12
$ swapon
NAME       TYPE      SIZE USED PRIO
/dev/sdb9  partition   8G   0B   -2
/dev/sda12 partition   8G   0B   -3

编辑/etc/fstab文件,添加sda12作为交换分区。
# /dev/sda12
UUID=08aba37c-1b94-4d14-af39-cd416e0ecf57 none       swap       defaults   0 0

删除一个交换分区,确保未被使用,可以重启后执行。
$ sudo swapoff /dev/sdb9
$ swapon
NAME       TYPE      SIZE USED PRIO
/dev/sda12 partition   8G   0B   -2
注:别忘了 编辑/etc/fstab文件,删除掉/dev/sdb9交换区的信息行

Swap file

https://wiki.archlinux.org/index.php/Swap#Swap_file
使用fallocate创建一个交换文件,单位可以使用(M = Mebibytes,G = Gibibytes)。
# fallocate -l 512M /swapfile
# fallocate -l 1G /swap
注意: fallocate可能会导致某些文件系统(例如F2FS)出现问题。[1]作为替代方案,使用dd更可靠,但速度更慢:
# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress

# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile

将交换文件添加到/etc/fstab文件
/swapfile none swap defaults 0 0

Remove swap file
# swapoff /swapfile
# rm -f /swapfile

没有评论:

发表评论

Diode

导航 (返回顶部) 1. Diode 1.1 Diode 概述 1.2 肖克利二极管方程 1.3 缩写 Abbreviations 2. 主要功能 2.1 单向电流 (Unidirectional current flow) 2.2 阈值电压 (Threshold...