AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1054581
Accepted
Hannes
Hannes
Asked: 2021-02-23 01:19:45 +0800 CST2021-02-23 01:19:45 +0800 CST 2021-02-23 01:19:45 +0800 CST

Samba 和 luks 一起加密磁盘:尽管 CPU 资源充足,但性能损失巨大,单独 LUKS 和 samba 可以按预期工作

  • 772

设置:使用 luks aes-xts 512 位(256 位 AES 密钥)加密的 SSD,ext4 文件系统

dd 写入性能138 MB/s,CPU 使用率 97-100 %

dd if=/dev/zero of=testfile status=progress bs=32M count=128
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 31 s, 138 MB/s
128+0 Datensätze ein
128+0 Datensätze aus
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 31,0463 s, 138 MB/s

dd 读取性能110 MB/s,CPU 使用率从 > 90 % 开始,然后下降到大约 50-60 %,然后在文件读取结束时再次上升到 > 90 %。

#crop cache before
sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"

现在进行测试:

dd if=testfile of=/dev/null status=progress bs=32M
4261412864 bytes (4,3 GB, 4,0 GiB) copied, 39 s, 109 MB/s
128+0 Datensätze ein
128+0 Datensätze aus
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 39,1345 s, 110 MB/s

现在让我们仔细看看 samba:

在上面基准测试的磁盘上将1 GB 文件写入samba共享大约73 MB/s,CPU 使用率仅为 70% 左右。

从samba共享中读取1 GB 文件的速度仅为64 MB/s左右,CPU 使用率约为 55%。还要看这张图:它开始缓慢,然后速度上升和下降,产生某种波形。

在此处输入图像描述

立即再次复制此文件,当它在缓存中时,它会以112 MB/s 的速度复制,因此应有全 GigabitEthernet 速度。


与未加密的驱动器相比:

dd 写入速度133 MB/s

dd 读取速度207 MB/s

Samba 写入:112 MB/s

Samba 读取速度:112 MB/s


所以单独使用LUKS加密就可以提供足够的速度,单独使用Samba也有足够的速度。结合起来,性能会大幅下降,而仅使用 dd 时仍有大量可用的 CPU 资源可用。

这里有什么问题?为什么在使用 dd 对 samba 进行操作时,CPU 没有完全使用?可以做些什么来使用 smb 和 luks 加密来获得完整的性能/CPU 使用率?

performance samba performance-tuning cpu-usage luks
  • 1 1 个回答
  • 680 Views

1 个回答

  • Voted
  1. Best Answer
    Hannes
    2021-03-01T08:46:28+08:002021-03-01T08:46:28+08:00

    我已经深入挖掘了它。

    这似乎是 CPU 使用率的错误显示。

    使用 samba 从未加密的驱动器读取速度为 112 MB/s,需要整个系统上大约 38% 的 CPU 使用率 大约 38% 的 CPU 使用率

    CPU 使用率在 29% 之间浮动,有时甚至在从未加密的驱动器读取时很快上升到 94%。

    现在将 110 MB/s 的加密读取性能降低 38 %,得到 68.2 MB/s。这非常接近 64 MB/s。

    所以从逻辑的角度来看:Samba 本身需要相对较多的 CPU,并且结合加密所产生的速度现在似乎是有意义的。

    顺便说一句:完成这些测试的系统是具有 4 核臂 CPU @ 默认时钟为 1.8 GHz 的 Rasperry PI 400。cryptsetup benchmark报告具有 512 位密钥(即 256 位 AES 加密)的 aes-xts 77 MB/s 用于加密和 66.9 MB/s 用于解密。但是 cryptsetup 只使用一个 CPU 进行这些测试,所以我猜电源管理会降低 CPU 的时钟频率,这就是为什么使用真正的加密和解密会有更多的性能,如 dd 显示。

    我还做了一些其他的性能测试。

    我还将 /dev/mapper 和 /dev/sdd 的预读大小从 256 增加到 65536 via sudo blockdev --setra 65536 /dev/sdd,sudo blockdev --setra 65536 /dev/mapper/sdd_crypt但是这些并没有产生任何明显的区别。

    深入挖掘我发现这篇非常有趣的文章https://blog.cloudflare.com/speeding-up-linux-disk-encryption/

    他们的研究导致no_read_workqueue并no_write_workqueue开始于内核版本 5.9。幸运的是,当前的 Rasperry PI OS 是 5.10.11-v7l+,所以 dmcrypt 支持这些选项。

    但是 Raspberry PI OS Buster 上的最新 cryptsetup 版本 2.1.0 不支持这些选项。所以我编译了 cryptsetup 2.3.4 以使用 no_read_workqueue 和 no_write_workqueue (参见 https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-crypt.html)并通过

    cryptsetup open --perf-no_read_workqueue --perf-no_write_workqueue /dev/sdd sdd_crypt
    

    但是,在从设备而不是 RAM 磁盘读取此特定设置时,性能会大大降低。

    结论:由于得到的速度是合理的,它似乎是 CPU 使用率的错误显示。

    • 2

相关问题

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • jvm性能调优技巧/资源?

  • 加快 MSSQL 快照复制到 SQLExpress 副本的速度

  • 聚集索引与非聚集索引?

  • 使用大量 javascript 的页面上的鱿鱼速度很慢

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve