AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[swap](unix)

Martin Hope
ChennyStar
Asked: 2024-02-19 18:42:39 +0800 CST

对于 RAM 使用(存在交换),应用程序是否优先于 tmpfs?

  • 5

太长了;如果 /tmp 作为 tmpfs 挂载,在存在交换的情况下,交换时是否有任何优先级?tmpfs 是否在应用程序之前开始交换?

全文

我有一台 32G RAM (Debian) 和 32G 交换空间的笔记本电脑。我打算用 tmpfs 挂载 /tmp。

但我担心系统需要交换时的行为:首先交换什么?我猜(并且我希望)应用程序的 RAM 使用优先级高于 tmpfs(例如,我猜 tmpfs 将首先交换)。但我找不到任何证实这一点的信息。

更广泛地说,是否存在将 /tmp 安装为 tmpfs 会降低系统速度的情况?

swap
  • 1 个回答
  • 22 Views
Martin Hope
ineuw
Asked: 2023-06-24 08:27:10 +0800 CST

关于Linux swap的两个问题

  • 5

/swapfile 和专用分区哪个更好?磁盘空间和安装的内存不是问题。

我目前有一个双启动系统,Windows 11 和 Linux Mint Cinnamon 21.1,均为英文。我现在又添加了两个 Linux 操作系统:法语版 Linux Mint 21.1 和英语版 Kubuntu 22.04。

安装三个 Linux 操作系统后,我是否需要为每个操作系统进行交换,或者安装会检测到现有文件或分区吗?

swap
  • 1 个回答
  • 53 Views
Martin Hope
mattia.b89
Asked: 2023-04-05 00:46:24 +0800 CST

swapoff 行为:当我启动它时会发生什么?

  • 5

我很好奇命令背后的机制swapoff;

当我运行该命令时,“交换”数据去哪里了?

它是如何工作的?

swap
  • 1 个回答
  • 18 Views
Martin Hope
Veggieoskibroski
Asked: 2022-09-27 05:09:00 +0800 CST

为什么不在 fstab 中的交换尝试在引导时挂载

  • 4

我正在使用 Pop!_OS(基于 Ubuntu/Elementary OS)。

我有一些在启动时挂载的交换,这些交换在 fstab 中不存在。因为我已经删除了这些分区,所以整个引导过程必须等待不必要的一分半钟才能找到与这些 UUID 的交换。有什么提示可以删除吗?

编辑:根据评论请求,这是/etc/fstab文件

PARTUUID=fa857f57-b4d8-4bf5-b659-de05f87e8288  /boot/efi  vfat  umask=0077  0  0
UUID=1e23af14-f8ec-485f-8b23-1c63099206f2  /  ext4  noatime,errors=remount-ro  0  0
UUID=568bc5f2-8a35-4f51-ba0f-d07f53e09091  /home  ext4  noatime,errors=remount-ro  0  0
#UUID=0c8e22a9-7fd2-420d-8b20-7bb1ed099ab5 swap swap  0 0
#UUID=27fe5717-921b-48f1-9840-2273a3074d9e swap swap 0 0
UUID=3419B3F505351D84 /SSD ntfs uid=1000,gid=1000,rw,user,exec,umask=000,x-gvfs-show 0 0

boot.log下面列出了相关部分。因为我已经将它设置为向我展示启动过程(所有消息飞过等),我注意到它有一个计时器等待 1:30 等待不存在的交换

swapon: /dev/sdb2: swapon failed: Invalid argument
Sep 13 10:18:23 vegpop systemd[1]: dev-disk-by\x2duuid-4043f55a\x2dd6e4\x2d4557\x2db3b9\x2d4322bcc0dfd8.swap: Swap process exited, code=exited, status=255/EXCEPTION
Sep 13 10:18:23 vegpop systemd[1]: dev-disk-by\x2duuid-4043f55a\x2dd6e4\x2d4557\x2db3b9\x2d4322bcc0dfd8.swap: Failed with result 'exit-code'.
Sep 13 10:18:23 vegpop systemd[1]: Failed to activate swap /dev/disk/by-uuid/4043f55a-d6e4-4557-b3b9-4322bcc0dfd8.
fstab swap
  • 1 个回答
  • 286 Views
Martin Hope
Ortomala Lokni
Asked: 2022-05-22 23:24:01 +0800 CST

为什么 k3s 仍然在 Debian Bullseye 上看到交换?

  • 1

我已经在 Debian Bullseye 上安装了k3s(通过 qemu/ UTM在 M1 Pro 上)。

