ecryptfs如何影响硬盘性能?

我的家里用ecryptfs加密了。 ecryptfs会导致碎片吗?

我觉得阅读文件,显示文件夹和登录变得越来越慢(虽然开始时没有明显的慢)。 即使我只打开一个文本文件,硬盘也会产生大量的搜索噪音。 在/home/.ecryptfs中我看到很多大档案(可能包含加密文件),所以我想知道Linux文件系统在线碎片整理是否在这里获得了任何好处。

我有什么选择来提高性能? 我应该决定在没有加密的情况下是否更好?

在加密主目录时,Phoronix运行了一系列测试和一些关于eCryptfs性能的文章:

我对这些文章的看法是,根据基准测试加密(如预期的那样)确实会在一定程度上影响读写性能。 在小型CPU(Atom处理器)和快速硬盘(SSD)上,这可能更为明显。 也就是说,通过使用eCryptfs,在向主目录读取/写入数据时(而不是系统的其他部分,就像使用全盘加密一样),您只需要支付性能损失。 此外,对于更快的处理器,执行加密/解密所花费的时间通常适合从磁盘访问数据的IO等待,这通常是瓶颈。

至于你的特定问题,如果你听到很多“硬盘搜索”噪音,我觉得你的系统正在将数据从内存交换到磁盘,来回传递。 如果您选择使用eCryptfs,那么Ubuntu将自动加密您的交换空间(这是保护您的加密数据所必需的)。 但是,加密交换也非常昂贵。

就个人而言,我使用大量RAM(我的大多数系统都是8GB)使系统过载,并完全禁用交换。

我在我的主目录中使用python进行编程,并且我有一个用于项目包的Python虚拟环境。

对于我的程序,启动时间在eCryptfs上要慢得多,因为Python在查找模块文件时会发出许多stat()系统调用; 因为许多这些stat调用导致“找不到文件”,并且这些结果从未被缓存,但我们仍然为ecryptfs付出代价,事情总是缓慢。

更新

我最终通过将ecryptfs挂载点移动到〜/ private,将〜/ private中的大多数文件复制到我的未加密的homefolder中,从我的家庭目录中删除了ecryptfs。 事情现在又快了。 对于其他一些CPU来说,性能损失可能会更少,我有一个带Atom的华硕1215N。

我没有进行任何硬核测量,所以请注意以下几点,但我注意到在下列情况下使用ecryptfs的性能非常差,而dm-crypt’d LV(安装为/ home / username):

  • du在一个包含大量文件的文件夹上。 使用整个分区的dm-crypt需要几分钟而只需几秒钟 – 这是迄今为止最糟糕的情况

  • 在mutt中打开包含大量项目的文件夹需要几秒钟(在包含10000个项目的文件夹上大约20个),而dm-crypt几乎是即时的

  • 与dm-crypt相比,git操作更慢(有些,不是很多)

  • 像firefox这样的应用程序启动时间明显更长,但我们仍处于秒级范围内

我刚刚转移到dm-crypt(使用pam_mount)并且不能更开心!

诸如truncate()和ftruncate()之类的调用会增加文件大小,因为它必须用加密的零填充加密零,这与只在文件中创建漏洞的普通文件系统不同。