我们可以通过发出“iostat -x -d”来查看一些参数,rrqm/s和wrqm/s代表每秒I/O请求的合并。并且有一个内核参数控制 I/O 合并:
/sys/class/block/设备名称/队列/nomerges
根据内核文档:
这使得用户能够禁用块层中涉及 IO 合并请求的查找逻辑。默认情况下 (0) 启用所有合并。当设置为 1 时,只会尝试简单的一击合并。当设置为 2 时,不会尝试合并算法(包括一击或更复杂的树/哈希查找)。
0和2的含义很容易理解,但是说到“一击”的1,我google了一圈,却没有具体的语义定义。所以请帮助解释 1 for nomerges 的确切含义是什么。谢谢。