WO2023077751A1 - 提升ssd服务质量方法、装置、计算机设备和存储介质 - Google Patents

提升ssd服务质量方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
WO2023077751A1
WO2023077751A1 PCT/CN2022/090021 CN2022090021W WO2023077751A1 WO 2023077751 A1 WO2023077751 A1 WO 2023077751A1 CN 2022090021 W CN2022090021 W CN 2022090021W WO 2023077751 A1 WO2023077751 A1 WO 2023077751A1
Authority
WO
WIPO (PCT)
Prior art keywords
context
ssd
resource
resources
command
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.)
Ceased
Application number
PCT/CN2022/090021
Other languages
English (en)
French (fr)
Inventor
王鑫
刘哲
赵金
张乾坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Wave Intelligent Technology Co Ltd
Original Assignee
Suzhou Wave Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Wave Intelligent Technology Co Ltd filed Critical Suzhou Wave Intelligent Technology Co Ltd
Priority to US18/567,276 priority Critical patent/US12373317B2/en
Publication of WO2023077751A1 publication Critical patent/WO2023077751A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units

Definitions

  • the present application relates to the field of computer technology, and in particular to a method, device, computer equipment and storage medium for improving SSD service quality.
  • the context is the environment when the process is executed, that is, various variables and data, such as: all register variables, files opened by the process, memory information, etc.
  • the context can also be understood as a snapshot of the environment, an object used to save state.
  • most functions in a program do not run independently, but need to interact with a part of other functions, and need the support of other external environment variables, and the context is used to assign values to the variables of the external environment, so that the function can normal operation.
  • the process of processing IO requires operations such as updating and obtaining metadata, so this process is relatively complicated. In order to improve the performance of SSD, these operations need to be implemented concurrently.
  • Operation and state machine management which requires context to record and manage each state machine, limited by hardware resources and capabilities, these context resources are limited, when dealing with different host IO workloads, there may be If the context resource cannot be obtained, the state machine will enter the suspended state, and the state machine in the suspended state will be processed. The cumulative effect of queuing will deteriorate the corresponding speed of the corresponding IO command, thereby affecting the QOS of the SSD.
  • the present application provides a method for improving SSD service quality, the method comprising:
  • the above method also includes counting the number of suspended state machines of the SSD, wherein judging whether to receive a new host IO command according to the number of context resources and the number of context resources used, including:
  • the context resources of the SSD include a first context resource and a second context resource
  • the first context resource is used to manage the number of host IO commands that can be received
  • the second context resource is used to manage the IO command split out data structure.
  • determining the quantity of context resources of the SSD includes:
  • the ratio of the quantity of the second context resource to the quantity of the first context resource is 1:32.
  • statistics are made on the number of suspended state machines of the SSD, including:
  • judging whether to receive a new host IO command is based on the number of context resources, the number of context resources used, and the number of state machine suspensions, including:
  • the SSD stops receiving new host IO commands.
  • the present application also provides a device for improving SSD service quality, the device includes a resource determination module, a resource statistics module, and a judgment module, wherein:
  • a resource determination module configured to determine the quantity of context resources of the SSD, and manage the quantity of context resources by using the token bucket algorithm
  • the resource statistics module is used to receive and process host IO commands, and to make statistics on the usage of SSD context resources;
  • a judging module configured to judge whether to receive a new host IO command according to the quantity of context resources and the quantity of context resources used.
  • the present application also provides a computer device, including a memory and one or more processors, where computer-readable instructions are stored in the memory, and when the computer-readable instructions are executed by the one or more processors, the one or more or multiple processors execute the steps of the method for improving SSD service quality provided by any one of the above embodiments.
  • the present application also provides one or more non-volatile computer-readable storage media storing computer-readable instructions that, when executed by one or more processors, cause the one or more The processor executes the steps of the method for improving SSD service quality provided by any one of the above embodiments.
  • FIG. 1 is a schematic flow diagram of a method for improving SSD service quality provided by the present application according to one or more embodiments;
  • FIG. 2 is a schematic flow diagram of a method for improving SSD service quality provided by the present application according to one or more embodiments;
  • FIG. 3 is a structural block diagram of a device for improving SSD service quality provided by the present application according to one or more embodiments;
  • Fig. 4 is an internal structure diagram of a computer device provided by the present application according to one or more embodiments.
  • the token bucket algorithm When processing the SQ of the HOST host IO, the token bucket algorithm is used to manage the context resources inside the SSD. When the tokens in the bucket are insufficient or overused, new IO commands in the SQ are no longer received and processed.
  • a method for improving the service quality of SSD is provided, and the method is applied to computer equipment as an example for illustration, including the following steps:
  • Step S11 determining the quantity of context resources of the SSD, and using the token bucket algorithm to manage the quantity of context resources;
  • the number of context resources that is, the capacity of the token bucket is determined according to the processing capability and concurrency of the backend nand flash.
  • the context resource of the SSD includes a first context resource and a second context resource
  • the first context resource is used to manage the number of host IO commands that can be received
  • the second context resource is used to manage the data split by the IO command structure.
  • X and Y represent two context resources.
  • X is used to manage IO cmd commands
  • Y is used to manage data structure resources split from IO commands.
  • the 128K is managed by the X context. After the SSD receives the 128K, it will split the 128K into 32 4K (the internal data management unit of the SSD is 4K), and the 32 4K are managed by the Y context resource.
  • determining the context resource quantity of SSD in step S11 includes:
  • Step S111 initializing the first context resource quantity and the second context resource quantity
  • Step S112 performing a read/write IOPS test according to the initial quantity of the first context resource and the initial quantity of the second context resource;
  • Step S113 keep the number of the first context resource unchanged and continuously increase the number of the second context resource, and continue the IOPS test until the throughput no longer increases;
  • Step S114 taking the smallest second context resource quantity corresponding to the maximum throughput as the second context resource quantity
  • Step S115 determining the first context resource quantity according to the second context resource quantity.
  • Y resources are based on FTL and back-end processing capabilities, assuming that the concurrency of the back-end processing capabilities is n, in order to allow IO commands to ping-pang and fill up the back-end bandwidth, the number of front-end context resources is 2n to 3n, which can be determined according to In the test situation, during the random read and write IOPS test, the number of context resources was continuously increased until the throughput no longer increased.
  • the ratio of the quantity of the second context resource to the quantity of the first context resource is 1:32.
  • the X resource and the Y resource are in a one-to-one relationship.
  • Step S12 receiving and processing host IO commands, and counting the usage of SSD context resources
  • Step S13 judging whether to receive a new host IO command according to the number of context resources and the number of context resources used.
  • the SSD in response to the usage quantity of the first context resource reaching the first context resource quantity, the SSD stops receiving new host IO commands.
  • the SSD stops receiving new host IO commands.
  • step S3 further includes: counting the number of state machine suspensions of the SSD.
  • Step S21 determining the quantity of context resources of the SSD, and using the token bucket algorithm to manage the quantity of context resources;
  • step S21 the specific content related to step S21 is the same as that of step S11.
  • Step S22 receiving and processing the host IO command, and counting the usage of SSD context resources
  • step S22 the specific content related to step S22 is the same as that of step S12.
  • Step S23 counting the number of suspended state machines of the SSD
  • step S23 includes:
  • Step S24 judging whether to receive a new host IO command according to the number of context resources, the number of context resources used, and the number of state machine suspensions.
  • the SSD stops receiving new host IO commands.
  • the number threshold is set according to the empirical value of the actual test, for example, 10.
  • FIFO management means that the state machine that is suspended first is processed first to ensure the order.
  • the QOS of the SSD is improved by means of the token bucket algorithm, which ensures a good user experience and enhances product competitiveness.
  • a device for improving SSD service quality including: the device includes a resource determination module, a resource statistics module, and a judgment module:
  • a resource determination module configured to determine the quantity of context resources of the SSD, and manage the quantity of context resources by using the token bucket algorithm
  • the resource statistics module is used to receive and process host IO commands, and make statistics on the usage of SSD context resources;
  • the context resources of the SSD include a first context resource and a second context resource
  • the first context resource is used to manage the number of host IO commands that can be received
  • the second context resource is used to manage the IO command split out data structure.
  • a judging module configured to judge whether to receive a new host IO command according to the quantity of context resources and the quantity of context resources used.
  • the resource statistics module is also used to count the number of suspended state machines of the SSD.
  • the judging module is further configured to judge whether to receive a new host IO command according to the number of context resources, the number of context resources used, and the number of state machine suspensions.
  • the resource determination module is used for:
  • the ratio of the quantity of the second context resource to the quantity of the first context resource in the resource determination module is 1:32.
  • the resource determination module is used for:
  • the judging module is used to:
  • the SSD stops receiving new host IO commands.
  • Each module in the above-mentioned device for improving service quality of SSD can be fully or partially realized by software, hardware and combinations thereof.
  • the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, and can also be stored in the memory of the computer device in the form of software, so that the processor can invoke and execute the corresponding operations of the above-mentioned modules.
  • a computer device is provided.
  • the computer device may be a terminal, and its internal structure may be as shown in FIG. 4 .
  • the computer device includes a processor, a memory, a network interface, a display screen and an input device connected through a system bus. Wherein, the processor of the computer device is used to provide calculation and control capabilities.
  • the memory of the computer device includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium stores an operating system and computer readable instructions.
  • the internal memory provides an environment for the execution of the operating system and computer readable instructions in the non-volatile storage medium.
  • the network interface of the computer device is used to communicate with an external terminal via a network connection.
  • the display screen of the computer device may be a liquid crystal display screen or an electronic ink display screen
  • the input device of the computer device may be a touch layer covered on the display screen, or a button, a trackball or a touch pad provided on the casing of the computer device , and can also be an external keyboard, touchpad, or mouse.
  • FIG. 4 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation to the computer equipment on which the solution of the application is applied.
  • the specific computer equipment can be More or fewer components than shown in the figures may be included, or some components may be combined, or have a different arrangement of components.
  • the embodiment of the present application also provides a non-volatile computer-readable storage medium, the non-volatile computer-readable storage medium stores computer-readable instructions, and the computer-readable instruction computer program is executed by one or more processors During execution, the steps of the method for SSD quality of service provided by any one of the above embodiments can be realized.
  • Nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory can include random access memory (RAM) or external cache memory.
  • RAM random access memory
  • RAM is available in many forms such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchronous Chain Synchlink DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及一种提升SSD服务质量的方法、装置、计算机设备和存储介质。所述方法包括:确定SSD的上下文资源数量,并利用令牌桶算法对所述上下文资源数量进行管理;接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;根据所述上下文资源数量以及所述上下文资源使用数量判断是否接收新的主机IO命令。

