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

最近有使用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. 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本

    2022年3月25日,燕千云 YQCloud 数智化业务服务管理平台发布1.11版本.新增客户服务管理模块.优化IT服务管理功能.增强燕千云与其他平台的集成能力.支持更多的业务服务场景.全面提升企业数 ...

  2. 掌握 Nuxt 3 中的状态管理:实践指南

    title: 掌握 Nuxt 3 中的状态管理:实践指南 date: 2024/6/22 updated: 2024/6/22 author: cmdragon excerpt: 摘要:该文指南详述了 ...

  3. zabbix---监控Oracle12c数据库

    使用插件:orabbix用于监控oracle实例的zabbix插件 orabbix插件下载地址:http://www.smartmarmot.com/product/orabbix/download/ ...

  4. Linux Driver : i2c-gpio

    # Linux Driver : i2c-gpio https://www.cnblogs.com/haoxing990/p/4718834.html https://blog.csdn.net/ji ...

  5. ARM GIC 系列文章学习(转)

    原文来自:骏的世界 ARM GIC(一) cortex-A 处理器中断简介 对于ARM的处理器,中断给处理器提供了触觉,使处理器能够感知到外界的变化,从而实时的处理.本系列博文,是以ARM corte ...

  6. 数据结构—包(Bag)

    数据结构中的包,其实是对现实中的包的一种抽象. 想像一下现实中的包,比如书包,它能做什么?有哪些功能?首先它用来装东西,里面的东西可以随便放,没有规律,没有顺序,当然,可以放多个相同的东西.其次,东西 ...

  7. SpringBoot集成Mongodb文档数据库

    添加Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  8. Docker部署JavaWeb项目(Tomcat环境)

    一.环境准备 1.首先准备一台Centos 7的虚拟机并安装Docker. 2.准备好Tomcat.JDK的安装包以及该java项目的war包. 二.编写Dockerfile Dockerfile是一 ...

  9. Mac 完整卸载mysql

    依次执行 cd ~ sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/M ...

  10. GAIA: 一个严苛的智能体基准

    简要概括 经过一些实验,我们对 Transformers 智能体构建智能体系统的性能印象深刻,因此我们想看看它有多好!我们使用一个 用库构建的代码智能体 在 GAIA 基准上进行测试,这可以说是最困难 ...