我更喜欢将操作系统和应用程序保存在一个分区和/home/
另一个分区上。
我打算/
用 SSD 替换当前的驱动器,然后符号链接/home/myuser/.local/
到 SSD 上的目录,因为那里安装了一些应用程序。这是因为我发现 SSD 的性能要高得多。必须遍历经典 HD(非 SSD)上的符号链接是否可能会影响存储在 中的应用程序的性能~/.local
?我可以想象这种情况,因为硬盘需要停止正在做的任何事情,并将磁头移动到~/.local
存储的任何地方才能访问它。
答案1
必须遍历经典 HD(非 SSD)上的符号链接是否会影响存储在 ~/.local 中的应用程序的性能?
绝对不。在最坏的情况下,解析旋转 Rust 上的符号链接将花费不到一秒的时间,从那时起它将被缓存,后续访问将几乎是即时的。
(这是关于定期备份重要性的友好提醒 - SSD 磁盘往往会突然且意外地失效,并且通常无法恢复任何数据)。
答案2
如果您对磁盘访问的单独性能感兴趣,可以使用密件抄送(BPF 编译器集合)从内核获取计时数据的工具集。这些工具可能在您的发行版中的一个名为bcc-tools
或类似的包中提供。
这里有趣的是该biosnoop
工具,它列出了磁盘上的每个读取或写入操作以及所花费的时间。在我的系统上我需要做:
sudo /usr/share/bcc/tools/biosnoop
需要几秒钟的时间才能开始写出标题。像这样的命令(sum /etc/systemd/bootchart.conf
我通常不读取的文件)的窥探跟踪输出可能是:
TIME(s) COMM PID DISK T SECTOR BYTES LAT(ms)
99.305 sum 1134 sda R 33889239 4096 3.02
这表明该sum
命令在给定的 4096 字节扇区(这是该文件系统的块大小)处进行了 R 读取。 3.02 毫秒后得到回复。如果我重复sum
多次重复该命令,窥探跟踪就会不是显示读取操作再次发生,因为它被内核缓存。查找目录条目和跟踪符号链接也是如此。