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
    • 最新
    • 标签
主页 / unix / 问题 / 556250
Accepted
sameera
sameera
Asked: 2019-12-09 20:33:08 +0800 CST2019-12-09 20:33:08 +0800 CST 2019-12-09 20:33:08 +0800 CST

在 ubuntu 上使用树莓派 4 测试 bcache

  • 772

我正在用 ubuntu 在树莓派 4 上测试 bache。我选择 ubuntu 的原因是我发现标准 raspbian 遇到了一些 bcache 问题,因为内核模块没有正确加载。我试图解决一些问题,但后来我搬到了 ubuntu,它马上就可以工作了

我的设置是这样的。

1 x 1TB HGST 5400RPM 2.5 laptop hard disk
1 x 256GB WD Green 2.5 SSD
Raspberry pi 4 4GB model with large heat-sink for cooling and 4A power.

我使用 USB 3.0 端口将 HDD 和 SSD 连接到树莓派(均为外部供电)并启动到 ubuntu。首先我测试了欠压错误,发现一切正常。

SSD -> /dev/sda
HDD -> /dev/sdb

然后我在两个驱动器上创建 1 个分区并按如下方式创建 bcache。

make-bcache -B /dev/sdb1
make-bcache -C /dev/sda1

然后我将 /dev/bcache0 挂载到 /datastore

然后我按如下方式附加了缓存设备

echo MYUUID > /sys/block/bcache0/bcache/attach

然后我启用了回写缓存

echo writeback > /sys/block/bcache0/bcache/cache_mode

然后我安装了 vsftpd 服务器并将根 ftp 目录作为我的 bcache0 挂载点,然后我开始测试。前几个测试我可以上传文件 113MBps,我注意到大多数文件直接写入支持设备,即使附加了缓存。

当我使用 bcache-status 脚本https://gist.github.com/damoxc/6267899测试状态时,我看到大多数写入未命中缓存并直接写入支持设备,而 113MBps 直接来自机械硬盘驱动器:-O ?

然后我开始微调。正如此https://www.kernel.org/doc/Documentation/bcache.txt文档的故障排除性能部分所建议的那样

首先我通过执行这个命令将sequential_cutoff 设置为零

echo 0 > /sys/block/bcache0/bcache/sequential_cutoff

在此之后,我可以立即看到 SSD 设备缓存命中增加。与此同时,我不断地运行 iostat。我可以从 iostat 中看到 SSD 正在被直接访问。但几分钟后,我的 filezilla 客户端挂起,我无法重新启动 FTP 上传流。当我尝试访问 bcache0 挂载时,它真的很慢。缓存状态显示为“脏”

然后我重新启动 pi 并再次连接设备。并设置在下面

echo 0 > /sys/fs/bcache/MYUUID/congested_read_threshold_us
echo 0 > /sys/fs/bcache/MYUUID/congested_write_threshold_us

根据https://www.kernel.org/doc/Documentation/bcache.txt文章,这是为了避免 bcache 跟踪支持设备延迟。但即使在这个选项之后。我的 FTP 上传流不断崩溃。然后我将所有设置恢复为默认值。仍然有大量文件上传它崩溃

而且我注意到在测试 pi CPU 中没有充分利用。

我可以使用 pi 4 1Gbps 以太网获得的最大吞吐量为 930Mbps,这非常好。HGST 驱动器在我用 NTFS 的水晶磁盘标记进行测试时能够写入高达 90MBps。由于文件系统是 ext4,我似乎可以在 pi 上获得 113MBps。

如果我能获得超过 80MBps 的 ftp 上传速度,我可以接受。我的问题是

为什么 FTP 流在使用 bcache 时不断崩溃,以及为什么 bcache 挂载超时。

为什么即使将sequential_cutoff设置为0,缓存使用率也很低

有人用 Raspberry PI 4 测试过 bcache 吗?如果是,我怎样才能正确使用 SSD 进行缓存

最后,有人可以解释更多关于 bcache 在写回模式下的实际工作原理。我只将它用于存档数据,我不需要访问 SSD 类型的设置上的热数据。

ubuntu raspberry-pi
  • 1 1 个回答
  • 884 Views

1 个回答

  • Voted
  1. Best Answer
    sameera
    2019-12-10T19:59:40+08:002019-12-10T19:59:40+08:00

    我设法按照https://www.raspberrypi.org/forums/viewtopic.php?t=245931这个主题的说明解决了这个问题。

    这是由于 Raspberry PI 4 USB 3.0 UASP 驱动程序问题,它使我的外部 SSD 连接断断续续。在 cmdline.txt 添加行以忽略 UAS 接口后,我的 SSD 和 bcache 一样工作正常

    基本上你需要找到你的外部 USB 3.0 SSD / Enclosure VID 和 PID

    lsusb
    

    然后我必须编辑 cmdline.txt 并在文件末尾添加以下行。其中 aaaa 等于 VID,bbbb 等于 PID

    usb-storage.quirks=aaaa:bbbb:u
    

    然后重启 pi。重新启动后,我的 SSD 稳定,在我的 kern.log 中看不到有关 UAS 接口的任何错误

    除了上面提到的 bcache 设置与 Raspberry pi 4 完美配合。我使用 Ubuntu 进行测试

    • 1

相关问题

  • 使 Apple 键盘设置在 ../hid_apple/parameters/ 中持久化

  • 用文件中的点绘制二维图形

  • 如何验证我使用 9.9.9.9 作为 DNS?

  • 并行安装多个 linux 发行版

  • 自编译 OpenVPN 不会从 systemd 启动

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve