PVE
Balloon
在 Monitor 中执行 balloon 1024 来把客户机内存设置为 1024MB。info balloon 查看自动分了多少内存。
容器使用
容器内非 root 用户无法使用 ping 时,运行 sudo setcap 'cap_net_raw+p' /usr/bin/ping 即可。
ZFS
Trim
ZFS 支持 trim 指令,但是 PVE 默认没有开启。不开启 trim 会潜在地影响 SSD 寿命或降低磁盘利用效率(如果 PVE 安装在 thin-provisioning 的虚拟机里)。
使用以下命令查询 trim 开启状态:
zpool get autotrim rpool使用以下命令立即执行 trim:
zpool trim rpool使用以下命令开启自动 trim:
zpool set autotrim=on rpoolTO-DO: 我记得某个情况下自动 trim 效果不好来着,以前还专门做过实验,但是结果忘了。
微码更新
PVE 仓库默认不带微码更新,可以用 Debian 的:https://wiki.debian.org/Microcode
要注意的是,从 Debian 12 (bookworm) 开始,要用“non-free-firmware”,添加到“/etc/apt/source.list”中每一行的末尾:
deb http://ftp.ca.debian.org/debian bookworm main contrib non-free-firmware
deb http://ftp.ca.debian.org/debian bookworm-updates main contrib non-free-firmware
# security updates
deb http://security.debian.org bookworm-security main contrib non-free-firmware完成后,根据你是 AMD 还是 Intel,运行
apt update
apt install amd64-microcode或
apt update
apt install intel-microcode重启后,执行 dmesg | grep microcode,如果输出中有“updated early”等字样,指示从哪个版本升级到了哪个版本即为成功。注意不是所有情况都会通过操作系统更新微码,例如较新的 BIOS 有时集成了最新的微码,就不需通过操作系统更新了。
AMD
我使用的 AMD 5800H 截止本文更新时,微码更新无论是否安装,微码都是“0x0a50000d”版本。执行 lscpu 会输出以下 Vulnerability:
Spec rstack overflow: Vulnerable: Safe RET, no microcode在 https://packages.debian.org/search?keywords=amd64-microcode 中可知“testing”中有比“stable”更新的包,但是该版本也并不能提供更高版本的微码。
从其他来源发现 5800H 的最新微码应该是“0x0a50000f”,尚不清除该版本是否缓解了上述漏洞。
关于 AMD Speculative Return Stack Overflow (SRSO) 的额外注意点
如果你执行 lscpu 时出现 Spec rstack overflow: Mitigation: Safe RET, no microcode,这并不代表真的缓解了。Linux 内核文档中提到该漏洞必须通过微码更新来缓解。实际上,如果你更新到最新内核,但不更新微码,该条信息会从“Mitigation”变为“Vulnerable”。也就是说,没有微码修复的 Mitigation 实际上是不完整的。
另见:https://lore.kernel.org/lkml/20230814125249.GCZNojoW8pC+ToOews@fat_crate.local/T/
观察有没有超内存
watch "tail -n +1 /proc/pressure/* && echo "" && free -h && echo "" && zramctl"