Description

提升SSD服务质量方法、装置、计算机设备和存储介质
相关申请的交叉引用
本申请要求于2021年11月04日提交中国专利局,申请号为202111301938.3,申请名称为“提升SSD服务质量方法、装置、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种提升SSD服务质量的方法、装置、计算机设备和存储介质。
背景技术
大数据时代背景下,大数据保存和获取对存储设备提出了更高的性能要求,SSD作为主流存储设备应运而生,从上层应用到底层存储,每一个环节的性能都直接或间接的影响着终端用户体验,因此,如何提高数据存储和读取的性能显得至关重要。
在计算机领域,相对于进程而言,上下文即为进程执行时的环境,也就是各种变量和数据,如:所有的寄存器变量、进程打开的文件、内存信息等。也可以将上下文理解为环境的一个快照,是一个用来保存状态的对象。通常,在一个程序中大多数函数都不是独立运行的,而是需要同其他函数的一部分进行交互,且需要其他外部环境变量的支持,而上下文即用于给外部环境的变量赋值,使函数能够正常运行。
发明人意识到,SSD对主机IO的处理需要上下文来管理,处理IO的过程因为要有元数据的更新和获取等操作,所以此过程相对比较复杂,而为了提高SSD的性能这些操作需要实现并发操作和状态机的管理,这就需要上下文来记录和管理每个状态机,受限于硬件资源和能力的限制,这些上下文资源是有限的,当处理不同主机IO的工作负载时,可能会有拿不到上下文资源的情况,这就会使状态机进入挂起状态,处理这些处于挂起状态的状态机,排队累积效应恶化了对应IO命令的相应速度,从而影响了SSD的QOS。
发明内容
本申请提供了一种提升SSD服务质量的方法,该方法包括:
确定SSD的上下文资源数量,并利用令牌桶算法对上下文资源数量进行管理;
接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;和
根据上下文资源数量以及上下文资源使用数量判断是否接收新的主机IO命令。
在其中一个实施例中,上述方法还包括对SSD的状态机挂起数量进行统计,其中根据上下文资源数量以及上下文资源使用数量判断是否接收新的主机IO命令,包括:
根据上下文资源数量、上下文资源使用数量以及状态机挂起数量判断是否接收新的主机IO命令。
在其中一个实施例中,SSD的上下文资源包括第一上下文资源和第二上下文资源,第一上下文资源用于管理可接收的主机IO命令数量,第二上下文资源用于管理IO命令拆分出的数据结构。
在其中一个实施例中,确定SSD的上下文资源数量,包括:
初始化第一上下文资源数量和第二上下文资源数量;
根据第一上下文资源初始数量以及第二上下文资源初始数量进行读写IOPS测试;
保持第一上下文资源数量不变以及不断增加第二上下文资源数量,并继续进行IOPS测试直至吞吐量不再增加;
将吞吐量最大所对应的最小第二上下文资源数量作为第二上下文资源数量;和
根据第二上下文资源数量确定第一上下文资源数量。
在其中一个实施例中,第二上下文资源数量与第一上下文资源数量的比例为1:32。
在其中一个实施例中,对SSD的状态机挂起数量进行统计,包括:
统计第二上下文资源使用数量,当第二上下文资源使用数量达到第二上下文资源数量时,如果SSD接收到新的主机IO命令,则SSD的状态机挂起数量加1,如果SSD处理完一个主机IO命令,则SSD的状态机挂起数量减1。
在其中一个实施例中,根据上下文资源数量、上下文资源使用数量以及状态机挂起数量判断是否接收新的主机IO命令,包括:
在第一上下文资源使用数量达到第一上下文资源数量或状态机挂起数量达到预设阈值时,SSD停止接收新的主机IO命令。
本申请还提供了一种提升SSD服务质量的装置,装置包括资源确定模块、资源统计模块、判断模块,其中:
资源确定模块,用于确定SSD的上下文资源数量,并利用令牌桶算法对上下文资源数量进行管理;
资源统计模块,用于接收并处理主机IO命令,并对SSD上下文资源使用数量进行统 计;
判断模块,用于根据上下文资源数量以及上下文资源使用数量判断是否接收新的主机IO命令。
本申请还提供了一种计算机设备,包括存储器及一个或多个处理器,存储器中储存有计算机可读指令,上述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述任意一项实施例提供的提升SSD服务质量的方法的步骤。
本申请最后还提供了一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行上述任意一项实施例提供的提升SSD服务质量的方法的步骤。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请根据一个或多个实施例提供的提升SSD服务质量的方法的流程示意图;
图2为本申请根据一个或多个实施例提供的提升SSD服务质量的方法的流程示意图;
图3为本申请根据一个或多个实施例提供的中提升SSD服务质量的装置的结构框图;
图4为本申请根据一个或多个实施例提供的计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请的主要构思在于:
在处理HOST主机IO的SQ时,利用令牌桶算法管理SSD内部的上下文资源,当桶内令牌不足或超额使用时,不再接收处理SQ内新的IO命令。
在一个实施例中,如图1所示,提供了一种提升SSD服务质量的方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
步骤S11,确定SSD的上下文资源数量,并利用令牌桶算法对上下文资源数量进行管理;
具体的,上下文资源的数量即令牌桶容量根据后端nand flash处理能力和并发度确定。
在一个实施例中,SSD的上下文资源包括第一上下文资源和第二上下文资源,第一上下文资源用于管理可接收的主机IO命令数量,第二上下文资源用于管理IO命令拆分出的数据结构。
具体的,X和Y表示的是两种上下文资源,X用于管理IO cmd命令,Y用于管理IO命令拆分出来的数据结构资源,举例说明:主机下来的区块大小为128K,下来的这128K用X上下文来管理,SSD接下128K后,会把128K拆分成32个4K(SSD内部的数据管理单元是4K),32个4K用Y上下文资源来管理。
在一个实施例中,步骤S11中确定SSD的上下文资源数量,包括:
步骤S111,初始化第一上下文资源数量和第二上下文资源数量;
步骤S112,根据第一上下文资源初始数量以及第二上下文资源初始数量进行读写IOPS测试;
步骤S113,保持第一上下文资源数量不变以及不断增加第二上下文资源数量,并继续进行IOPS测试直至吞吐量不再增加;
步骤S114,将吞吐量最大所对应的最小第二上下文资源数量作为第二上下文资源数量;
步骤S115,根据第二上下文资源数量确定第一上下文资源数量。
具体的,X资源根据吞吐量测试时主机的最大压力(以顺序读写的吞吐量来计算),最大压力下4jobs*256IOD=1024个,SSD内部初始X资源为1024个,这样保证至少处理一次主机的IOD(IOD为HOST的IO队列深度)。
Y资源根据FTL和后端处理能力,假设后端处理能力的并发度为n,为了让IO命令ping-pang起来,将后端带宽压满,前端上下文资源的数量为2n~3n,实际可根据测试情况,在随机读写的IOPS测试时,不断的加大上下文资源数量,直到增大到吞吐量不再增加。
在一个实施例中,第二上下文资源数量与第一上下文资源数量的比例为1:32。
具体的,如果主机下来的区块大小为4K,那个X资源与Y资源是一对一的关系。
步骤S12,接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;
具体的,在SSD固件中增加上下文资源数量的统计,刚上电时初始化为1中确定的资源数X,SSD接收并处理IO时,会申请上下文资源,申请一次上下文资源,X减1,当IO完成释放资源时,X加1。
步骤S13,根据上下文资源数量以及上下文资源使用数量判断是否接收新的主机IO命令。
在一个实施例中,响应于第一上下文资源使用数量达到第一上下文资源数量,SSD停止接收新的主机IO命令。
在一个实施例中,若第一上下文资源使用数量达到第一上下文资源数量,SSD停止接收新的主机IO命令。
具体的,当上下文资源X耗尽时,不再接收处理新的IO命令,把IO命令堵在SQ内,避免处理大量挂起引发的额外开销。
在一个实施例中,步骤S3之前还包括:对SSD的状态机挂起数量进行统计。
在本实施例中,如图2所示,提供了另一种提升SSD服务质量的方法,包括:
步骤S21,确定SSD的上下文资源数量,并利用令牌桶算法对上下文资源数量进行管理;
具体的,涉及步骤S21的具体内容同步骤S11的内容。
步骤S22,接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;
具体的,涉及步骤S22的具体内容同步骤S12的内容。
步骤S23,对SSD的状态机挂起数量进行统计;
在一个实施例中,步骤S23包括:
统计第二上下文资源使用数量,当第二上下文资源使用数量达到第二上下文资源数量时,如果SSD接收到新的主机IO命令,则SSD的状态机挂起数量加1,如果SSD处理完一个主机IO命令,则SSD的状态机挂起数量减1。
步骤S24,根据上下文资源数量、上下文资源使用数量以及状态机挂起数量判断是否接收新的主机IO命令。
在一个实施例中,若第一上下文资源使用数量达到第一上下文资源数量或状态机挂起数量达到预设阈值时,SSD停止接收新的主机IO命令。
具体的,当上下文资源X耗尽或状态机挂起数量Z达到一定阈值时,不再接收处理 新的IO命令,把IO命令堵在SQ内,避免处理大量挂起引发的额外开销,其中挂起数量阈值根据实际测试的经验值设定,例如为10。
此外,对挂起状态的处理需要采用FIFO的管理模式,保证IO的命令的处理顺序,保证先到的IO命令能尽快得到处理;FIFO管理是先挂起的状态机先得到处理,保证顺序。
上述提升SSD服务质量的方法中,借助令牌桶算法提升了SSD的QOS,保证了用户的良好的体验,提升了产品竞争力。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种提升SSD服务质量的装置,包括:装置包括资源确定模块、资源统计模块、判断模块:
资源确定模块,用于确定SSD的上下文资源数量,并利用令牌桶算法对上下文资源数量进行管理;
资源统计模块,用于接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;
在其中一个实施例中,SSD的上下文资源包括第一上下文资源和第二上下文资源,第一上下文资源用于管理可接收的主机IO命令数量,第二上下文资源用于管理IO命令拆分出的数据结构。
判断模块,用于根据上下文资源数量以及上下文资源使用数量判断是否接收新的主机IO命令。
在其中一个实施例中,资源统计模块还用于对SSD的状态机挂起数量进行统计。
在其中一个实施例中,判断模块还用于根据上下文资源数量、上下文资源使用数量以及状态机挂起数量判断是否接收新的主机IO命令。
在其中一个实施例中,资源确定模块用于:
初始化第一上下文资源数量和第二上下文资源数量;
根据第一上下文资源初始数量以及第二上下文资源初始数量进行读写IOPS测试;
保持第一上下文资源数量不变以及不断增加第二上下文资源数量,并继续进行IOPS测试直至吞吐量不再增加;
将吞吐量最大所对应的最小第二上下文资源数量作为第二上下文资源数量;
根据第二上下文资源数量确定第一上下文资源数量。
在其中一个实施例中,资源确定模块中第二上下文资源数量与第一上下文资源数量的比例为1:32。
在其中一个实施例中,资源确定模块用于:
统计第二上下文资源使用数量,当第二上下文资源使用数量达到第二上下文资源数量时,如果SSD接收到新的主机IO命令,则SSD的状态机挂起数量加1,如果SSD处理完一个主机IO命令,则SSD的状态机挂起数量减1。
在其中一个实施例中,判断模块用于:
若第一上下文资源使用数量达到第一上下文资源数量或状态机挂起数量达到预设阈值时,SSD停止接收新的主机IO命令。
关于提升SSD服务质量的装置的具体限定可以参见上文中对于提升SSD服务质量的方法的限定,在此不再赘述。上述提升SSD服务质量的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种提升SSD服务质量的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布 置。
本申请实施例还提供了一种非易失性计算机可读存储介质,该非易失性计算机可读存储介质存储有计算机可读指令,该计算机可读指令计算机程序被一个或多个处理器执行时可实现上述任意一个实施例提供的SSD服务质量的方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

  1. 一种提升SSD服务质量的方法,其特征在于,包括:
    确定SSD的上下文资源数量,并利用令牌桶算法对所述上下文资源数量进行管理;
    接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;和
    根据所述上下文资源数量以及所述上下文资源使用数量判断是否接收新的主机IO命令。
  2. 根据权利要求1所述的提升SSD服务质量的方法,其特征在于,所述方法还包括对SSD的状态机挂起数量进行统计,其中所述根据所述上下文资源数量以及所述上下文资源使用数量判断是否接收新的主机IO命令,包括:
    根据所述上下文资源数量、所述上下文资源使用数量以及所述状态机挂起数量判断是否接收新的主机IO命令。
  3. 根据权利要求2所述的提升SSD服务质量的方法,其特征在于,所述SSD的上下文资源包括第一上下文资源和第二上下文资源,所述第一上下文资源用于管理可接收的主机IO命令数量,所述第二上下文资源用于管理IO命令拆分出的数据结构。
  4. 根据权利要求3所述的提升SSD服务质量的方法,其特征在于,所述确定SSD的上下文资源数量,包括:
    初始化第一上下文资源数量和第二上下文资源数量;
    根据第一上下文资源初始数量以及第二上下文资源初始数量进行读写IOPS测试;
    保持第一上下文资源数量不变以及不断增加第二上下文资源数量,并继续进行IOPS测试直至吞吐量不再增加;
    将吞吐量最大所对应的最小第二上下文资源数量作为第二上下文资源数量;和
    根据所述第二上下文资源数量确定第一上下文资源数量。
  5. 根据权利要求4所述的提升SSD服务质量的方法,其特征在于,第二上下文资源数量与第一上下文资源数量的比例为1:32。
  6. 根据权利要求4所述的提升SSD服务质量的方法,其特征在于,对SSD的状态机挂起数量进行统计,包括:
    统计第二上下文资源使用数量,当第二上下文资源使用数量达到第二上下文资源数量时,如果SSD接收到新的主机IO命令,则SSD的状态机挂起数量加1,如果SSD处理完一个主机IO命令,则SSD的状态机挂起数量减1。
  7. 根据权利要求4所述的提升SSD服务质量的方法,其特征在于,所述根据所述上 下文资源数量、所述上下文资源使用数量以及所述状态机挂起数量判断是否接收新的主机IO命令,包括:
    在第一上下文资源使用数量达到第一上下文资源数量或状态机挂起数量达到预设阈值时,SSD停止接收新的主机IO命令。
  8. 一种提升SSD服务质量的装置,其特征在于,所述装置包括资源确定模块、资源统计模块、判断模块,其中:
    所述资源确定模块,用于确定SSD的上下文资源数量,并利用令牌桶算法对所述上下文资源数量进行管理;
    所述资源统计模块,用于接收并处理主机IO命令,并对SSD上下文资源使用数量进行统计;和
    所述判断模块,用于根据所述上下文资源数量以及所述上下文资源使用数量判断是否接收新的主机IO命令。
  9. 一种计算机设备,其特征在于,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-7任意一项所述的方法的步骤。10.一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-7任意一项所述的方法的步骤。
PCT/CN2022/090021 2021-11-04 2022-04-28 提升ssd服务质量方法、装置、计算机设备和存储介质 Ceased WO2023077751A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/567,276 US12373317B2 (en) 2021-11-04 2022-04-28 Method and apparatus for improving quality of service of SSD, and computer device and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111301938.3A CN113741991B (zh) 2021-11-04 2021-11-04 提升ssd服务质量方法、装置、计算机设备和存储介质
CN202111301938.3 2021-11-04

Publications (1)

Publication Number Publication Date
WO2023077751A1 true WO2023077751A1 (zh) 2023-05-11

Family

ID=78727479

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/090021 Ceased WO2023077751A1 (zh) 2021-11-04 2022-04-28 提升ssd服务质量方法、装置、计算机设备和存储介质

Country Status (3)

Country Link
US (1) US12373317B2 (zh)
CN (1) CN113741991B (zh)
WO (1) WO2023077751A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741991B (zh) * 2021-11-04 2022-02-18 苏州浪潮智能科技有限公司 提升ssd服务质量方法、装置、计算机设备和存储介质
CN114296639B (zh) * 2021-12-10 2024-02-20 深圳大普微电子科技有限公司 命令处理方法及闪存设备
CN119960694B (zh) * 2025-01-14 2026-01-02 成都芯忆联信息技术有限公司 固态硬盘的多命名空间流量控制方法、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223624A1 (en) * 2009-02-27 2010-09-02 International Business Machines Corporation Method for pushing work request-associated contexts into an io device
CN105900061A (zh) * 2014-10-22 2016-08-24 华为技术有限公司 对象存储系统中的业务流控制方法、控制器和系统
US10268419B1 (en) * 2017-04-27 2019-04-23 EMC IP Holding Company LLC Quality of service for storage system resources
CN112306415A (zh) * 2020-11-02 2021-02-02 成都佰维存储科技有限公司 Gc流控方法、装置、计算机可读存储介质及电子设备
CN113741991A (zh) * 2021-11-04 2021-12-03 苏州浪潮智能科技有限公司 提升ssd服务质量方法、装置、计算机设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US9329964B2 (en) * 2014-06-20 2016-05-03 Dell International L.L.C. Shaping I/O traffic by managing queue depth in fractional increments
CN109245772A (zh) * 2018-08-16 2019-01-18 郑州云海信息技术有限公司 一种压缩i/o数据的方法、系统、装置及可读存储介质
US11775186B1 (en) * 2021-08-04 2023-10-03 Amazon Technologies, Inc. Dynamic usage-metric-based configuration of storage volumes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223624A1 (en) * 2009-02-27 2010-09-02 International Business Machines Corporation Method for pushing work request-associated contexts into an io device
CN105900061A (zh) * 2014-10-22 2016-08-24 华为技术有限公司 对象存储系统中的业务流控制方法、控制器和系统
US10268419B1 (en) * 2017-04-27 2019-04-23 EMC IP Holding Company LLC Quality of service for storage system resources
CN112306415A (zh) * 2020-11-02 2021-02-02 成都佰维存储科技有限公司 Gc流控方法、装置、计算机可读存储介质及电子设备
CN113741991A (zh) * 2021-11-04 2021-12-03 苏州浪潮智能科技有限公司 提升ssd服务质量方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
US12373317B2 (en) 2025-07-29
CN113741991A (zh) 2021-12-03
US20240272998A1 (en) 2024-08-15
CN113741991B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
US12578864B2 (en) Optimized I/O performance regulation for non-volatile storage
WO2023077751A1 (zh) 提升ssd服务质量方法、装置、计算机设备和存储介质
US10949103B2 (en) Native storage quality of service for virtual machines
US9465734B1 (en) Coalition based memory management
US9286199B2 (en) Modifying memory space allocation for inactive tasks
CN114830098B (zh) 考虑耗损均衡的存储器操作
CN109840047A (zh) 一种降低读延时的方法及装置
CN114328281A (zh) 固态硬盘异常掉电处理方法、装置、电子设备及介质
US11256621B2 (en) Dual controller cache optimization in a deterministic data storage system
CN107402863B (zh) 一种用于通过日志系统处理业务系统的日志的方法与设备
US10210035B2 (en) Computer system and memory dump method
US12360814B2 (en) Computing resource management method, electronic equipment and program product
TW202538525A (zh) 儲存系統的運作方法、儲存裝置及非暫態儲存媒體
CN116185631A (zh) 多核结构固态硬盘的负载均衡方法、装置、设备及介质
CN116048377A (zh) 固态硬盘的数据处理方法及相关设备
CN114595063A (zh) 确定数据的访问频繁程度的方法及装置
CN114185682A (zh) 日志输出方法、装置、电子设备及存储介质
US10788994B1 (en) Disaggregation of flash management
CN119226108B (zh) 数据操作性能统计方法、装置、设备及可读存储介质
CN121070287B (zh) NVMe固态硬盘的调度方法、装置、数据处理器和设备
US20260065411A1 (en) Adaptive memory management system for efficient training of large language models
CN115794367A (zh) 计算引擎及其运行方法、介质和系统
CN114641024A (zh) 确定网络功能网元的资源使用率的方法和装置
CN120704593A (zh) 数据处理方法、装置、电子设备及存储介质
KR20230102877A (ko) 다수의 ssd로 구성된 논리적 볼륨의 효율적인 입출력 자원 분배를 위한 블록 재배치 가능한 ssd 장치 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22888790

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18567276

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22888790

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 22888790

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 27/11/2024)

WWG Wipo information: grant in national office

Ref document number: 18567276

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 22888790

Country of ref document: EP

Kind code of ref document: A1