我购买了一个虚拟服务器,它有8个vCPU、16G内存和一个500克的ssd卷(这是由ceph支持的)。然后,我使用fio测试服务器的IO性能。为了更好地理解fio结果,在测试期间,我还使用blktrace来捕获块层IO跟踪。
用于seqwrite的fio输出 用于seqwrite的解析blktrace输出
随机读出的fio输出 随机读的解析模糊跟踪输出
我想要理解的是,在块层,seqwrite和randread之间的区别。
发布于 2020-01-27 08:40:06
(请注意,这并不是一个真正的编程问题,所以Stackoverflow是问这个问题的错误地方.或许超级用户或服务器故障会是一个更好的选择?)
为什么随机阅读有很大一部分的I2D,而seqwrite没有?
你是否意识到,你的8项工作中的每一项都覆盖了与其他工作相同的区域?这意味着,如果同一区域的覆盖足够接近(在顺序情况下,这种情况有点可能),块层可能会丢弃后续请求.
为什么没有Q2M?
很难将随机I/O与现有的排队I/O合并,因为它通常是不连续的!
https://stackoverflow.com/questions/59807948
相似问题