一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存储缓存容量的测试方法

2022-11-19 14:40:19 来源:中国专利 TAG:


1.本发明属于计算机存储技术领域,涉及一种存储缓存容量的测试方法。


背景技术:

2.计算机系统中,当两个部件的处理速度不同时,为了提高性能,通常在它们中间加上一个缓存部件。例如,在cpu和主存之间以及磁盘和主存之间等。缓存技术利用的是局部性现象,即对于某一部件的访问一般都不是均匀分布的,而是在某一段特定时间内集中在某个小的范围内。缓存对于计算机系统的性能起着至关重要的影响。缓存大小以及缓存替换算法的正确设置,可以大幅度提高整个系统的性能,相反,对缓存不正确的设置则不能发挥硬件的潜能,浪费了资源。同时,如果确切了解系统的缓存设置,对于应用程序的优化也有帮助。本文将着重研究磁盘中的缓存测量问题。
3.目前流行的磁盘测试工具都注重磁盘性能的宏观表现,如吞吐率,平均相应时间等等。但它们都忽略了对于磁盘内部结构的探测。实际上,磁盘内部的一些特性如缓存大小或缓存替换算法等对于性能的影响非常显著。应用程序如果在知道磁盘缓存的情况下进行优化,性能可以得到很大的性能提升。
4.利用存储的负载具有局部性现象的原理实现缓存性能的提高。当存储的负载集中在某些热点存储块时,这些热点块就会在缓存中有副本,所有对于热点块的存取操作就直接在高速缓存中完成,而不必访问慢速的磁盘。
5.当负载符合局部性现象时,缓存可以极大的提高存储性能,此时的性能近于缓存的吞吐率,相反,如果负载不符合局部性现象,缓存将不再起作用,此时的性能会急剧下降,其性能近于较慢速的磁盘所能提供的吞吐率。上述两种情况下的性能数据有极大差距,非常容易分辨,如果设置特殊的负载,人为的造成上述两种情况,则可以测试出缓存的容量。


技术实现要素:

6.本发明提供一种存储缓存容量的测试方法,利用缓存替换算法,设置负载分布,准确得出存储缓存的大小。
7.本发明采用的技术方案如下:
8.一种存储缓存容量的测试方法,包括以下步骤:
9.(1)在磁盘上选取连续磁盘空间,设为m块,其开始块号设为base,其空间大小要大于待测的磁盘缓存容量。
10.(2)设置测试的步进大小step,一般选取磁盘扇区的大小,因为缓存容量一般以扇区大小为最小单位。也可以选取大的step,这样可以提高测试的速度,但是同时也降低了测试精度。解决的办法是:先选取大的step,可以快速找到缓存容量的大致范围,然后再设置小的step,在小的范围内进行测试,这样可以大幅度提高测试的效率。
11.(3)设置初始的测试容量,设为m块。该容量要保证小于缓存容量,可以直接设置m=1即可,也可以大致估计磁盘的缓存容量以提高测试效率。
12.(4)设置每轮测试的读操作次数count,次数要足够大,以保证测试的平均性能数据真实反映系统特性,避免一些噪声干扰。
13.(5)设置i等于m,即从假设缓存为m开始进行性能测试(此步骤仅在初次进入此循环时执行)。如果实际缓存大于m,则会得到较好的读写性能。然后判断是否i《m,如果是则进入循环。m即预设的最大可能缓存容量。
14.(6)将上次测试的性能结果清零,即重新开始新一轮性能测试。
15.(7)设置j为0,j为已进行的测试次数(此步骤仅在初次进入此循环时执行)。如果j《count,则进入下面循环。
16.(8)读取所测磁盘的base (j%i)块,并记录性能数据,即该操作所花费的时间。也可以进行写操作测试。
17.(9)j设为j 1,转到(7)。
18.(10)当(7)中,j大于或等于count时,转到此步,说明已进行了count次读或写测试,此时进行性能统计,计算并记录平均磁盘操作的性能。然后i设置为i step,转到(5)进行下一轮的循环测试。
19.(11)将上述每轮的测试数据画出性能波动曲线。则会看出在采用的测试容量,即m,接近缓存容量的附近,会出现较大的性能波动,从而可以确定缓存容量大小。
附图说明
20.图1为采用的测试方法流程图。
21.图2为采用磁盘配置文件atlas10k.diskspecs时容量与反应时间的关系图。
22.图3为采用磁盘配置文件hp_c2247a.diskspecs时容量与反应时间的关系图。
具体实施方式
23.下面结合附图和实施例对本发明作进一步的说明。
24.图1为使用的测试方法流程图。
25.图2为使用的磁盘配置文件atlas10k.diskspecs时容量与反应时间的关系图。本发明涉及的测试方法的测试工具为cmu并发数据实验室开发的disksim。在实验中,由于disksim的负载发生器不符合测试的要求,我们将disksim当作一个被调用的附属模块集成进我们编写的一个模拟测试程序中。实验的具体参数如下:使用的磁盘参数文件为disksim安装目录下的atlas10k,count为100000,块大小是4096字节,从该配置使用的磁盘配置文件atlas10k.diskspecs可以看到,它使用的缓存共10段,每段374个扇区大小,所以其物理总容量为374
×
10=3740个扇区大小。图中横坐标是测试的容量,单位是扇区大小,纵坐标是平均反应时间,单位是秒。
26.图3为使用的磁盘配置文件hp_c2247a.diskspecs时容量与反应时间的关系图。此次测试的参数同上,其中,使用的磁盘参数文件为hp_c2247a.diskspecs。由图可知,测试得出的缓存容量最小为768个扇区,而从配置文件hp_c2247a.diskspecs中得出,该类磁盘有两个段缓存,每段256个扇区,即256
×
2=512个扇区。同时它还有独立的一段写缓存。因此可以推测,该类磁盘直接将独立的写缓存用于读操作,所以共使用了512 256=768个扇区缓存。
27.本发明涉及的测试方法充分考虑到了各种缓存替换算法的影响。cache的替换算法主要有fifo(先进先出)、lfu(次数最少使用)、lru(最近最少使用)等。本发明的测试方法在这三种替换算法下都可以测试出缓存的容量。例如,对于lfu,在每一轮测试中,对每一块的读取频率大致相等,所以,其替换序列基本与fifo算法相同。
28.本发明的测试方法,选取的磁盘空间要确保是连续的。缓存技术利用的是局部性现象,而局部性现象实际上包括时间和空间两个方面。目前,高级的磁盘在缓存中多使用空间预取功能,如果对连续的块进行读操作,则使得后续读入的块以最大概率进入缓存,从而挤占以前读入缓存的数据块,尽快造成缓存空间溢出,即最早读入的数据块被替换。本发明涉及的测试只使用读操作来测试性能,这是为了避免不同缓存更新策略的影响。缓存更新策略包括直写式(write through)、缓写式(post write)和回写式(write back),他们对性能的影响各不相同。


