[步骤] Linux 虚拟内存 (交换分区) swap 的设置

步骤一:理解 Linux 虚拟内存 (交换分区) swap

1.1 理解 Linux 使用 Linux 虚拟内存的机制

1) Linux 内核会周期性的把内存中不常调用的匿名页和共享内存交换至 swap
2) 当内存不足时,Linux 系统会把匿名页和共享页交换至 swap

    1.2 理解 Linux 虚拟内存 (交换分区) swap 使用优先级的设置机制

    Linux 的 swappiness 参数用于控制虚拟内存 (交换分区) swap 的使用。
    swappiness 参数的默认值是 60,也就是说当物理内存使用率达到 40 时,开始使用虚拟内存 (交换分区) swap。
    当 swappiness 参数的值是 0 时,则只有当物理机内存耗尽了以后才会使用虚拟内存 (交换分区) swap。
    当 swappiness 参数的值是 100 时,则立刻使用虚拟内存 (交换分区) swap。

    步骤二:Linux 虚拟内存 (交换分区) swap 开关的设置

    2.1 查看虚拟内存 (交换分区) swap

    # swapon -s

    2.2 开启虚拟内存 (交换分区) swap

    # swapon -a

    2.3 关闭虚拟内存 (交换分区) swap

    # swapoff -a

    2.4 重启虚拟内存 (交换分区) swap

    # swapoff -a && swapon -a

    步骤三:Linux 虚拟内存 (交换分区) swap 使用优先级的设置

    3.1 临时设置虚拟内存 (交换分区) swap 使用优先级的设置

    # sysctl -p swappiness=60

    或者:

    # sysctl vm.swappiness=60

    或者:

    # echo 60 > /proc/sys/vm/swappiness

    (补充:这里以把 swappiness 的值设置成 60 为例)


    注意:
    1) 临时设置重启后失效
    2) 临时设置了以后不会马上生效,只有当系统重新调用内存以后才会生效

    3.2 永久设置虚拟内存 (交换分区) swap 使用优先级的设置

    3.2.1 修改 /etc/sysctl.conf 文件
    # vim /etc/sysctl.conf

    添加以下内容:

    ......
    vm.swappiness=60

    (补充:这里以把 swappiness 的值设置成 60 为例)

    3.2.2 让刚刚修改的 /etc/sysctl.conf 文件生效
    # sysctl -p

    3.3 查看虚拟内存 (交换分区) swap 使用优先级的设置

    3.3.1 通过 /proc/sys/vm/swappiness 文件查看
    # cat /proc/sys/vm/swappiness
    3.3.2 通过 sysctl vm.swappiness 命令查看
    # sysctl vm.swappiness

    [步骤] Linux journal 日志的永久存储

    正文:

    步骤一:理解 journal 日志存储机制

    默认情况下,journal 的日志存储在 /run/log/journal,而 /run 目录只是一个临时目录。

    将 Storage 参数设置为 persistent 后,journal 的日志将存储在 /var/log/journal,/var/log 则是一个永久的目录。

    步骤二:将 journal 日志设置为永久存储

    2.1 修改 /etc/systemd/journald.conf 文件

    # vi /etc/systemd/journald.conf

    将部分内容修改如下:

    [Journal]
    ......
    Storage=persistent
    ......

    2.2 重启 systemd-journald 服务

    # systemctl restart systemd-journald.service

    参考文献:

    https://linuxconfig.org/introduction-to-the-systemd-journal

    [排错] Linux 解决出现 “Read-only file system” 的目录

    报错代码

    Read-only file system

    可尝试的解决方法一:重新挂载此目录

    # mount -o remount rw /run

    (补充:这里以重新挂载 /run 目录并给此目录添加读和写权限为例)

    可尝试的解决方法二:修复出现此问题的分区

    可尝试的解决方法二:分析

    非正常关机可能造成文件系统受损,系统重启后,受损的分区自动挂载后就会变成只读。此时修复这个分区则可能修复这个问题

    可尝试的解决方法二:解决方法

    # fsck.ext4 -y /dev/sda1

    (补充:这里以修复分区格式为 ext4 的分区 /dev/sda1 为例)

    [命令] Linux 命令 gzip (打包、解包、压缩和解压文件或目录,压缩包以 xz 作为后缀)

    内容一:gzip 命令简介

    1.1 gzip 命令的格式

    # gzip <option> <file>

    1.2 gunzip 命令的常用选项

    1) -c or –stdout, write on standard output, keep original files unchanged
    2) -d or –decompress, decompress
    3) -f or –force, force overwrite of output file and compress links
    4) -h or –help, give this help
    5) -k or –keep, keep (don’t delete) input files
    6) -l or –list, list compressed file contents
    7) -n or –no-name, do not save or restore the original name and timestamp
    8) -N or –name, save or restore the original name and timestamp
    9) -q or –quiet, suppress all warnings
    10) -r or –recursive or –rsyncable, operate recursively on directories
    11) -t or –test, test compressed file integrity
    12) -1 or –fast, compress faster
    13) -9 or –best, compress better

    内容二:gzip 命令的使用案例

    2.1 案例一:压缩文件

    # gzip test.txt

    (补充:这里以压缩文件 test.txt 为例)

    2.2 案例二:解压文件

    # gzip -d test.txt.xz

    (补充:这里以解压文件 test.txt.zx 为例)