和其它数码产品一样,在购买固态硬盘后,很多人都会对其进行一个性能测试,其中会用到不少工具,但不管是专业测试还是小白用户,都会用到一个测试软件,便是CrystalDiskMark(以下简称CDM)。
我们大多数人一般是利用CDM测出的结果(主要是顺序读写速度)来验证商家有没有对产品的性能进行虚标,但你知道它的运行原理是怎样的吗?今天我们便来说道说道。
CDM是2008年首次出现在Windows平台存储基准测试软件,它可以判断硬盘在设定的测试条件下的速度。还有一个名为AmorphousDiskMark的macOS基准测试,它或多或少地以相同的方式工作。CDM的核心是传输文件并得出硬盘能够传输该数据的速度。在运行测试之前,需要设置工作文件大小。这是CDM创建的用于执行读写测试的文件大小,范围从16MB到64GB。其默认值为1GB,对于可能在硬盘上访问的大量数据来说,这是一个常用的大小。CDM带有四个预设基准测试,但通过查看高级设置,则可以自定义基准测试的内容并获得不同的结果。CDM基准测试归结为四个重要的测试参数:顺序与随机、块大小、队列深度和线程。
CDM使用的两种基本测试类型是顺序和随机,分别用SEQ和RND表示。这两种工作负载之间的主要区别在于数据的组织方式。在顺序工作负载中,SSD正在访问的数据在物理上是连续的,可以按顺序一个接一个地访问(因此是顺序的)。随机工作负载涉及不连续或连续的数据,并且可能分布在整个驱动器中。根据其他因素,顺序和随机之间的性能差异可以从很小到非常大。一般来说,SSD非常擅长处理随机工作负载,而HDD则难以处理它们,这就是为什么可能会看到HDD在CDM的随机测试中速度低于10MB/s,但在顺序测试中超过100MB/s。这是因为HDD必须机械地移动从物理磁盘读取和写入的组件,并且从一个地方跳到另一个地方需要相当多的时间。尽管SSD不是机械的,但由于外部原因,它们处理随机工作负载的速度仍然比顺序工作负载慢。
文件由块组成,是在一次输入/输出(或 I/O)操作中移动的最大数据块。在CDM提供的默认测试中,将看到一些使用1MiB块大小,一些使用4Kib块大小,一些使用128KiB块大小(大约128KB)。这似乎违反直觉,但块大小越大,传输速度越快,就像是一次移动一张纸和将整个文件夹移动到文件柜中的区别。顺序文件传输通常涉及大块,而随机工作负载往往使用较小的块。尽管CDM在顺序测试中使用大块大小,在随机测试中使用小块大小,但块大小并不一定表示顺序性或随机性。
队列深度是指在任何给定时间处理 I/O 请求的队列数量,打开以传输数据的队列越多,传输速度就越大。默认情况下,CDM在队列深度1、8和32进行测试,但可以手动增加队列深度并根据需要进行测试。也可以把队列想象成一个单独的工人归档文件,显然,更多的工人意味着更快的归档。无论块大小或线程数如何,较高的队列深度通常都会导致更高的传输速度,但较高的队列深度会对随机工作负载产生特别大的差异。再用文件柜来打个比方,两个人一个接一个地提交文件,会比一个人自己做要快得多。从队列深度1到32可能会导致传输速度提高10倍,这是巨大的。
线程与块大小和队列深度不同,因为它们位于CPU而不是存储中。每个CPU都有一定数量的内核,每个内核通常有一个或两个线程,它们基本上是队列的CPU版本。线程越多,一次处理多个事情就越容易。线程在CDM中并不重要,因为八个默认测试中有七个只使用一个线程计数,只有一个测试使用16线程计数。但是,使用16线程计数的测试清楚地表明,拥有大量CPU线程会有所帮助。在随机工作负载中从一个线程增加到16个线程可将性能提高约8倍。这是因为CPU还参与在非常重要的级别上促进数据传输。但是线程数取决于CPU,并不是每个处理器都有16个线程,这也许就是为什么CDM在其大多数默认测试中将线程数保持在1个的原因。
点击此处关注,获取最新资讯!
我的评论
最新评论