- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 blktrace 了解 block 层行为具有高 IO 负载的多线程 IO 工作负载。我可以观察到一些 block 层中重复的 LBA 请求。比如我只有一个在我的原始工作负载中向 LBA 47568 写入请求。然而,blktrace显示 121 个请求写入 LBA 47568!下面是一部分blkparse log which filter only I events (IO inserted to request队列)。我试图理解为什么会发生这种现象以及如何发生我可以消除它吗?我选择了 noop IO scheduler 和 value 2 in/sys/block/sdX/nomerge 以避免 IO 合并。我非常感谢你的帮助提前。
8 240 0 7539 0.073300123 32282 I WS 47576 + 8 [a]
8 240 5 4462 0.073303974 32281 I WS 47568 + 8 [a]
8 240 11 4462 0.073306337 32283 I WS 47584 + 8 [a]
8 240 6 4462 0.073307970 32284 I WS 47592 + 8 [a]
8 240 10 4462 0.073309010 32285 I WS 47600 + 8 [a]
8 240 5 4466 0.073311526 32281 I WS 47568 + 8 [a]
8 240 5 4469 0.073316215 175 I WS 47568 + 8 [kworker/5:1]
8 240 7 4462 0.073352932 32286 I WS 47608 + 8 [a]
8 240 7 4466 0.073354061 32286 I WS 47568 + 8 [a]
8 240 8 4468 0.073358935 32280 I WS 47624 + 8 [a]
8 240 4 4468 0.073360550 32279 I WS 47616 + 8 [a]
8 240 8 4472 0.073362145 32280 I WS 47568 + 8 [a]
8 240 5 4473 0.073362711 32281 I WS 47632 + 8 [a]
8 240 5 4477 0.073364177 32281 I WS 47568 + 8 [a]
8 240 0 7545 0.073407427 32282 I WS 47640 + 8 [a]
8 240 0 7549 0.073409589 32282 I WS 47568 + 8 [a]
最佳答案
好的,我要回答我的问题了。事实证明,工作负载中未完成的 IO 数量大于通用设备驱动程序队列大小 (/sys/block/sdX/device/queue_depth)
。所以,有些请求在这个队列满了的时候,没有插入到这个队列中,造成了这样的现象。
关于linux - block 层中重复的 LBA 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303747/
我想在 UEFI 中列出根目录的内容,但我没有找到任何协议(protocol)可以做到这一点;因此我想打印目录文件的内容,但是 EFI_FILE_PROTOCOL 无法读取目录文件。我唯一可以做的另一
确定性线性有界自动机 (LBA) 是一种单带 TM,它不是允许将其头部移过输入的右端(但它可以在该部分上读取和写入最初包含输入的磁带)。 如何证明确定性 LBA M 是否接受无限数量的输入是不可判定的
这个问题已经有答案了: How to get LBA(logical block addressing) of a file from MFT on NTFS file system? (3 个回答)
我目前正在做 block 驱动程序。我在测试过程中注意到,如果我的平台是 RHEL6.x/CentOS6.x 我的结构请求开始了LBA/扇区始终对齐 8(例如 0、8、0x10、0x100、0x250
我有一个从 LBA(逻辑 block 地址)读取数据的程序,但无论我提供什么 LBA 编号,它都会给出相同的输出。 我如何验证它? #include #include #include #inc
我正在使用 blktrace 了解 block 层行为具有高 IO 负载的多线程 IO 工作负载。我可以观察到一些 block 层中重复的 LBA 请求。比如我只有一个在我的原始工作负载中向 LBA
我需要确定磁盘设备上文件占用的扇区范围(对于 Linux)。假设它是一个带有 MBR 或 GPT 分区表的简单磁盘(无 RAID)。 我了解到我可以使用 FIIBMAP ioctl 获取文件在文件系统
我一直在尝试在裸机上测试我的业余操作系统的 AHCI 驱动程序。在此之前,我使用以下参数在 QEMU 中测试了我的驱动程序: qemu-system-i386 -boot d -cdrom elfbo
我想使用 C++ 或其他本地编程语言通过逻辑 block 寻址 (LBA) 读取/写入 ISO 上的扇区。例如我想读取 ISO 文件的自定义 LBA。这可能吗?如果可以,我该怎么做? 最佳答案 当然可
我正在尝试加载我的加载程序组件 (loader.asm): [BITS 16] [ORG 0x7e00] start: ; printing message to show that loader i
我是一名优秀的程序员,十分优秀!