k3s 建议禁用交换。阅读以下问题的答案后:

  • 如何安全地永久关闭交换并回收空间?(在 Debian Jessie 上)

  • 永久禁用 Debian 上的交换

我有 :

  • 禁用 systemd 交换服务sudo systemctl mask "dev-*.swap"
  • 删除了中的交换分区/etc/fstab。
  • 删除交换分区并扩展主分区以重新获得空间
  • 将swapiness设置为0/etc/sysctl.conf

我现在有:

root@debian:~# systemctl --type swap --all
  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.

root@debian:~# sysctl vm.swappiness
vm.swappiness = 0

root@debian:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom  
vda    254:0    0   10G  0 disk 
├─vda1 254:1    0  512M  0 part /boot/efi
└─vda2 254:2    0  9.5G  0 part /

root@debian:~# free
               total        used        free      shared  buff/cache   available
Mem:         1000692      705588       34164        1704      260940      221484
Swap:              0           0           0

root@debian:~# swapon -s
root@debian:~#

但是当我跑步时k3s check-config,我仍然有:

- swap: should be disabled

我应该怎么做才能完全禁用 k3s 眼中的交换?

debian swap
  • 2 个回答
  • 220 Views
Martin Hope
zlatonick
Asked: 2022-03-31 22:39:44 +0800 CST

cgroups v2中memory.swappiness文件的替换是什么

  • 2

我目前正在从 cgroups v1 迁移到 cgroups v2。而且我找不到我在 cgroups v1 中使用的 memory.swappiness 文件。只有以下关于交换的文件

memory.swap.current
memory.swap.events
memory.swap.high
memory.swap.max

但根据文档,它们中的每一个都与 swappiness 参数无关。我在 cgroups v2 中找不到有关文件 memory.swappiness 的任何信息,仅有关/proc/sys/vm/swappiness文件中的文件和 vm.swappiness 参数的信息/etc/sysctl.conf。这是否意味着无法使用 cgroups v2 设置 swappiness?

操作系统:Debian 11

swap cgroups
  • 1 个回答
  • 389 Views
Martin Hope
Atemu
Asked: 2022-02-14 00:58:48 +0800 CST

当页面未交换时,是否在 zram 空闲支持页面上进行交换?

  • 3

想象一下将 2GiB 换出到 zram 并压缩到 1GiB 的场景。

一旦内存压力减轻并且 2GiB 逐渐变得未交换,Linux 是否会释放 1GiB 用于存储压缩 zram 页面的页面?

如果是这样,它是否会对现有页面进行碎片整理?
压缩页面中必须有多个页面,当所有页面都未交换时会发生什么?是否所有页面都保留在内存中,直到最后一页也被释放?

linux swap
  • 3 个回答
  • 748 Views
Martin Hope
Rick
Asked: 2020-03-04 23:09:59 +0800 CST

什么是惰性交换预留?

  • 1

我正在阅读Linux 编程接口。

49.9 MAP_NORESERVE 和交换空间过度使用

一些应用程序创建大型(通常是私有匿名)映射,但只使用映射区域的一小部分。例如,某些类型的科学应用程序分配一个非常大的数组,但只对数组中几个相隔很远的元素(所谓的稀疏数组)进行操作。

如果内核总是为整个此类映射分配(或保留)足够的交换空间,那么可能会浪费大量的交换空间。相反,内核可以仅在实际需要时(即,当应用程序访问页面时)为映射的页面保留交换空间。这种方法称为惰性交换保留,其优点是应用程序使用的总虚拟内存可以超过 RAM 加上交换空间的总大小。

换句话说,惰性交换保留允许过度使用交换空间。只要所有进程不尝试访问其映射的整个范围,这就可以正常工作。...

据我所知,交换空间是磁盘中的一块空间,保留用于内存交换。当内存中的这些页面处于非活动状态时,它们会被交换到磁盘中的交换空间中。它就像内存/内存的二级缓存。

那么这个惰性交换预留机制到底是什么鬼?

让我用一个例子来说明我的困惑。

  1. 一些应用程序创建大型(通常是私有匿名)映射......

好的,然后假设我malloc有一个大数组16384(4096*4)字节(创建大型(通常是私有匿名)映射),并且只对数组中几个广泛分离的元素进行操作。

然后一些非活动页面被交换到交换空间,对吗?假设0-4095(4096B),8192-12287(4096B)在内存中,所有其他非活动页面4096-8191(4096B),12288-16383(4096B)被交换到交换空间中。

那么这句话是什么意思:

相反,内核可以仅在实际需要时(即,当应用程序访问页面时)为映射的页面保留交换空间。

