问题描述
我在第二个分区上有一个带有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 /s
/tmp
:42.6 MB /s
请评论?我之所以这么说是因为上网本上的磁盘访问速度明显很慢。
更新2
我用time
为每个dd
操作计时:
~
:
real 0m2.217s
user 0m0.028s
sys 0m2.176s
/tmp
:
real 0m0.152s
user 0m0.012s
sys 0m0.136s
另请参阅:discussion on UbuntuForums.org和bug report(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(旧)Phoronix test,此处为similar问题,此处为duplicate问题,以及similar超级用户问题。一个很好的总结答案here表明性能损失只在小型/上网本(Atom)处理器和SSD上才会引起注意。
最佳解决方案
多年来我一直在使用加密的主目录功能,我可以告诉你,虽然它在正常情况下表现良好,但在进行任何强烈的文件操作时会使你的机器瘫痪。
我有一个quad-core Pentium i7和System7的16GB RAM。无论如何,它是一款带有SATA 7200 RPM驱动器的快速笔记本电脑。就在今天,当我解压缩包含20,000个小文本文件的文件(需要10分钟)时,我的系统基本上无法使用。触及文件系统的所有内容都有1-2秒的延迟……包括Web浏览器。我的经验正是OP的经验 – 加密的主目录比未加密的目录慢15倍。
我没有想到它,因为我已经习惯了(这是我的第四台笔记本电脑)。如果有人知道如何改进它,我想我会在这里搜索。
我加密了我的主目录,因为我必须这样做。如果你不必……那就不要了。
次佳解决方案
dd不是衡量高清性能的好方法。涉及到许多变量,无论如何,任何好的测试都需要做很多次。
加密会产生开销,尤其是上网本中的”lesser” cpu。毕竟它们更便宜。
虽然我没有关于驱动器加密的数据,但我确实对https vs http进行了网络服务器的测试,但成本很高,但并不致命。但是,你的家庭目录往往是乱七八糟的程序随机写入他们的隐藏目录。在这方面,请看Firefox为一个坏男孩。这对于上网本来说是一个持续的轻微减速,已经慢了,并且通常标准的HD很慢。
另一个用户建议使用bonnie ++再次运行它,但这一次,与两个不同的用户一起使用,一个使用加密的HD,另一个没有。确保两个家庭目录都填充相同。
这为您提供了更准确的测试。看到大约20%或更高的性能下降,我不会感到惊讶。这就是我的网络服务器在被要求加密所有内容时所做的事情。而且您正在读写加密数据。
第三种解决方案
虽然加密肯定会增加开销,但加密主分区不应该对系统的性能产生很大影响。您运行的大多数程序都是读取溴/bin或/usr,大多数常规系统写入都在/var或/tmp中。
只有你的用户文件在/home中,所以如果处理大文件你会看到影响,我通常把它放在单独的分区上,只保留我的家庭文件。