zoukankan      html  css  js  c++  java
  • Linux-swap

    Linux交换区简介
    Swap partition
    Swap file

    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 TYPESIZE USED PRIO
    /dev/sda12 partition 8G 0B -2
    $ swapon -show
    Filename Type Size Used Priority
    /dev/sda12partition 8386556 0 -2
    $ free -h
    totalusedfreesharedbuff/cache available
    Mem:7.8Gi 2.3Gi 3.6Gi 280Mi 1.9Gi 4.9Gi
    Swap: 8.0Gi0B 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 /homeext4 rw,relatime 0 2
    # /dev/sdb9
    UUID=13802d9f-8485-4d1f-a08c-583abe64961f none swap defaults 0 0

    $ lsblk -f
    NAMEFSTYPE LABELUUID FSAVAIL FSUSE% MOUNTPOINT
    sdb
    ├─sdb6ext4 Sarch77727c05-e82e-426f-b1b2-9062be75ad62 14.1G48% /
    ├─sdb7ext4 Shome3591c8cd-47f7-4bf6-a417-e62b685f9144 13G55% /home
    └─sdb9swap13802d9f-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 TYPESIZE USED PRIO
    /dev/sdb9partition 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 TYPESIZE 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

  • 相关阅读:
    计算GPS WGS_84 两点的距离
    极路由4_开ssh_刷breed
    aes-256-gcm_python3_php7_golang
    nginx_非标准端口_同端口_http_自动跳转_https
    配置sshd_除了特定ip外_仅密钥登录
    使用scp命令实现服务器之间文件传输
    Java防止重复提
    mysql使用SUBSTRING_INDEX截取部分字符串
    SEO大杀器rendertron安装
    PIC16 bootloader之I2C bootloader
  • 原文地址:https://www.cnblogs.com/sztom/p/10931023.html
Copyright © 2011-2022 走看看