我们在备份数据库时遇到交换消耗问题。
每天晚上 01 点,我们运行 mariabackup 命令,在此过程中交换空间使用量急剧上升,直到达到 100%,最多只能在上午 10 点左右回落到正常使用量。
VM 具有 Alamalinux 8.4 操作系统、约 60GB RAM 和 4GB SWAP 分区。
“正常”资源利用率(不包括备份)约为 RAM 的 70-80% 和 SWAP 的 70-80%。
vm.swainess 值已设置为 0,但这不会改变 SWAP 消耗。在外部或晚间备份期间,RAM 使用情况保持相当稳定。
您知道为什么在备份过程中如此频繁地使用 SWAP 吗?
这正常吗?你有什么建议吗?
因此从图表来看,交换增加了约 28%,在 4G 上为 1.12GB。 MariaDB-backup 使用自己的 Innodb 缓冲池(可通过 --use-memory= 更改)来跟踪运行时的数据和更改
--prepare
。 1G 是默认值。
对于备份,我发现没有使用额外的 RAM,奇怪的是它略有下降,因此它似乎用于交换。它必须去某个地方。
如果从绝对值来看,60G 百分比的小幅下降是否与 4G 交换的较大百分比增长相对应?
交换健康状况的主要指标是换入/换出的数量仍然低于实际使用的数量。
smem
可以显示每个进程的交换使用情况,以确认它是备份以及一直到上午 10 点都使用了什么。即使它是 mariadbd 的一部分被换出,它显然也不是一个重要的用途(除非有大量的换入/换出正在进行)。
注意:我不确定这是否是完整的答案