如果不留在交换空间4096-8191(4096B)中,这些非活动页面(和)还能留在哪里?文本似乎表明交换空间存在 3 级缓存。 12288-16383(4096B)

memory -> swap space (disk) -> ????

swap mmap
  • 2 个回答
  • 589 Views
Martin Hope
ajgringo619
Asked: 2019-12-17 11:09:41 +0800 CST

无法说服我的新交换分区的 initramfs

  • 0

(运行 Debian 10.2 XFCE)

由于某些分区调整大小的需要,我不得不删除我原来的交换分区并添加一个新的。我更改了/etc/fstab中的条目- 交换被识别并工作。我更改了/etc/default/grub中的条目- 运行update-grub没有错误。

现在,当运行最后一步 - update-initramfs -u - 它抱怨旧的交换 UUID 不存在。我发现一个问题正是我遇到的问题(http://forums.debian.net/viewtopic.php?t=133578),但修复不起作用。我仍然得到Begin: Running /scripts/local-block ... 完成。消息大约15次,然后开机终于完成了。

一旦我能够登录,我发现dmesg或journalctl都没有错误。我个人并不关心能够暂停,所以如果有办法禁用它,我完全赞成。我确实尝试过(从/etc/default/grub中删除了 RESUME= 条目),但这也没有帮助。

/etc/fstab

UUID=40728a0b-10e9-4599-9bb1-1db16e95db8c /boot     ext2    defaults    0 0
UUID=e0fef258-68d0-41b1-9326-dbdc37083000 /         btrfs   subvol=@,defaults,noatime,space_cache,autodefrag    0 1
UUID=e0fef258-68d0-41b1-9326-dbdc37083000 /home     btrfs   subvol=@home,defaults,noatime,space_cache,autodefrag    0 2
UUID=1aea03e4-a509-41c7-8e3e-ad547b34ddd9 swap      swap    defaults,noatime0 2

blkid

/dev/vda1: LABEL="Boot" UUID="40728a0b-10e9-4599-9bb1-1db16e95db8c" TYPE="ext2" PARTUUID="90f85121-01"
/dev/vda2: UUID="e0fef258-68d0-41b1-9326-dbdc37083000" UUID_SUB="84f77425-e0fe-4537-8b2c-b5838f8d70df" TYPE="btrfs" PARTUUID="90f85121-02"
/dev/vda3: UUID="1aea03e4-a509-41c7-8e3e-ad547b34ddd9" TYPE="swap" PARTUUID="90f85121-03"

/etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR='Debian'
GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=1aea03e4-a509-41c7-8e3e-ad547b34ddd9"
GRUB_CMDLINE_LINUX=""
debian swap
  • 2 个回答
  • 1243 Views
Martin Hope
Philip Couling
Asked: 2019-12-10 17:13:11 +0800 CST

什么具体可以交换 RAM 不能做的?

  • 44

当 Linux 有交换而没有交换时它可以做什么?

对于这个问题,我想关注例如具有 32 GB RAM 且没有交换的 Linux PC 与具有 16 GB RAM 和 16 GB 交换的几乎相同的 Linux PC 之间的区别。请注意,我对“是的,但是如果将交换添加到 32 GB PC 可以看到 X 改进”不感兴趣。这是这个问题的题外话。


我第一次遇到这样的观点,即添加交换比在早期问题的注释中添加 RAM 更好。

我当然读过这个:如果我有足够多的 RAM,我需要交换空间吗?和...

  • 答案主要集中在添加交换上,例如讨论磁盘缓存,其中添加 RAM 当然也会扩展磁盘缓存。
  • 有人提到只能通过交换进行碎片整理,但我找不到支持这一点的证据。
  • 我看到一些对 MAP_NORESERVE 的引用mmap,但这似乎是一个非常具体且晦涩的风险,仅与OOM情况相关,并且可能仅与私有mmap 相关。

交换通常被视为扩展内存或提高性能的一种廉价方式。但是,当大规模生产嵌入式 Linux 设备时,情况就发生了翻天覆地的变化……

...在这种情况下,交换会磨损闪存,导致它在保修期结束前几年失效。将 RAM 翻倍是在设备上多花几美元。

请注意,这是 eMMC 闪存而不是 SSD!. 通常 eMMC 闪存没有磨损均衡技术,这意味着它的磨损速度比 SSD 快得多


在这件事上似乎有很多激烈的争论。我真的在寻找关于能力的枯燥事实,而不是“你应该/不应该”的意见。

通过添加 RAM 也无法完成的交换可以做什么?

linux swap
  • 14 个回答
  • 11820 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve