NCQ与TCQ的区别及测试比较
来源:互联网 发布:ubuntu install g 编辑:程序博客网 时间:2024/05/01 04:03
硬盘指令队列NCQ/TCQ技术详解&性能测试
作者:Darren
NCQ(Native Command Queuing)与TCQ(Tagged Command Queuing)都是设计通过把计算机发向硬盘的指令做重新排序,从而提高硬盘性能的技术。NCQ技术在 300MB/s的Serial ATA II规格中引入,针对的是主流的硬盘产品,而TCQ技术是在SCSI2规格中引入(ATA-4标准中也有采用),针对的是服务器以及企业级硬盘产品。
要使用NCQ、TCQ技术,芯片组硬盘接口和硬盘产品本身都必须支持才行,也就是说,如果你购买的一款新硬盘并不支持NCQ,即使你的主板是最新的支持NCQ的,也不能够打开这个功能从而提高性能。
当电脑发送指令需要读取的数据存放在距离较远的扇区的时候,这种“指令队列”功能就能够起到作用,提高硬盘的读取性能了。有了指令队列,硬盘接受到这些指令之后会对它们进行重新的排序,使得磁盘转动的每一圈都读取最多的数据。
如图,例如电脑要求硬盘读取A、B、C、D四个位置上的数据,如果没有指令队列功能的话,硬盘需要旋转两圈半来读取所有需要的数据,而有了指令队列对指令做最优化排序,磁盘只需要转动一圈就可以了。
NCQ可以同时处理32条指令,而TCQ可以同时处理216条指令(不过TCQ硬盘一般设计“只有”最大64条指令的队列),此外TCQ相比NCQ还有两个额外的功能:它可以根据需要指定不进行排序而是强制按照硬盘接受到指令的顺序读取,还可以支持高优先级指令,可以比队列中其他指令优先执行。
NCQ的实际性能表现究竟会如何呢,让我们来看一下这个测试:
测试使用的是支持NCQ的希捷ST3160023AS, 160 GB硬盘,测试平台为3.2 GHz Pentium 4, 1 GB内存, GeForce 6800显卡以及Intel主板,测试软件使用PCMark04以及IOMeter,在开启关闭NCQ的状态下做一个对比。
结果在PCMark04中硬盘使用从5,978 MB/s 提升到了6,112 MB/s,只有2.24%的提升,Windows XP载入时间性能提高了9.76%,从8,947 MB/s达到了9,821 MB/s。IOMeter的测试中成绩从119提升到了142,提升幅度为19.32%。
我们看到上述两款软件测试中差距比较大,这是因为NCQ功能对于那些硬盘接收到无序指令的情形最有效果,PCMark04硬盘性能测试使用的是一系列比较有序的指令读取测试,而IOMeter是随机工作负荷,所以结果也更好。我们注意到XP载入时间提升也是比较喜人的,由此看来NCQ技术还是大有必要的。
- NCQ与TCQ的区别及测试比较
- NCQ TCQ 什么是NCQ 什么是TCQ 区别
- NCQ & TCQ
- SQLSERVER2000与ORACLE的比较及区别
- 软件测试 -- 比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系
- 比较compareTo与equals及==的区别
- Alpha测试与Beta测试及区别
- memcached与redis区别比较及选择
- this.target与this的区别及$(this.target)与$(this)比较结果的问题e
- 软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。
- 性能测试,负载测试,压力测试以及容量测试的联系与区别--网搜及总结
- JavaScript中--- undefined与null的区别 及===与== 数据比较
- string和CString 的比较及区别
- 抽象类与其他内容的区别比较,与接口的相似及差别
- SRAM与SDRAM的比较与区别
- Integer与int的比较与区别
- Hibernate与 MyBatis的区别与比较
- 自动化测试软件的体验与比较
- BeagleBoardPWM用python做PWM
- 做dataguard犯了一个低级错误修改参数报错ORA-16187: LOG_ARCHIVE_CONFIG contains duplicate, conflicting or invalid att
- vim里的括号自动补全与删除
- 3D流水线(pipeline)
- 获取泛型类中的泛型参数的类型
- NCQ与TCQ的区别及测试比较
- C 重置连续地址空间
- 深入浅出 RPC - 浅出篇
- 谈谈开源技术选型
- 面向服务与微服务架构
- android Dialog
- xcode静态库,动态库的一些文章
- android Dialog
- [LeetCode] Two Sum