技术特征:
1.一种存储缓存容量的测试方法,其特征在于以下步骤:(1)在磁盘上选取多块连续的空间,设为m块,其开始块号设为base,其空间大小要大于缓存容量,这个要求不难满足,因为目前缓存的造价较高,所以一般磁盘的缓存都不大于某个数值,如果按以下方法测不出缓存容量,很可能是选取的空间低于了缓存容量,重新选取更大的磁盘空间即可;(2)设置测试的步进大小step,一般选取磁盘扇区的大小,因为缓存容量一般以扇区大小为最小单位,也可以选取大的step,这样可以提高测试的速度,但是同时也降低了测试精度,解决的办法是:先选取大的step,可以快速找到缓存容量的大致范围,然后再设置小的step,在小的范围内进行测试,这样可以大幅度提高测试的效率;(3)设置初始的测试容量,设为m块,该容量要保证小于缓存容量,这个要求也不难满足,可以直接设置m=1即可,也可以大致估计磁盘的缓存容量以提高测试效率;(4)设置每轮测试的读操作次数count,次数要足够大,以保证测试的平均性能数据真实反映系统特性,避免一些噪声干扰,然后进行多轮的性能测试;(5)将上述每轮的测试数据画出性能波动曲线,则会看出在实验采用的测试容量接近缓存容量的附近,会出现较大的性能波动,从而可以确定缓存容量的大小。

技术总结
一种存储缓存容量的测试方法,属于计算机存储技术领域。通过设置负载的分布,可以准确得出磁盘的缓存的大小。本发明利用存储的负载具有局部性现象的原理提高缓存性能。基于多项缓存技术原理,能够利用存储负载的局部性设计负载分布,同时考虑磁盘替换算法影响,采用多项缓存技术原理,通过优化缓存实现负载的合理分布,从而能够提高磁盘缓存的整体性能。从而能够提高磁盘缓存的整体性能。从而能够提高磁盘缓存的整体性能。


技术研发人员:蒙会民 师乃朕 姚念民
受保护的技术使用者:大连工业大学
技术研发日:2022.08.30
技术公布日:2022/11/18
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献