CN109509505B - 用于经由代表性i/o发生器测试储存设备的方法和系统 - Google Patents
用于经由代表性i/o发生器测试储存设备的方法和系统 Download PDFInfo
- Publication number
- CN109509505B CN109509505B CN201810980478.3A CN201810980478A CN109509505B CN 109509505 B CN109509505 B CN 109509505B CN 201810980478 A CN201810980478 A CN 201810980478A CN 109509505 B CN109509505 B CN 109509505B
- Authority
- CN
- China
- Prior art keywords
- representative
- workload
- pattern
- mode
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3428—Benchmarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5602—Interface to device under test
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例的方面涉及生成代表性I/O的系统和方法。该系统被配置为利用被存储在模式数据库中的代表性I/O模式。用户可以选择一个或多个模式来执行I/O使用。根据用户提供的参数来修改模式,并将多个模式集成到单一工作负载中。然后根据工作负载生成I/O,并且可以测量系统性能。
Description
相关申请的交叉引用
本申请要求2017年9月15日提交的美国临时专利申请第62/559,447号、以及2017年12月22日提交的美国专利申请第15/853,419号的优先权和权益,其内容通过引用整体并入本文。
技术领域
本公开的一些实施例一般涉及生成I/O以用于储存系统基准测试。
技术领域
随着SSD(solid-state-drive,固态驱动器)在整个储存行业激增,改善固态驱动器(SSD)的性能变得非常重要。同样地,由于储存系统基准测试被用于测试任何的SSD固件或硬件修改的效果,因此对基于SSD的储存系统恰当地进行基准测试的重要性变得越来越重要。
许多储存系统基准测试要么使用专有数据的样本,要么合成用于模拟应用输入/输出(Input/Output,I/O)的简单的人工数据。典型的合成I/O数据包括随机I/O或顺序I/O。无论哪种方式,用于对储存器进行基准测试的大多数I/O生成器通常基于实际应用的平均特性来生成不切实际的统一的数据,并且不关注I/O属性随磁盘空间和/或运行时间的变化。诸如多流(multi-streaming)、键值存储、3D Xpoint等的闪速SSD方面的进步也可以使用统一的合成数据与现实世界的应用数据来不同地表现。因此,虽然当前的储存系统基准测试相对易于使用和部署,但它们在预测现实世界表现方面的有用性是有限的。
采用实际应用工作负载的测试产生了更具代表性的基准测试结果,但实际应用和工作负载设定的部署是一个非常耗时的过程,该过程涉及用于每个应用工作负载的安装、配置、数据库加载和数据库操作。此外,存储来自实际应用的痕迹需要大量的储存空间。因为有许多不同的应用并且每个应用都可以运行许多不同的工作负载。因此,需要具有基准测试应用的简洁和实际的应用工作负载的可靠性的系统。
以上信息仅用于增强对本公开的实施例的背景的理解,因此可以包含不构成现有技术的信息。
发明内容
本发明的实施例的方面涉及用于经由代表性I/O生成器测试储存设备的系统和方法。
根据一些实施例,储存系统被配置为用于生成代表性输入/输出(I/O)。储存系统具有处理器和耦合到处理器的存储器,其存储指令,当该指令由处理器执行时使得处理器从模式数据库检索(retrieve)第一代表性I/O模式。这些指令然后使得处理器通过根据至少一个工作负载参数修改第一代表性I/O模式来组装代表性工作负载。然后可以基于代表工作量生成代表性I/O。然后可以测量储存系统性能。
根据一些实施例,该指令还使得处理器从模式数据库中检索第二代表性I/O模式,并且组装代表性工作负载还包括根据至少一个工作负载参数修改第二代表性I/O模式,并且将第一修改的I/O模式与第二修改的I/O模式集成。
根据一些实施例,该指令还使得处理器识别第一修改的代表性I/O模式和第二修改的代表性I/O模式之间的冲突,通过进一步修改第一修改的代表性I/O模式或第二修改的代表性I/O模式中的至少一个来解决冲突,并且基于进一步修改的模式来生成代表性I/O。
根据一些实施例,该指令还使得处理器生成用于接收第一代表性I/O模式和至少一个工作负载参数的选择的图形用户界面(graphical user interface,GUI)。
根据一些实施例,至少一个工作负载参数包括运行时间、储存量大小(storagesize)和/或背景噪声水平中的至少一个。
根据一些实施例,储存系统性能包括SSD性能。
根据一些实施例,第一代表性I/O模式包括在执行应用的同时在储存系统上测量的重复I/O模式。
根据一些实施例,第一代表性I/O模式包括至少一个工作负载。
根据一些实施例,储存系统性能包括吞吐量、带宽、IOPS或等待时间中的至少一个。
附图说明
根据以下结合附图的描述可以更详细地理解一些实施例,其中:
图1是示出根据本发明的实施例的I/O堆栈的框图;
图2是示出根据本发明的实施例的、生成代表性I/O的方法的框图;
图3是示出根据本发明的各种实施例的、分解I/O以识别I/O模式的方法的框图;
图4包括根据本发明的各种实施例的各种示例I/O模式的图表;
图5是根据本发明实施例的用于生成代表性I/O的系统的功能性框图。
图6是示出根据本发明的各种实施例的生成代表性模式I/O并执行SSD基准测试的方法的框图。
具体实施方式
通过参考以下实施例和附图的详细描述,可以更容易地理解本发明构思的特征和实现其的方法。在下文中,将参考附图更详细地描述实施例,其中相同的附图标号始终指代相同的元件。然而,本发明可以以各种不同的形式体现,并且不应该被解释为仅限于本文示出的实施例。而是,提供这些实施例作为示例使得本公开将是全面和完整的,并且将向本领域技术人员充分传达本发明的各方面和特征。因此,可能没有描述本领域普通技术人员用于完成对本发明的各方面和特征的理解的不必要的过程、元件和技术。除非另有说明,否则在整个附图和书面描述中相同的附图标号表示相同的元件,并且因此不再重复其描述。在附图中,为了清楚起见,可以夸大元件、层和区域的相对尺寸。
在以下描述中,出于解释的目的,阐述了许多特定细节以提供各种实施例的全面理解。然而,显而易见的是,可以在没有这些具体细节的情况下或者利用一个或多个等同布置来实践各种实施例。在其他实例中,以框图形式示出了熟知的结构和设备以便避免不必要地模糊各种实施例。
应当理解的是,当元件、层、区域或组件被称为“在另一元件、层、区域或组件上”、“被连接到”或“被耦合到”另一元件、层、区域或组件时,它可以直接在另一元件、层、区域或组件上、被连接到或被耦合到另一元件、层、区域或组件,或者可以存在一个或多个中间元件、层、区域或组件。然而,“被直接连接/被直接耦合”是指一个组件在没有中间组件的情况下直接连接或耦合另一组件。同时,可以类似地解释描述诸如“在……之间”、“紧邻”或“相邻”和“直接相邻”的组件之间的关系的其他表达。另外,还应理解的是,当元件或层被称为“在两个元件或层之间”时,它可以是两个元件或层之间的唯一元件或层,或者也可能存在一个或多个中间元件或层。
本文使用的术语仅用于描述特殊实施例的目的,并不意图限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式“一”和“一个”也意图包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包含”、“包含了”、“具有”、“具有了”、“包括”和“包括了”指定表述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或组的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关联的所列项目的任何和所有的组合。
如本文所使用的,术语“基本上”、“大约”、“近似地”和类似术语被用作近似的术语而不是程度的术语,并且意图说明本领域普通技术人员应认识到的测量值或计算值方面的固有偏差。考虑到所讨论的测量和与特殊量的测量相关联的误差(即测量系统的限制),如本文所使用的“大约”或“近似”包括如本领域普通技术人员所确定的特殊值的偏差的可接受范围内的表述值和方式。例如,“大约”可以指在一个或多个标准偏差内,或在表述值的±30%、20%、10%、5%内。进一步地,当描述本发明的实施例时,“可以”的使用是指“本发明的一个或多个实施例”。如本文所使用的,术语“使用”、“使用了”、和“被使用”可以分别被考虑为与术语“利用”、“利用了”和“被利用”同义。并且,术语“示例性”意图指代示例或说明。
当某个实施例可以被不同地实施时,可以与描述的顺序不同地执行特定过程顺序。例如,两个连续地描述的过程基本上可以被同时执行或者以与描述的顺序相反的顺序执行。
本文描述了关于作为实施例和/或中间结构的示意图的截面图的各种实施例。如此以来,将预期由于例如制造技术和/或公差的原因导致的图示的形状的变化。进一步地,为了描述根据本公开的构思的实施例的目的,本文公开的具体结构或功能描述仅仅是说明性的。因此,本文公开的实施例不应该被解释为限于特别示出的区域形状,而是应该包括例如由制造导致的形状偏差。例如,被示出为矩形的注入区域通常在其边缘处具有圆形或弯曲的特征和/或注入的浓度梯度,而不是从注入区域到非注入区域的二元变化。同样地,通过注入形成的掩埋区域可能导致掩埋区域和通过其进行注入的表面之间的区域中的一些注入。因此,附图中示出的区域在本质上是示意性的,并且它们的形状不意图示出设备的区域的实际形状,也不意图限制。
可以利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的组合来实施本文描述的根据本发明实施例的电气或电子设备和/或任何其他相关设备或组件。例如,这些设备的各种部件可以被形成在一个集成电路(integrated circuit,IC)芯片上或分开的IC芯片上。进一步地,这些设备的各种组件可以被实施在柔性印刷电路膜、带载封装(tape carrier package,TCP)、印刷电路板(printed circuit board,PCB)上,或者形成在一个衬底上。进一步地,这些设备的各种组件可以是运行在一个或多个处理器上的、在一个或多个计算设备中的过程或线程,该过程或线程执行计算机程序指令并与用于执行本文描述的各种功能的其他系统组件交互。计算机程序指令被存储在存储器中,其可以使用诸如例如,随机存取存储器(random-access memory,RAM)的标准存储器设备被实施在计算设备中。该计算机程序指令还可以被存储在其它非瞬时性计算机可读介质中,诸如例如,CDROM、闪存驱动器等。并且,本领域技术人员应该认识到,各种计算设备的功能可以被组合或者被集成到单一计算设备中,或者特殊计算设备的功能可以分布在一个或多个其它计算设备上而不脱离本发明的示范性实施例的范围。
除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语应被解释为具有与其在相关领域和/或本说明书的上下文中的含义一致的含义,并且不应解释为理想化或过于正式的意义,除非本文明确地如此定义。
根据各种实施例,用于测试储存系统的系统和方法利用代表性I/O系统,该I/O系统被配置为生成代表执行I/O的实际应用的输入/输出(I/O)操作。代表性I/O系统利用在不同配置(诸如具有不同的应用工作负载设定、文件系统、存储器、底层SSD模型等)中的各种应用工作负载下发生的识别的I/O模式。可以组合多个存储的I/O模式来复制可以被用于对SSD进行基准测试的各种实际工作负载。
图1是示出根据本发明的实施例的I/O堆栈的框图。
参考图1,描绘了通用I/O堆栈100和模式I/O堆栈160。通用I/O堆栈100描绘了当正常应用110在储存服务器上操作时的I/O堆栈。例如,处理器执行来自存储器的指令以执行应用110(例如,诸如MySQL、Postgre、Mongodb、Cassandra等的数据库)。应用110运行生成I/O的各种工作负载115(例如,查询、插入、检索等)。生成的I/O请求沿I/O堆栈被传递到文件系统120、卷管理器130,然后传递到块设备140。块设备140可以包括一个或多个SSD 150。
根据各种实施例,代表性I/O系统利用模式I/O堆栈160以模拟类似于如SSD 150所见的实际应用的I/O操作。例如,处理器执行来自存储器的指令以使用模式I/O生成器170执行代表性I/O。模式I/O生成器170基于先前观察到的来自实际应用工作负载的I/O模式来创建各种I/O请求。模式I/O生成器170将I/O请求传递给I/O引擎180,该I/O引擎180又向块设备140/SSD 150发出I/O请求。
尽管被描述为单数的I/O堆栈,但储存系统可以包括多个内核,每个内核都具有处理多个线程的能力。在一些示例中,储存系统可以具有运行同时操作的多个工作负载的多个应用。类似地,在一些实施例中,如下面将进一步讨论的那样,模式I/O生成器170和I/O引擎180被配置为从多个I/O模式发出I/O请求。
在各种实施例中,代表性模式I/O生成器170还可以被配置为还包括由I/O堆栈100的其他方面引入的模式的变型。例如,文件系统120和卷管理器130可以向来自应用110的I/O请求引入一些等待时间。
图2是示出根据本发明的实施例的生成代表性I/O的方法的框图。
参考图2,在各种实施例中,代表性I/O的生成以将正常应用工作负载I/O分解成不同的重复I/O模式开始(S200)。例如,模式重复频率、读取/写入温度密度、I/O大小变化等可以从正常应用工作负载中被捕获。然后,系统构建模式仓库(S210),该模式仓库包括识别的模式中的每一个以及当模式被捕获时操作的I/O引擎的各种作业参数。代表性I/O生成器然后可以访问存储在模式仓库中的模式,并卷积(例如,集成)这些模式以再现储存系统工作负载的特性(S220)。代表性I/O发生器然后生成请求,并且I/O引擎发出请求(S230)。然后可以测量得到的I/O性能(S240)。在各种实施例中,可以测量I/O性能,并且可以(例如,以与实际应用操作时相同的方式)测量在吞吐量、带宽、IOPS、等待时间等方面的性能。
图3是示出根据本发明的各种实施例的分解I/O以识别I/O模式的方法的框图。
现在参考图3,在各种实施例中,储存系统可以执行储存系统工作负载。工作负载可以包括在储存系统的处理器的一个或多个线程上运行的一个或多个应用(例如,正常应用110)。每个应用可以包括同时或连续运行的一个或多个应用工作负载(例如,作业)。不同的实际工作负载可以在诸如具有不同的应用、文件系统、磁盘模型等的不同的操作条件下进行研究。根据从工作负载和应用的所有以上变型中导出的累积观察,代表组的I/O工作负载可以被捕获并随后被复制。因此,可以研究可以作为I/O引擎的输入给出的不同可能特征。这些功能的示例包括--rate_iops、-numjobs、--runtime、--size、--thinktime_blocks、--offset等。最后,生成期望的代表性I/O模式的这些特征的组合被开发并被存储为I/O模式。
在各种实施例中,用户可以利用GUI来定义用于代表性储存系统工作负载的期望的I/O统计数据(S300)。例如,用户可以选择运行哪些应用110,以及进一步指定工作负载参数,诸如I/O区域、I/O深度、I/O大小、I/O分布、斜坡时间、块大小、延迟、IOPS等。因此,用户可以选择各种参数来捕获用于不同工作负载的不同I/O分布。然后,在期望的时间段内执行期望的工作负载(S310)。在已经完成工作负载后,可以从储存系统下载工作负载的痕迹(S320)。然后可以绘制并且分析这些痕迹并将其存储在模式仓库中(S330)。
在各种实施例中,可以通过辨识跨时间间隔或跨由应用产生的磁盘偏移间隙的重复模式来识别I/O模式。重复模式通常包括“I/O孔”并且可以根据I/O曲线图中的空白来识别。这些I/O孔可能是由(例如,在等待诸如CPU、I/O总线、信道上的通信量等的系统资源的同时)系统停滞(system stall)引起的,或当I/O堆栈中的上层(诸如高速缓存或存储器)能够满足I/O请求时引起的。可以通过设置选项(例如,使用GUI)来捕获不同形状和大小的I/O孔,这些选项定义了在磁盘偏移方面休息或跳跃之前要被写入的块的数量。模式的识别可以由用户手动地完成或者由程序自动地完成。在各种实施例中,捕获的I/O模式可以包括由服务器上的附加操作引起的背景噪声。例如,可以通过在服务器上正被执行的内务操作活动(例如,保存和恢复用于调用的函数的程序状态、获取堆栈上的本地内存、在程序或函数开始处初始化本地变量、备份和/或删除不需要的文件和软件、执行磁盘维护使用程序(例如,磁盘扫描程序、硬盘碎片整理程序、病毒扫描仪等))将背景噪声引入I/O模式。
图4包括示出各种示例I/O模式的图表的GUI。
参考图4,GUI 400包括一些示例识别的模式,该模式包括使用由合成I/O生成的应用和模式生成的模式。例如,模式可以包括MySQL模式402、Cassandra模式404、MongoDB模式406、ForestDB模式408、RocksDB模式410、具有密度方差的随机I/O模式、Bamboo Stick不同斜率模式414、Bamboo Sticks不同垂直密度方差模式416、Bamboo Stick不同水平密度方差模式418、水平覆盖模式420、具有不同偏移的多个作业的顺序写入模式422、喷洒模式424、喷泉散射水平模式426、向后台阶模式428、水平淋浴模式430、角度斩波模式432、垂直斩波模式434、Bamboo不同对准模式436、雨滴模式438和读取/写入的条形模式440。
图5是根据本发明实施例的用于生成代表性I/O的系统的功能性框图。
图6是示出根据本发明的各种实施例的生成代表性模式I/O并执行SSD基准测试的方法的框图。
参考图5和图6,根据各种实施例,用于生成代表性I/O 500的系统可以在储存服务器上操作。在各种实施例中,GUI 510提供交互式输入,该交互式输入允许用户指定他们想要用于SSD基准测试的代表性工作负载。GUI 510允许用户选择代表性工作负载模式的各种组合,并定义工作负载在时间和大小方面有多大(S600)。例如,除了选择代表性工作负载模式之外,用户还可以通过选择工作负载参数(诸如运行时间、储存量大小以及是否包括背景噪声)来定义代表性工作负载。背景噪声可以包括与内务操作和背景活动的扰动相关的噪声百分比。
一旦用户使用GUI 510为其代表性工作负载选择了选项,则代表性I/O模式生成器520被配置为集成各种用户选择的模式并根据需要修改模式。在各种实施例中,代表性I/O模式生成器520包括工作负载生成器530,其被配置为从模式仓库540中检索选择的模式。模式仓库540包括在运行如上所述的应用工作负载的同时被捕获的至少一个代表性I/O模式。在各种实施例中,代表性I/O工作负载可以包括多个模式531、532、533,并且模式中的每一个可以包括一个或多个相关联的工作负载(例如,作业)534、535、536。用户可以就磁盘空间上的I/O的布局方面针对时间选择现有模式的任何组合。例如,第一工作负载534可以包括第一运行时间、第一储存量和第一背景噪声水平。第二工作负载535可以包括相同的第一运行时间、第二储存量大小和相同的第一背景噪声水平。因此,可以改变对于每一模式产生的I/O以提供不同的工作负载。
在各种实施例中,工作负载生成器530根据用户选择的参数修改所选择的代表性模式(S610)。在一些示例中,来自模式仓库540的模式中的每一个可以具有特定的运行时间和储存量大小参数,并且取决于所选择的工作负载参数,可能需要修改存储在模式仓库540中的模式以进行操作。例如,当修改储存量大小时,工作负载生成器530从模式中识别受影响的特征,并根据指定的储存量大小对它们进行缩放。例如,对于I/O模式中的每一个可以相对地设置这些特征,诸如如果对于生成代表性工作负载的期望的磁盘大小增加,则I/O活动也跨越整个期望磁盘大小。类似地,工作负载生成器530还可以扩展模式以适配指定的运行时间。
根据各种实施例,在已经修改工作负载后,工作负载集成器550被配置为集成模式中的每一个(S620)。例如,工作负载集成器550可以进行卷积和/或合并(concatenate)模式531-533和代表性工作负载的相关联的工作负载的534-536。在一些实施例中,代表性工作负载可以是单一多线程工作负载。例如,用户可能已经定义了具有被同时被操作的第一模式和第二模式的代表性I/O工作负载。储存系统可以包括具有多个多线程内核的至少一个处理器。工作负载集成器550格式化模式,使得由于第一模式而执行的I/O被处理器驱动以在多个多线程内核的至少一个线程上操作,并且由于第二模式而执行的I/O也由处理器驱动以在多个多线程内核中的至少一个线程上操作。在一些实施例中,执行代表性I/O的每个线程可以具有连接到多流SSD的I/O流。
在一些情况下,选择的I/O代表性模式531-533和相关联的作业可能会引起某种I/O冲突。例如,一个作业可能与另一个作业的命令或数据相矛盾(例如,第一作业可能会重写由另一作业在SSD上写入的数据中的某部分),这导致数据冲突,或者一个工作负载可能会通过发出干扰另一模式的操作的命令(例如,“<killall>”或干扰另一I/O的其他命令)来干扰另一工作负载。在各种实施例中,异常处理器560被配置为识别任何I/O冲突、识别存在什么类型的冲突(例如,矛盾冲突或干扰冲突),以及修改模式以解决冲突(S630)。例如,当识别出在两个工作负载之间的矛盾冲突时,异常处理器560可以根据由用户提供的优先级来修改工作负载。在另一示例中,异常处理器560可以移除冲突模式并用代替模式替换它。在又一示例中,异常处理器560可以修改工作负载参数使得冲突被解决。
在另一示例中,异常处理程序560识别干扰冲突。在该示例中,异常处理器560可以移除干扰I/O或者可以重新调度工作负载使得不再发生冲突。例如,代表性I/O生成器平台可以是多线程的,并且每个模式可以由多个作业组成,每个作业实例化多个线程。I/O引擎的特征中的可能会影响多个作业的线程的一些特征适用于I/O引擎的所有正在运行的线程(诸如特征-killall)。如果单一作业仅单独地运行,那么没有问题,但是为了生成I/O模式,我们运行多个并行作业。每个I/O模式作为单一进程启动。并且影响I/O引擎的所有正在运行的线程的、I/O引擎的所有特征都被重定向以仅影响有关的进程。一旦冲突被解决,工作负载生成器530就修改工作负载以适应变化。在一些实施例中,工作负载生成器530可以从模式仓库(或模式数据库)540中选择替代模式。工作负载集成器550对修改的工作负载进行卷积,并且由异常处理器560针对冲突重新评估工作负载。当代表性工作负载没有冲突时,代表性I/O生成器520将工作负载传递到I/O引擎570,该I/O引擎570向SSD发出I/O。换句话说,基于代表性工作负载生成代表性I/O(S640)。然后可以对储存系统和SSD性能进行基准测试(S650)。在正在执行代表性I/O时,可以实时显示测量值,并且还可以记录测量值以供稍后查看。测量值包括性能属性(例如,吞吐量、等待时间、IOPS等)和耐久性属性(例如,写入放大因子等)两者。
因此,本公开的上述实施例提供了用于使用代表性I/O生成器测试储存设备的系统和方法。与用于执行储存设备基准测试的先前的系统不同,该系统能够模拟现实世界的应用I/O,而不是当前基准测试工具的过于简单的I/O。代表性I/O允许执行基准测试,该基准测试具有使用传统基准测试工具的易用性,同时仍提供实际应用工作负载的性能。此外,当与使用应用痕迹相比时储存要求是最小的。
前述内容是说明示例实施例的,并且不应被解释为对其进行限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在不实质上脱离示例实施例的新颖性教导和优点的情况下在示例实施例中许多修改是可能的。因此,所有这些修改意图被包括在如权利要求中限定的示例实施例的范围内。在权利要求中,装置加功能条款意图覆盖本文中描述为执行表述的功能的结构,并且不仅覆盖结构等同物还有覆盖等同结构。因此,要理解的是,前述内容是说明示例实施例的,并且不应被解释为限于公开的特定实施例,并且意图将对公开的示例实施例以及其他示例实施例的修改包括在所附的权利要求的范围内。本发明构思由以下权利要求定义,其中权利要求的等同物将被包括在其中。
Claims (20)
1.一种被配置为生成代表性输入/输出I/O的储存系统,所述储存系统包括:
处理器;以及
存储器,被耦合到所述处理器,其中所述存储器存储指令,所述指令当由处理器执行时使得处理器:
从模式数据库中检索第一代表性I/O模式;
从所述模式数据库中检索第二代表性I/O模式;
通过根据至少一个工作负载参数并且根据第一代表性I/O模式和第二代表性I/O模式之间的冲突修改第一代表性I/O模式和第二代表性I/O模式来组装代表性工作负载;
基于代表性工作负载生成代表性I/O;并且
测量储存系统性能。
2.如权利要求1所述的系统,并且其中组装代表性工作负载还包括:
将第一代表性I/O模式与第二代表性I/O模式集成。
3.如权利要求2所述的系统,其中代表性工作负载包括第一修改的代表性工作负载和第二修改的代表性工作负载,并且
其中所述指令还使得所述处理器:
识别第一代表性I/O模式与第二代表性I/O模式之间的冲突;
通过进一步修改第一修改的代表性工作负载或第二修改的代表性工作负载中的至少一个来解决所述冲突;并且
基于进一步修改的第一修改的代表性工作负载和第二修改的代表性工作负载生成代表性I/O。
4.如权利要求1所述的系统,其中,所述指令还使得所述处理器:
生成用于接收第一代表性I/O模式和所述至少一个工作负载参数的选择的图形用户界面GUI。
5.如权利要求4所述的系统,其中,所述至少一个工作负载参数包括运行时间、储存量大小和背景噪声水平中的至少一个。
6.如权利要求1所述的系统,其中,储存系统性能包括固态驱动器SSD性能。
7.如权利要求1所述的系统,其中第一代表性I/O模式包括在执行应用的同时在储存系统上识别的I/O模式。
8.如权利要求1所述的系统,其中第一代表性I/O模式包括至少一个工作负载。
9.一种执行储存系统基准测试的方法,包括:
由处理器从存储在存储器中的模式数据库中检索第一代表性输入/输出I/O模式;
由所述处理器从存储在所述存储器中的模式数据库中检索第二代表性I/O模式;
由所述处理器通过根据至少一个工作负载参数并且根据第一代表性I/O模式和第二代表性I/O模式之间的冲突修改第一代表性I/O模式和第二代表性I/O模式来组装代表性工作负载;
由所述处理器基于所述代表性工作负载向至少一个固态驱动器SSD生成代表性I/O;以及
由所述处理器测量储存系统性能。
10.如权利要求9所述的方法,还包括:
并且其中,由所述处理器组装代表性工作负载还包括:
将第一代表性I/O模式与第二代表性I/O模式集成。
11.如权利要求10所述的方法,其中代表性工作负载包括第一修改的代表性工作负载和第二修改的代表性工作负载,并且
其中所述方法还包括:
由所述处理器识别第一代表性I/O模式与第二代表性I/O模式之间的冲突;
通过进一步修改第一修改的代表性工作负载或第二修改的代表性工作负载中的至少一个来解决所述冲突;以及
基于进一步修改的第一修改的代表性工作负载和第二修改的代表性工作负载生成代表性I/O。
12.如权利要求9所述的方法,还包括:
从图形用户界面GUI接收第一代表性I/O模式和至少一个工作负载参数。
13.如权利要求9所述的方法,其中,所述至少一个工作负载参数包括运行时间、储存量大小和背景噪声水平中的至少一个。
14.如权利要求9所述的方法,其中,第一代表性I/O模式包括在执行应用程序的同时在所述储存系统上识别的I/O模式。
15.如权利要求9所述的方法,其中,所述储存系统性能包括吞吐量、带宽、每秒输入/输出操作IOPS、或等待时间中的至少一个。
16.一种被配置为生成代表性输入/输出I/O的储存系统,所述储存系统包括:
处理器;以及
存储器,被耦合到所述处理器,其中所述存储器存储指令,所述指令当由所述处理器执行时使得处理器:
在图形用户界面处接收对于第一代表性I/O模式、第二代表性I/O模式和至少一个工作负载参数的用户选择;
从模式数据库中检索第一代表性I/O模式和第二代表性I/O模式;
根据所述至少一个工作负载参数以及第一代表性I/O模式和第二代表性I/O模式之间的冲突修改第一代表性I/O模式和第二代表性I/O模式;
将第一代表性I/O模式与第二代表性I/O模式集成以产生单一代表性工作负载;
基于所述单一代表性工作负载生成代表性I/O;并且
测量储存系统性能。
17.如权利要求16所述的储存系统,其中,所述处理器是多线程处理器,并且所述单一代表性工作负载是多线程的。
18.如权利要求16所述的系统,其中,所述指令还使得所述处理器:
识别第一代表性I/O模式与第二代表性I/O模式之间的冲突;
通过进一步修改第一代表性I/O模式或第二代表性I/O模式中的至少一个来解决所述冲突;并且
基于进一步修改的第一修改的代表性工作负载和第二修改的代表性工作负载生成代表性I/O。
19.如权利要求16所述的系统,其中,所述储存系统性能包括固态驱动器SSD性能。
20.如权利要求16所述的系统,其中,第一代表性I/O模式包括在执行应用和相关联的工作负载的同时在所述储存系统上识别的I/O模式。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762559447P | 2017-09-15 | 2017-09-15 | |
US62/559,447 | 2017-09-15 | ||
US15/853,419 | 2017-12-22 | ||
US15/853,419 US10956294B2 (en) | 2017-09-15 | 2017-12-22 | Methods and systems for testing storage devices via a representative I/O generator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109509505A CN109509505A (zh) | 2019-03-22 |
CN109509505B true CN109509505B (zh) | 2023-08-08 |
Family
ID=65720338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810980478.3A Active CN109509505B (zh) | 2017-09-15 | 2018-08-27 | 用于经由代表性i/o发生器测试储存设备的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10956294B2 (zh) |
KR (1) | KR102316207B1 (zh) |
CN (1) | CN109509505B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642718B2 (en) * | 2018-07-31 | 2020-05-05 | Nutanix, Inc. | Framework for testing distributed systems |
CN111045869B (zh) * | 2019-12-16 | 2023-03-10 | 上海钧正网络科技有限公司 | 一种数据备份方法、装置及可读存储介质 |
CN117909199B (zh) * | 2024-03-19 | 2024-06-11 | 山东云海国创云计算装备产业创新中心有限公司 | 性能测定方法、装置、设备,负载均衡方法,系统及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013003958A (ja) * | 2011-06-20 | 2013-01-07 | Hitachi Ltd | I/oデバイス共有方法、および装置 |
US9047189B1 (en) * | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015755A1 (en) * | 2002-07-22 | 2004-01-22 | Finisar Corporation | Scalable scatter/gather I/O testing tool |
US7343592B2 (en) | 2004-06-17 | 2008-03-11 | International Business Machines Corporation | Benchmark synthesis using workload statistics |
JP2006221451A (ja) * | 2005-02-10 | 2006-08-24 | Hitachi Ltd | ディスクアレイ装置 |
US8151011B2 (en) * | 2006-04-10 | 2012-04-03 | Dell Products L.P. | Input-output fabric conflict detection and resolution in a blade compute module system |
US9773033B2 (en) * | 2009-05-22 | 2017-09-26 | International Business Machines Corporation | Storing and retrieving volumes in a database by volume attributes |
KR101678919B1 (ko) * | 2011-05-02 | 2016-11-24 | 삼성전자주식회사 | 메모리 시스템 및 에러 정정 방법 |
US9329968B2 (en) | 2011-08-29 | 2016-05-03 | Red Hat, Inc. | Testing application performance using virtual machines created from the same image on different hardware platforms |
US9417891B2 (en) | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US9268702B2 (en) | 2013-04-11 | 2016-02-23 | Institute of Computer Science (ICS) of the Foundation for Research and Technology—Hellas (FORTH) | Storage I/O path partitioning to eliminate I/O interference in consolidated servers |
WO2015029208A1 (ja) * | 2013-08-30 | 2015-03-05 | 株式会社日立製作所 | データベース管理装置、データベース管理方法及び記憶媒体 |
US9832270B2 (en) | 2014-11-11 | 2017-11-28 | Netapp, Inc. | Determining I/O performance headroom |
EP3021224B1 (en) | 2014-11-17 | 2018-03-07 | Fujitsu Limited | Method and apparatus for producing a benchmark application for performance testing |
US9851933B2 (en) | 2015-03-25 | 2017-12-26 | International Business Machines Corporation | Capability-based abstraction of software-defined infrastructure |
US10382311B2 (en) | 2015-09-22 | 2019-08-13 | Facebook, Inc. | Benchmarking servers based on production data |
US10558549B2 (en) | 2015-11-26 | 2020-02-11 | Tata Consultancy Services Limited | Method and system for pre-deployment performance estimation of input-output intensive workloads |
US9886195B2 (en) | 2016-01-14 | 2018-02-06 | Microsoft Technology Licensing, Llc | Performance-based migration among data storage devices |
US11151013B2 (en) * | 2017-01-30 | 2021-10-19 | Tate Consultancy Services Limited | Systems and methods for performance evaluation of input/output (I/O) intensive enterprise applications |
-
2017
- 2017-12-22 US US15/853,419 patent/US10956294B2/en active Active
-
2018
- 2018-07-27 KR KR1020180087939A patent/KR102316207B1/ko active IP Right Grant
- 2018-08-27 CN CN201810980478.3A patent/CN109509505B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013003958A (ja) * | 2011-06-20 | 2013-01-07 | Hitachi Ltd | I/oデバイス共有方法、および装置 |
US9047189B1 (en) * | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
Non-Patent Citations (1)
Title |
---|
Li Wubin等.Storage Benchmarking for Workload Aware Storage Platform.IEEE 9th International Conference on Cloud Computing.2016,第835-838页. * |
Also Published As
Publication number | Publication date |
---|---|
KR20190031132A (ko) | 2019-03-25 |
KR102316207B1 (ko) | 2021-10-25 |
US20190087300A1 (en) | 2019-03-21 |
CN109509505A (zh) | 2019-03-22 |
US10956294B2 (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109509505B (zh) | 用于经由代表性i/o发生器测试储存设备的方法和系统 | |
Vavilapalli et al. | Apache hadoop yarn: Yet another resource negotiator | |
US9519571B2 (en) | Method for analyzing transaction traces to enable process testing | |
US7941789B2 (en) | Common performance trace mechanism | |
US20140365834A1 (en) | Memory management tools | |
US8719784B2 (en) | Assigning runtime artifacts to software components | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
Rossi et al. | Continuous deployment of mobile software at facebook (showcase) | |
US8813035B2 (en) | Paradigm for concurrency testcase generation | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
US8832125B2 (en) | Extensible event-driven log analysis framework | |
US20080288558A1 (en) | Method and Apparatus for Non-Deterministic Incremental Program Replay Using Checkpoints and Syndrome Tracking | |
US9075965B2 (en) | Execution-based license discovery and optimization | |
CN107943702B (zh) | 硬件兼容性测试方法及装置 | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
US10241895B2 (en) | Memory stack trace management tool | |
US20210294730A1 (en) | Managing resources used during a development pipeline | |
CN110457033A (zh) | 用于在gpu上生成动态踪迹数据的装置和方法 | |
Fournier et al. | Analyzing blocking to debug performance problems on multi-core systems | |
US20040093600A1 (en) | Scheduling method, program product for use in such method, and task scheduling apparatus | |
US8850407B2 (en) | Test script generation | |
WO2018022303A1 (en) | Capturing commands in a multi-engine graphics processing unit | |
JP2007249949A (ja) | フォーマットする試験結果の文脈を提供する変数値を格納する装置 | |
Ahn et al. | Modeling firmware as service functions and its application to test generation | |
CN113655846B (zh) | 一种OpenPOWER服务器时间同步方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |