================================

最近有使用CrystalDiskMark给自己的硬盘做测速,发现有个名词自己不是很理解,就是像Q32T16这样的词:

在网上找了好久,都说Q32T16代表着16线程32队列,也有的说是16线程32队列深度,找了很多资料也没有哪个解释这个队列是个什么鬼。于是灵机一动搜索了一下其他的硬盘测速软件,还真发现了队列这个概念,从硬盘压力测试软件FIO中就有读写硬盘时的队列设置,相关资料:

https://blog.csdn.net/bandaoyu/article/details/113190057

上面这个资料比较详细的介绍了这个队列是什么,其实个人理解这个队列只有在进行磁盘的异步读写时才有用(磁盘的读写如果不经过内存的缓存直接写入磁盘还可以有异步的这种方式我也是头一次见到),由于进行异步方式的磁盘写入那么就需要有一个队列来存储操作系统发出的命令,否则发出命令的速度过快而磁盘处理的速度跟不上就会造成命令的过分堆积,而操作系统每次发出的磁盘读写命令都直接发送给磁盘执行又效率不高,因此就有了整个队列的存在。而这个队列具体的工作情况就是不断的接受操作系统发出的磁盘读写指令,操作系统发出指令后就回去继续执行,这样就成了异步的磁盘读写,而这个队列中的命令达到队列深度值时就会将队列中的所有磁盘读写命令发送给磁盘,然后队列再接着接受操作系统发出的指令;由于磁盘真正执行命令时是接收到了多个命令,因此磁盘可用根据这些命令进行排序得到一个更高效率的命令执行顺序。不过这个队列的设置也只有在异步读写磁盘的时候才有用,而且还是在磁盘写入操作不经缓存直接写盘的情况下,而且还是在进行大量读写操作并行的情况下(磁盘压力测试类似的情况),而且这个东西的设置可能主要还是对机械硬盘比较敏感。

不过个人感觉上面的这个队列的工作情况还是有些不太对(上面的描述主要还是来自上面给出资料中的),个人的观点是这个队列的工作情况还是要更加复杂一些,还有这个每次队列发送给磁盘的命令数也是不一定按照上面的描述来的,个人观点是这个每次发送的这一批命令可能是有个时钟周期的,每次发送的命令数也是有上限的,不过这个东西具体是如何工作的也还是主要靠个人的猜测。不过这个队列的设置是为了给异步并发多线程读写磁盘来服务的,这一点是确定的,如果读写操作的线程多那么设置大一些的队列深度可以更好的榨取出磁盘的性能表现(读写线程多的情况下应该把队列深度设置的大些,不过一般不超过32)。

回到之前说的Q32T16中的Q32就是指每次异步读写磁盘时以batch形式发送给磁盘的命令数为32,即队列深度为32,而这个队列的深度的设置更多的是为了磁盘压力测试的。

由于在对磁盘进行压力测试时,据说这个队列的深度还是比较重要的,因此我们在保证磁盘读写并行度的前提下(线程数固定),可以对这个队列深度进行调整,选出最好的磁盘读写情况下的队列深度,而此时的磁盘表现就可以作为真实的磁盘性能表现(在测试时对这个队列深度进行调整是可以的,并且这样测出的效果可能更真实,不过对于绝大部分情况下不考虑这个队列深度测出的结果也足够说明磁盘性能的了)。

===============================

相关:

http://blog.yufeng.info/archives/2104

http://home.eeworld.com.cn/my/space-uid-718016-blogid-361951.html

https://sata-io.org/developers/sata-ecosystem/native-command-queuing?language=zh-hans

https://www.cnblogs.com/jackydalong/p/3921948.html

https://blog.csdn.net/bandaoyu/article/details/121072279

硬盘测速工具中的队列深度是个什么东西——CrystalDiskMark中的Q32T16是什么意思的更多相关文章

  1. 详解hdparm: linux下的硬盘测速工具

    hdparm的功能:显示与设定硬盘的参数.hdparm可检测,显示与设定IDE或SCSI硬盘的参数. 语法: hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A & ...

  2. fio硬盘测速windows+linux

    一.FIO工具简介 Fio工具的介绍网上有很多,都是可以通用的,这里就不做太多个人描述了,直接借鉴一下 fio是一种I / O工具,用于基准测试和压力/硬件验证.它支持19种不同类型的I / O引擎( ...

  3. Linux下3种常用的网络测速工具

    大家好,我是良许. 不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生.本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络 ...

  4. Linux下hdparm硬盘测速

    在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息.这样你就知道了硬盘读写速度. Hdparm功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ ...

  5. SSD硬盘测速较低的原因备忘

    SATA3 SSD测速度盘速度只有200MB/s,可能原因有: 原因分为几种:没开AHCI 没有4K对齐 虽然接的是SATA3接口但SATA3有分为3G和6G这些传输速度接口的分别,同理SATA线3G ...

  6. linux查看主板型号及内存硬件信息,及硬盘测速

    查看主板型号: sudo  dmidecode |grep -A16 "System Information$" 内存槽及内存条: sudo  dmidecode |grep -A ...

  7. vxworks下硬盘测速程序

    void speed(int buflen,int mod){/*int mod = 0;*/ int len=50; FILE *fp; unsigned int i=0,j=0,tmp,tmp2; ...

  8. linux测速工具 speedtest-cli

    安装speedtest-cli: wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/ ...

  9. Android自动化页面测速在美团的实践

    背景 随着移动互联网的快速发展,移动应用越来越注重用户体验.美团技术团队在开发过程中也非常注重提升移动应用的整体质量,其中很重要的一项内容就是页面的加载速度.如果发生冷启动时间过长.页面渲染时间过长. ...

  10. 网络损伤仪WANsim的队列深度功能

    什么是队列深度 在网络损伤仪WANsim中,队列是指一个用于缓存报文的缓冲池.深度是指缓冲池可以存储的最大数据量.当WANsim接受的报文超出了带宽限制的量时,溢出的报文会进入队列中. 我们可以在WA ...

随机推荐

  1. web框架及Django简介

    WEB框架 Web框架是一种开发框架,用来支持动态网站.网络应用和网络服务的开发.这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方法. web框架已经实现了很多功能 ...

  2. java datetime数据类型去掉时分秒

    在Java中,如果我们想要表示一个日期而不包括时间(时分秒),我们通常会使用java.time包中的LocalDate类.LocalDate是一个不可变的日期对象,它只包含年.月.日三个字段. 1. ...

  3. Jenkins构建项目遇到的问题总结

    4.2.1  在Windows下,Jenkins运行python项目 https://www.jianshu.com/p/f6edbaaa8a0d 4.2.2  配置不同类型的项目的操作步骤 http ...

  4. ansible(1)---师傅领进门

    背景 在企业里,运维需要配合开发进行产品上架,说白了就是把写好的代码上服务器.那么,就会出现这样的问题:需要运维人员配置好系统,配置好环境,配置好网络,配置好程序,配置好所有所有的依赖环境.     ...

  5. Numpy技巧: 由label获得相等矩阵

    Numpy技巧: 由label获得相等矩阵     假设Label为:  [ABAC] , 如何方便的得到一个矩阵, 其元素i,j表示第i位和第j位相等呢?   先把Label复制扩展成: m,m 的 ...

  6. 『vulnhub系列』HACKABLE-II

    『vulnhub系列』HACKABLE-II 下载地址: https://www.vulnhub.com/entry/hackable-ii,711/ 信息搜集: 使用nmap探测存活主机,发现主机开 ...

  7. 【论文阅读】Learning to drive from a world on rails

    引用与参考 代码地址:https://github.com/dotchen/WorldOnRails 论文地址:https://arxiv.org/abs/2105.00636 论文部分 已看完 写在 ...

  8. 煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答

    煤矿安全大模型----矿途智护者 使用煤矿历史事故案例,事故处理报告.安全规程规章制度.技术文档.煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答. ...

  9. Notepad++ 搭建简单Java编译运行环境

    简介 有时候使用Eclips进行Java相关方法的测试和验证太繁琐,经过查询实践,使用了Notepad++和JDK搭建了一个简单的编译运行环境. 搭建过程 在电脑上安装Java环境(网上教程很多,此过 ...

  10. 使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序

    使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序 创建一个list存入数据 List<Map<String, ...