加密 /home 的性能开销是多少?

加密 /home 的性能开销是多少?

我有一台上网本,第二个分区上安装的是 Windows,第三个分区上安装的是 Xubuntu(//home)。我在安装过程中选择加密我的主文件夹。上网本的性能对于小型机器来说已经足够了,但我希望提高性能。我找不到太多有关与主分区加密相关的开销(CPU 或驱动器)的信息。我运行了以下命令,写入我的主分区以及已挂载的 Windows 分区:

dd if=/dev/zero of=~/dummy bs=512 count=10240

dd if=/dev/zero of=/media/Windows/dummy bs=512 count=10240

第一个返回 2.4MB/s,第二个返回 2.5MB/s。因此,我是否可以推断主文件夹加密的开销很小?我不确定不同的文件系统是否会产生任何差异(/并且/home是 ext3)。

更新 1

我不知道为什么我没有使用/tmp而不是挂载的 Windows 文件夹。只有/home加密,/tmp未加密的 ext3 也是如此。如上结果dd令人震惊:

~:2.4 MB/秒

/tmp:42.6 MB/秒

请评论一下?我问这个问题的原因是上网本的磁盘访问速度明显很慢。

更新 2

dd我对每个操作进行了计时time

~

real    0m2.217s  
user    0m0.028s  
sys     0m2.176s

/tmp

real    0m0.152s  
user    0m0.012s  
sys     0m0.136s

也可以看看:UbuntuForums.org 上的讨论错误报告 (2012/05/11:现在似乎是与 SSD 相关的一个错误)

编辑:输出mount

/dev/sda3 on / type ext3 (rw,noatime,errors=remount-ro,user_xattr,commit=600)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/USER/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=USER)

更新2012/05/01:更多相关链接供参考:an (old) Phoronix测试, A相似的这里的问题复制这里的问题和一个相似的超级用户问题。一个很好的总结性答案这里表明性能损失仅在小型/上网本(Atom)处理器和SSD上显而易见。

答案1

我已经使用加密主目录功能多年,我可以告诉你,虽然它在正常情况下表现良好,但在执行任何类型的密集文件操作时它都会让你的机器崩溃。

我有一台四核 Pentium i7,配有 System7 的 16GB RAM。无论从哪个角度看,这都是一台速度极快的笔记本电脑,配有 SATA 7200 RPM 驱动器。就在今天,当我解压一个包含 20,000 个小文本文件的文件时(需要 10 分钟),我的系统基本上无法使用。接触文件系统的所有内容都有 1-2 秒的延迟……包括 Web 浏览器。我的经历与 OP 完全一样——加密的主目录比未加密的主目录慢 15 倍左右。

我没多想,因为我已经习惯了(这是我的第四台笔记本电脑)。如果有人能提供改进方法的提示,我想在这里搜索一下。

我加密我的主目录是因为我不得不这么做。如果你不必这么做……那就别这么做。

答案2

dd 并不是衡量高清性能的好方法。其中涉及的变量太多,而且任何好的测试都需要多次进行。

加密会产生开销,尤其是对于上网本中“较差”的 CPU 而言。毕竟它们更便宜是有原因的。

虽然我没有驱动器加密的数据,但我确实对网络服务器进行了 https 与 http 的测试,成本虽然很大,但并不致命。但是,您的主目录往往会很混乱,因为程序会不断随机写入其隐藏目录。在这方面,Firefox 就是一个坏孩子。这会导致上网本的速度不断略微变慢,上网本的速度本来就比较慢,而且通常标配的 HD 速度很慢。

按照另一位用户的建议,使用 bonnie++ 再次运行该程序,但这次,使用两个不同的用户执行该程序,一个用户有加密硬盘,另一个用户没有。确保两个主目录都填写了相同的内容。

这可以为您提供更准确的测试。如果性能下降 20% 或更多,我不会感到惊讶。这就是我的 Web 服务器在被要求加密其输出的所有内容时所做的。而且您正在读取和写入加密数据。

答案3

虽然加密肯定会增加开销,但加密主分区不会对系统性能产生很大影响。您运行的大多数程序都是从 /bin 或 /usr 读取的,而大多数常规系统写入都在 /var 或 /tmp 中。

只有您的用户文件位于 /home 中,因此,如果处理大文件,您会看到影响,我通常将大文件放在单独的分区中,将我的主文件仅用于存放文档。

答案4

传输速度几乎不足以衡量加密的开销:瓶颈可能只是硬盘的 IO 容量。您可能还想看看 CPU 使用率,无论您是否使用加密,CPU 使用率都可能会(也可能不会)有所不同。

相关内容