Linux 设置 swap 虚拟内存 zram 内存教程

Linux 上添加 swap

命令:

  1. cd /usr
  2. mkdir swap
  3. dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096
  4. mkswap /usr/swap/swapfile
  5. swapon /usr/swap/swapfile
  6. echo "/usr/swap/swapfile swap swap defaults 0 0" >> /etc/fstab
  7. reboot
Linux 设置 swap 虚拟内存 zram 内存教程

请注意,这些命令可能需要 root 权限才能执行。若报错:swapon: command not found,则可能是无配置环境变量,可以尝试以下方法:

  1. 使用 sudo 命令获取 root 权限,例如 sudo swapon /usr/swap/swapfile
  2. 使用 swapon 命令的完整路径,例如 /sbin/swapon /usr/swap/swapfile

可以编写成脚本,例如 swap.sh

#!/usr/bin/env bash
#root 执行记得给这个脚本 chmod -R 777 权限不然执行不了。
#修改交换空间大小 1G 500M 自行修改
sudo fallocate -l 0.5G /swapfile 
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
#交换空间使用权重
sysctl vm.swappiness=100
#开机启用交换空间
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

btrfs linux 上添加 swap

如果系统是 btrfs 则需要按照以下注意事项操作:

自 5.0 内核之后,Btrfs 才支持创建 Swapfile ,而且有一些特别的要求:

  • Swapfile 不能放在 snapshotted subvolume (快照子卷)上。
  • 不支持跨多设备文件系统上的 Swapfile 。

所以正确的做法是:新建一个 non-snapshotted subvolume ,然后在该子卷之下创建禁用压缩的 Swapfile 。

[psiace@fedora /]$ cd /
# 创建 non-snapshotted subvolume 。
[psiace@fedora /]$ sudo btrfs subvolume create swap
Create subvolume './swap'
# 进入子卷。
[psiace@fedora /]$ cd swap
# 新建长度为 0 的 Swapfile 。
[psiace@fedora swap]$ sudo truncate -s 0 ./swapfile
# 设置交换文件的属性,使其免于 copy-on-write 。
[psiace@fedora swap]$ sudo chattr +C ./swapfile
# 禁用压缩。
[psiace@fedora swap]$ sudo btrfs property set ./swapfile compression none

设定 Swapfile 作为 Swap 成分之一:

# 将 Swapfile 填充至合适的大小,一般选择内存空间的一半或者与内存空间相当。
# 这里仅仅是为了好玩,选择了巨量的 32GiB ,有浪费之嫌。
[psiace@fedora swap]$ sudo dd if=/dev/zero of=./swapfile bs=1M count=32768 status=progress
33980153856 字节(34 GB,32 GiB)已复制,20 s,1.7 GB/s
记录了 32768+0 的读入
记录了 32768+0 的写出
34359738368 字节(34 GB,32 GiB)已复制,21.2624 s,1.6 GB/s
# 设置正确的权限。
[psiace@fedora swap]$ sudo chmod 600 ./swapfile
# 格式化 Swapfile 作为交换类型。
[psiace@fedora swap]$ sudo mkswap ./swapfile
正在设置交换空间版本 1,大小 = 32 GiB (34359734272  个字节)
无标签,UUID=2e48f371-62a9-487a-9613-382b386b2836
# 激活交换文件,并设定优先级。
# 由于 zram 的优先级是 100 ,所以这里设定成 50 。毕竟 zram 的性能比 swapfile 要强不少。
[psiace@fedora swap]$ sudo swapon --priority 50 ./swapfile

检查 Swap 空间并设置自动挂载

# 使用 free 查看概览。
[psiace@fedora ~]$ free -m
               total        used        free      shared  buff/cache   available
Mem:           15453        5206         290         109        9956        9808
Swap:          40959           2       40957
# 使用 swapon 查看详情。
[psiace@fedora ~]$ swapon -s
Filename             Type      Size     Used   Priority
/dev/zram0      partition   8388604     2560        100
/swap/swapfile  file       33554428        0         50
# 编辑 fstab ,添加指定条目以完成挂载。
# 这里必须带上子卷名,UUID 可以不写。
[psiace@fedora ~]$ sudo nano /etc/fstab
/swap/swapfile    none    swap    defaults    0    0

如果设置后 swap 没有用开机自启,注意上述命令的 swap 路径是否与实际一致,本文是在根目录做的示例。以上代码改成 bash 脚本放文件一键执行:

#!/usr/bin/env bash
#root 执行记得给这个脚本 chmod -R 777 权限不然执行不了。
#修改交换空间大小 1G 500M 自行修改
sudo btrfs subvolume create /swap
sudo truncate -s 0 /swap/swapfile
sudo chattr +C /swap/swapfile
sudo btrfs property set /swap/swapfile compression none
# 这里设置 swap 大小 512M 自行修改
sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=512 status=progress
sudo chmod 600 /swap/swapfile
sudo mkswap /swap/swapfile
sudo swapon --priority 50 /swap/swapfile
echo '/swap/swapfile none swap defaults 0 0' >> /etc/fstab

新建好的文件例如命名为 swap.sh,记得用 chmod 777 ./swap.sh 文件授权即可
来源: 在 Fedora 上为 Btrfs 新建 32GiB Swapfile

Linux 上设置 zram

效率比 swap 更高点,建议设置

 在终端中输入 sudo modprobe zram 来加载 zram 模块(省略)
在终端中输入 sudo swapoff /dev/zram0 来关闭 zram0
输入 sudo zramctl --reset /dev/zram0 来重置 zram0
sudo zramctl --find 创建一个新的 zram 设备,它会返回一个设备名,例如 /dev/zram0
输入 sudo zramctl --size 1024M /dev/zram0 来设置该设备的大小
输入 sudo mkswap /dev/zram0 来创建交换分区
输入 sudo swapon /dev/zram0 来开启 zram0

shell 脚本,直接复制到命令行执行即可:

sudo swapoff /dev/zram0;
sudo zramctl --reset /dev/zram0;
sudo zramctl --find;
sudo zramctl --size 512M /dev/zram0;
sudo mkswap /dev/zram0;
sudo swapon /dev/zram0;

/usr/bin/init-zram-swapping 是一个脚本文件,它用于在 Ubuntu 系统中初始化和配置 zram 交换分区 12。这个脚本的内容大致如下

目录
  • Linux 上添加 swap
  • btrfs linux 上添加 swap
  • Linux 上设置 zram
  • 目录
  • Linux 上添加 swap
  • btrfs linux 上添加 swap
  • Linux 上设置 zram
  • 手机扫描二维码访问

    本文标题:《Linux 设置 swap 虚拟内存 zram 内存教程》作者:极四维博客
    原文链接:https://cway.top/post/1064.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合