首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux块层中的blktrace输出和块大小

linux块层中的blktrace输出和块大小
EN

Stack Overflow用户
提问于 2013-08-24 21:51:58
回答 1查看 1.1K关注 0票数 1

我最近一直在使用blktrace/blkparse,有几个问题,如果有人能帮我解决,我将不胜感激:

1) blkparse输出中的块数值以扇区(512字节)表示。这是正确的吗?这是否仍然适用于没有512字节扇区的SSD?

2)即使我运行的工作负载提交的数据大于1MB (使用libaio),这个块数值也不会超过2048 (1MB)。可以提交给Linux块层的块大小是否有限制,以及块层是否会自动将较大的块拆分为较小的块?有没有人能告诉我内核代码路径是怎么做的?

非常提前谢谢你。

Terko

EN

回答 1

Stack Overflow用户

发布于 2013-08-24 22:44:26

Blktrace从Linux内核获取数据,该内核将扇区视为512 bytes long。所以我认为,无论设备的物理扇区大小如何,blktrace都会以512字节的扇区显示偏移量和大小。

您可以使用dd进行测试,以验证发生了什么,并使用btrace记录磁盘访问。例如,

代码语言:javascript
复制
dd if=/dev/something of=/dev/null bs=512 count=1 skip=512

对于您的第二个问题,在块层中发生了很多事情: I/O请求被缓冲、合并、调度。因此,如果内核使用与应用程序中指定的块大小不同的块大小进行磁盘访问,请不要感到惊讶。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18419294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档