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

Sab*_*lfy 37 performance encryption

我有一个上网本,第二个分区上有 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
Run Code Online (Sandbox Code Playgroud)

/tmp

real    0m0.152s  
user    0m0.012s  
sys     0m0.136s
Run Code Online (Sandbox Code Playgroud)

另请参阅: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)
Run Code Online (Sandbox Code Playgroud)

2012 年 5 月 1 日更新:更多相关链接供参考:一个(旧)Phoronix测试,这里有一个类似的问题,这里有一个重复的问题和一个类似的超级用户问题。这里的一个很好的总结答案表明,性能损失仅在小型/上网本 (Atom) 处理器和 SSD 上才明显。

HDa*_*ave 21

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

我有一个四核 Pentium i7,带有来自 System7 的 16GB RAM。从任何角度来看,它都是配备 SATA 7200 RPM 驱动器的轻快笔记本电脑。就在今天,当我解压缩一个包含 20,000 个小文本文件的文件时(需要 10 分钟),我的系统基本上无法使用。接触文件系统的所有内容都有 1-2 秒的延迟......包括网络浏览器。我的经验与 OP 完全相同——加密的主目录比未加密的主目录慢约 15 倍。

我什么都没想到,因为我已经习惯了(这是我的第四台笔记本电脑)。如果有人有关于如何改进它的提示,我想我会在这里搜索。

我加密我的主目录,因为我必须这样做。如果你不需要……那就不要。

  • 那个7200rpm的硬盘绝对是一个瓶颈。此外,您可能应该将 [ionice](http://linux.die.net/man/1/ionice) 用于任何长时间运行的非关键 I/O 密集型操作,以免降低其他操作的性能,例如使用您的网络浏览器。 (2认同)

小智 9

dd 不是衡量高清性能的好方法。涉及到许多变量,无论如何,任何好的测试都需要进行无数次。

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

虽然我没有关于驱动器加密的数据,但我确实对网络服务器的 https 与 http 进行了测试,成本很高但并不致命。但是,您的主目录往往是乱七八糟的,程序会不断地随机写入其隐藏目录。关于这方面的一个坏男孩,请参阅 Firefox。这是上网本的持续轻微减速,该上网本已经较慢并且通常作为标准具有较慢的高清。

使用另一位用户推荐的 bonnie++ 再次运行它,但这一次,与两个不同的用户一起运行,一个具有加密的 HD,另一个没有。确保两个主目录都填充相同。

这为您提供了更准确的测试。看到大约 20% 或更多的性能下降,我不会感到惊讶。这就是我的 Web 服务器在被要求对其输出的所有内容进行加密时所做的事情。您正在读取和写入加密数据。


小智 3

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

只有您的用户文件位于 /home 中,因此如果处理大文件,您会看到影响,无论如何,我通常将其放在单独的分区上,只将我的 home 保留为文档。

  • 许多程序使用主目录中的隐藏文件(点文件)。虽然他们应该使用 tmp 进行频繁写入,但您可以尝试仅加密 /home 的子目录。 (2认同)

小智 0

传输速度很难成为评估加密开销的充分指标:瓶颈可能只是硬盘的 IO 容量。您可能还想查看 CPU 使用情况,无论您是否使用加密,它可能(也可能没有)不同。

  • 例如,bonnie++ 的 IO-meter 比 dd 好得多。只需“sudo apt-get install bonnie++”即可安装它。 (2认同)