[步骤] 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

    [步骤] SLES supportconfig 命令收集选项的设置

    步骤一:supportconfig 的作用理解

    supportconfig 是一个 SLES 系统搜集系统整体情况的命令,我们可以选择搜集哪些信息

    步骤二:supportconfig 命令收集选项的设置

    2.1 创建 /etc/supportconfig.conf 文件

    # supportconfig -C

    2.2 让 supportconfig 命令不搜集某些信息

    # sed -i 's\OPTION_AUDIT=1\OPTION_AUDIT=0\g' /etc/supportconfig.conf

    或者:

    # sed -i 's\OPTION_AUDIT=1\OPTION_AUDIT=0\g' /etc/supportutils/supportconfig.conf

    (补充:这里使 supportconfig 命令不搜集 audit 日志为例)

    [步骤] Linux 关机前执行脚本

    步骤一:创建要被管理的脚本

    # vim /root/12456.sh

    创建以下内容:

    #!/bin/bash
    for i in {1..5}
    do
    echo $i
    done

    (补充:这里以创建 /etc/root/for.sh 脚本为例)

    步骤二:创建 systemctl 的管理文件

    # vim /etc/systemd/system/12456.service

    创建以下内容:

    [Unit]
    Description=12345
    After=getty@tty1.service display-manager.service plymouth-start.service
    Before=systemd-poweroff.service systemd-halt.service
    DefaultDependencies=no
    
    [Service]
    ExecStart=/root/12456.sh
    Type=forking
    
    [Install]
    WantedBy=poweroff.target
    WantedBy=reboot.target
    WantedBy=halt.target

    (补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)

    步骤三:加载刚刚创建的 systemctl 管理文件

    # systemctl daemon-reload

    步骤四:给 systemctl 的管理文件添加执行权限

    # chmod u+x /etc/systemd/system/12456.service

    步骤五:设置关机前执行脚本

    5.1 设置关闭系统前执行此脚本

    # ln -s /usr/lib/systemd/system/12456.service /usr/lib/systemd/system/halt.target.wants/

    5.2 设置关闭电源前执行此脚本

    # ln -s /usr/lib/systemd/system/12456.service /usr/lib/systemd/system/poweroff.target.wants/

    5.3 设置重启先执行此脚本

    # ln -s /usr/lib/systemd/system/12456.service /usr/lib/systemd/system/reboot.target.wants/

    [排错] RHEL 解决使用 yum 命令时卡住

    报错代码

    # yum update 
    Updating Subscription Management repositories.
    Unable to read consumer identity

    可尝试的解决方法一:修改 /etc/yum/pluginconf.d/subscription-manager.conf 文件

    # vim /etc/yum/pluginconf.d/subscription-manager.conf

    将以下内容:

    ......
    [main] 
    enabled=1
    ......

    修改为:

    ......
    [main] 
    enabled=0
    ......

    可尝试的解决方法二:安装对应的 katello-ca-consumer-latest.noarch.rpm 软件包

    (步骤略)

    (补充:katello-ca-consumer-latest.noarch.rpm 软件包下载自对应的 Red Hat Satellite 服务器,补充链接:Red Hat Satellite client register