Background IO control method and device, equipment, storage medium and program product
By adjusting the flow control threshold of the background IO according to the system delay and delay threshold range of the storage cluster, the problem of the delay control of the object storage background IO is solved, and the efficient utilization and delay of cluster resources are achieved.
Patent Information
- Application Number
- CN202411640937.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-18
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2044-11-18
AI Technical Summary
The current object storage background IO cannot effectively control the delay through thread control, cannot meet user needs, and it is difficult to make the cluster IO to the greatest extent.
By obtaining the system delay of the storage cluster, and according to the size relationship between the delay and delay threshold range, the flow control threshold of the background IO is adjusted to achieve the control of the background IO request. The flow control threshold is related to the cluster performance of the storage cluster, including cluster throughput and IOPS.
The efficient utilization of cluster resources has been achieved, the delay is reduced, and the user needs are met. By dynamically adjust the flow control threshold, ensure that the system delay of the storage cluster is within a reasonable range.
Smart Images

Figure CN119376637A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a background IO control method, device, equipment, storage medium and program product. Background Art
[0002] As a new storage method, object storage is widely used in various cloud services due to its advantages such as high scalability, high availability and low cost.
[0003] The current object storage backend IO relying on thread control can no longer meet current needs and cannot control latency well. Therefore, while meeting user needs, achieving maximum utilization of cluster IO and reducing latency has become an urgent problem to be solved. Summary of the invention
[0004] Based on this, it is necessary to provide a background IO control method, device, equipment, storage medium and program product to address the above technical problems, so as to achieve efficient utilization of cluster resources.
[0005] In a first aspect, the present application provides a background IO control method, the method comprising:
[0006] Get the system latency of the storage cluster;
[0007] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0008] In one embodiment, the flow control threshold of the background IO is adjusted according to the size relationship between the system delay and the delay threshold range, including:
[0009] According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request volume; among which, the peak and valley data is determined based on the foreground IO request volume in the historical period.
[0010] In one embodiment, the flow control threshold of the background IO is adjusted according to the size relationship between the system delay and the delay threshold range, and the peak and valley data of the foreground input and output IO of the storage cluster, including:
[0011] According to the peak and valley data of the foreground IO of the storage cluster, the peak and valley conditions of the storage cluster in the next period are predicted; according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions, the flow control threshold of the background IO is adjusted.
[0012] In one embodiment, the flow control threshold of the background IO is adjusted according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions, including:
[0013] When the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually raised according to the peak and valley conditions until the system latency of the storage cluster after the raising process is within the latency threshold range.
[0014] In one embodiment, it includes:
[0015] Determine the node performance of a single node in the storage cluster; determine the cluster performance of the storage cluster based on the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0016] In one embodiment, determining node performance of a single node in a storage cluster includes:
[0017] Determine the node performance of a single node based on the single disk performance and the number of disks on a single node in the storage cluster.
[0018] In a second aspect, the present application further provides a background IO control device, the device comprising:
[0019] An acquisition module is used to obtain the system latency of the storage cluster;
[0020] The control module is used to adjust the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, so as to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the input and output volume IOPS of the cluster per second.
[0021] In a third aspect, the present application further provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0022] Get the system latency of the storage cluster;
[0023] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0024] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the following steps are implemented:
[0025] Get the system latency of the storage cluster;
[0026] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0027] In a fifth aspect, the present application further provides a computer program product, including a computer program, which implements the following steps when executed by a processor:
[0028] Get the system latency of the storage cluster;
[0029] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0030] The above-mentioned background IO control method, device, equipment, storage medium and program product provide a basis for judging the cluster performance of the storage cluster by obtaining the system delay of the storage cluster; further, based on the size relationship between the system delay and the delay threshold range, the cluster performance of the storage cluster can be determined; further, the flow control threshold of the background IO can be adjusted according to the size relationship between the system delay and the delay threshold range, and finally the control of the background IO request amount is realized. This scheme provides a basis for determining the cluster performance of the storage cluster by introducing the delay threshold range; further, by determining the size relationship between the system delay and the delay threshold range, it lays the foundation for determining the adjustment direction of the storage cluster; finally, by introducing the flow control threshold, the dynamic adjustment of the flow control threshold of the background IO is realized, and finally the efficient use of cluster resources is realized. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0032] FIG1 is an architecture diagram of a background IO control method provided in an embodiment of the present application;
[0033] FIG2 is a functional structure diagram of a StateCenter module provided in an embodiment of the present application;
[0034] FIG3 is a process environment diagram of a background IO control method provided in an embodiment of the present application;
[0035] FIG4 is a schematic diagram of a process for determining cluster performance provided in an embodiment of the present application;
[0036] FIG5 is a flow chart of another background IO control method provided in an embodiment of the present application;
[0037] FIG6 is a structural block diagram of a background IO control device provided in an embodiment of the present application;
[0038] FIG7 is a structural block diagram of another background IO control device provided in an embodiment of the present application;
[0039] FIG8 is a diagram of the internal structure of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0040] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0041] As a new storage method, object storage is widely used in various cloud services due to its advantages of high scalability, high availability and low cost. As shown in Figure 1, the background IO control method in the embodiment of the present application can be implemented by the StateCenter module and the flow control module; wherein the StateCenter module includes functions such as latency acquisition, throughput control, IOPS control, traffic prediction, cluster capacity prediction, control strategy and fuse, as shown in Figure 2; the flow control module is responsible for the background IO requests of all gateways.
[0042] Based on this, in an exemplary embodiment, as shown in FIG3 , a background IO control method is provided, which is described by taking the application of the method to the StateCenter module as an example, and may include the following steps:
[0043] S301, obtaining the system latency of the storage cluster.
[0044] Among them, the storage cluster can be composed of several general storage devices, which form a whole through cluster technology and are used to store data; the system latency can represent the time consumed from the initiation to the completion of an IO request, which can be affected by the storage medium, network conditions and load conditions.
[0045] It should be noted that the system latency of the storage cluster may occur in all data exchange nodes in the hierarchical structure of the storage cluster. Since each transmission node has data encapsulation, decapsulation, data rearrangement, queues, access control, resource application / release, error correction and retransmission, these behaviors may cause latency.
[0046] Exemplarily, the system latency of the storage cluster can be collected multiple times through a performance testing tool or a network testing tool, and the results of the multiple collections can be averaged to improve the accuracy of the data; thus, the system latency of the storage cluster can be directly obtained.
[0047] S302, adjusting the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, so as to control the amount of background IO requests.
[0048] Among them, the delay threshold range includes an upper delay threshold and a lower delay threshold; background IO can represent input and output operations in the computer system that do not directly interact with the user but are performed in the background, such as disk IO, etc.; correspondingly, foreground IO can represent input and output operations that directly interact with the user interface, such as keyboard input, screen display, etc.; the flow control threshold can represent the critical value in the flow control mechanism, which can be used to limit or adjust network traffic. For example, when the flow of background IO exceeds the flow control threshold of background IO, the flow of background IO will be controlled, such as reducing the request volume of background IO, etc.; the flow control threshold is related to the cluster performance of the storage cluster; cluster performance can include cluster throughput and / or the input and output volume IOPS of the cluster per second.
[0049] It should be noted that the correlation between system latency and IOPS is relatively high. Generally speaking, as IOPS increases, latency increases at the same time. When IOPS increases to a certain level and reaches the upper limit of the storage cluster processing, IOPS will not continue to increase, only latency will increase. Therefore, the flow control threshold associated with cluster IOPS can be adjusted based on system latency.
[0050] Optionally, the adjustment range of the flow control threshold of the background IO can be determined based on the historical flow control threshold and the size relationship between the system delay and the delay threshold range. The embodiment of the present application does not specifically limit the adjustment strategy.
[0051] Exemplarily, the processing capacity of the storage cluster can be determined based on the size relationship between the system delay and the delay threshold range; further, the flow control threshold of the background IO can be adjusted according to the processing capacity of the storage cluster. For example, when the processing capacity of the storage cluster is insufficient, the flow control threshold of the background IO can be appropriately lowered to reduce the request volume of the background IO, and more processing capacity of the storage cluster can be allocated to the foreground IO, giving users a better user experience.
[0052] The above-mentioned background IO control method provides a basis for judging the cluster performance of the storage cluster by obtaining the system delay of the storage cluster; further, based on the size relationship between the system delay and the delay threshold range, the cluster performance of the storage cluster can be determined; further, the flow control threshold of the background IO can be adjusted according to the size relationship between the system delay and the delay threshold range, and finally the control of the background IO request amount can be realized. This scheme provides a basis for determining the cluster performance of the storage cluster by introducing the delay threshold range; further, by determining the size relationship between the system delay and the delay threshold range, it lays the foundation for determining the adjustment direction of the storage cluster; finally, by introducing the flow control threshold, the dynamic adjustment of the flow control threshold of the background IO is realized, and finally the efficient use of cluster resources is realized.
[0053] Based on the above-mentioned embodiments, the embodiments of the present application explain the above-mentioned embodiment S302 in detail. Specifically, the process of adjusting the flow control threshold in the embodiments of the present application specifically includes: adjusting the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, and the peak and valley data of the front-end input and output IO of the storage cluster, so as to control the amount of background IO requests.
[0054] Among them, the foreground IO can represent the input and output operations that directly interact with the user interface, such as keyboard input, screen display, etc.; the peak and valley data can include peak data and valley data, which are determined according to the foreground IO request volume in the historical period.
[0055] Optionally, the foreground IO data of the storage cluster in the historical period can be determined by collecting the cluster throughput and / or cluster IOPS of the storage cluster in the historical period; further, based on the foreground IO data of the storage cluster in the historical period, the peak and valley data of the foreground IO of the storage cluster can be determined. For example, if the historical period is the previous 7 days, the peak data can be determined every 10 minutes in the historical period (the interval time can be determined based on actual conditions. Generally, the smaller the time interval, the more accurate the peak and valley data of the foreground IO of the storage cluster). For example, during the period from 13:00 to 13:10 of each day in the previous 7 days, the peaks are 1GB, 1.1GB, 3GB, 2GB, 1.2GB, 1GB, and 1.4GB respectively. Then, the peak in the historical period from 13:00 to 13:10 of the previous 7 days is 3GB, and the valley is 1GB.
[0056] One feasible method is to predict the peak and valley conditions of the storage cluster in the next period of time based on the peak and valley data of the foreground IO of the storage cluster; and adjust the flow control threshold of the background IO based on the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions.
[0057] Exemplarily, based on the peak and valley data of the foreground IO of the storage cluster, the trend of the peak and valley data in the historical period can be analyzed through time series analysis technology, and the features related to the peaks and valleys, such as peak height, trough depth, time interval between peaks and troughs, etc., can be extracted, and the peak and valley conditions of the storage cluster in the next period can be determined through a prediction model (such as a long short-term memory network model); further, based on the peak and valley conditions of the storage cluster in the next period, the foreground IO request volume corresponding to the peak of the storage cluster in the next period, and the foreground IO request volume corresponding to the trough of the storage cluster in the next period can be determined; further, before the peak and / or trough arrives in the next period, and according to the size relationship between the system delay and the delay threshold range, the flow control threshold of the background IO can be adjusted in advance to cope with the predicted peaks and / or troughs.
[0058] Optionally, when the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions, until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually increased according to the peak and valley conditions, until the system latency of the storage cluster after the increasing process is within the latency threshold range.
[0059] Exemplarily, if the system latency of the current storage cluster is greater than the upper latency threshold (such as exceeding 5% of the upper latency threshold), it indicates that the processing speed of the current storage cluster is slow, which may cause a bad access experience for front-end users. In this case, more processing power of the storage cluster can be allocated to the front-end IO, that is, by reducing the flow control threshold of the background IO, the processing power allocated to the background IO is reduced; wherein, the process of adjusting the flow control threshold of the background IO is a gradual adjustment, which can be combined with the peak and valley conditions. If the peak is approaching, the pace of adjusting the flow control threshold can be appropriately increased. If the trough is approaching, the flow control threshold can be smoothly adjusted to ensure the stability of the storage cluster.
[0060] Correspondingly, if the system latency of the current storage cluster is less than the lower latency threshold (such as less than 5% of the lower latency threshold), it means that the current storage cluster has a lot of idle IO. You can appropriately increase the background IO, that is, increase the flow control threshold of the background IO, allocate more processing power to the background IO, and give full play to the cluster's IO. Among them, you can adjust the flow control threshold of the background IO in combination with the peak and valley conditions. If the peak is coming, you can slowly increase the flow control threshold to ensure that it does not affect the processing speed of the foreground IO. If the trough is coming, you can appropriately speed up the pace of adjusting the flow control threshold to maximize the use of the cluster performance of the storage cluster.
[0061] In the embodiment of the present application, by introducing the delay threshold range, a basis is provided for determining the cluster performance of the storage cluster. Furthermore, by adjusting the flow control threshold of the background IO, a foundation is laid for ensuring user experience and fully utilizing the storage cluster.
[0062] Based on the above embodiments, the embodiments of the present application relate to a process of determining the cluster performance of a storage cluster, as shown in FIG4 , which specifically includes the following steps:
[0063] S401, determining the node performance of a single node in a storage cluster.
[0064] It should be noted that the storage cluster includes several general storage devices, each of which is a single node in the storage cluster.
[0065] The node performance may include node throughput and node IOPS.
[0066] An implementable manner is to determine the node performance of a single node according to the single disk performance and the number of disks of the single node in the storage cluster.
[0067] The performance of a single disk may include single disk throughput and single disk IOPS.
[0068] For example, if a single node has 36 disk slots, the single disk throughput of a single disk is 30 MB, and the single disk IOPS is 30 IOPS, then the node throughput of the single node can be 30 MB × 36 = 1080 MB, and the node IOPS can be 30 IOPS × 36 = 1080 IOPS.
[0069] Another possible implementation method is to use professional benchmarking tools to perform performance tests on individual nodes in the storage cluster, such as processor performance tests and disk performance tests.
[0070] S402: Determine the cluster performance of the storage cluster according to the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0071] Among them, the erasure code conversion ratio can express the proportional relationship between the original data volume and the actual storage data volume in the storage cluster (including the original data blocks and redundant check blocks), which can reflect the utilization efficiency of the storage space.
[0072] As shown in the above example, there are 11 storage devices in the storage cluster, and the EC is 8+3, then the erasure code conversion ratio of the storage cluster is 8 / (8+3), that is, 8 / 11; therefore, the cluster throughput of the storage cluster can be 11×1080MB×8 / 11=8640MB, and the cluster IOPS can be 11×1080IOPS×8 / 11=8640IOPS.
[0073] In the embodiment of the present application, by introducing the erasure code conversion ratio of the storage cluster, a method is provided for accurately determining the cluster performance of the storage cluster.
[0074] Based on the above embodiment, this embodiment provides an optional example of a background IO control method. As shown in FIG5 , the specific implementation process is as follows:
[0075] S501, obtaining the system latency of the storage cluster.
[0076] S502: predicting the peak and valley conditions of the storage cluster in the next period of time according to the peak and valley data of the foreground IO of the storage cluster.
[0077] Among them, the peak and valley data are determined according to the amount of foreground IO requests during the historical period.
[0078] S503, determine whether the system delay is greater than the upper delay threshold, if so, execute S504; if not, execute S505.
[0079] S504, gradually lowering the flow control threshold of the background IO according to the peak and valley conditions, until the system delay of the storage cluster after the lowering process is within the delay threshold range.
[0080] The flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes cluster throughput and / or cluster input and output volume per second IOPS.
[0081] S505, gradually increase the flow control threshold of the background IO according to the peak and valley conditions, until the system delay of the storage cluster after the increase processing is within the delay threshold range, so as to control the amount of background IO requests.
[0082] Optionally, determine the node performance of a single node in the storage cluster; and determine the cluster performance of the storage cluster based on the node performance, an erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0083] The node performance of a single node may be determined based on the single disk performance and the number of disks of a single node in the storage cluster.
[0084] The specific process of S501-S505 can refer to the description of the above method embodiment, and its implementation principle and technical effect are similar, which will not be repeated here.
[0085] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0086] Based on the same inventive concept, the embodiment of the present application also provides a background IO control device for implementing the background IO control method involved above. The implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above method, so the specific limitations in one or more background IO control device embodiments provided below can refer to the limitations of the background IO control method above, and will not be repeated here.
[0087] In an exemplary embodiment, as shown in FIG6 , a background IO control device 1 is provided, comprising: an acquisition module 10 and a control module 20, wherein:
[0088] The acquisition module 10 is used to acquire the system latency of the storage cluster.
[0089] The control module 20 is used to adjust the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, so as to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the input and output volume IOPS of the cluster per second.
[0090] In one embodiment, the control module 20 is specifically used for:
[0091] According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request volume; among which, the peak and valley data is determined based on the foreground IO request volume in the historical period.
[0092] In one embodiment, as shown in FIG. 7 , the control module 20 specifically further includes:
[0093] The prediction unit 21 is used to predict the peak and valley conditions of the storage cluster in the next period according to the peak and valley data of the foreground IO of the storage cluster.
[0094] The adjustment unit 22 is used to adjust the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions.
[0095] In one embodiment, the adjustment unit 22 is further configured to:
[0096] When the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually raised according to the peak and valley conditions until the system latency of the storage cluster after the raising process is within the latency threshold range.
[0097] In one embodiment, the background IO control device 1 specifically further includes:
[0098] The performance determination module is used to determine the node performance of a single node in the storage cluster; the cluster performance of the storage cluster is determined based on the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0099] In one embodiment, the performance determination module is further configured to:
[0100] Determine the node performance of a single node based on the single disk performance and the number of disks on a single node in the storage cluster.
[0101] Each module in the above-mentioned background IO control device can be implemented in whole or in part by software, hardware and their combination. Each of the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.
[0102] In an exemplary embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be shown in FIG8. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing 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, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store cluster data. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a background IO control method is implemented.
[0103] Those skilled in the art will understand that the structure shown in FIG. 8 is merely a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0104] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0105] Get the system latency of the storage cluster;
[0106] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0107] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0108] According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request volume; among which, the peak and valley data is determined based on the foreground IO request volume in the historical period.
[0109] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0110] According to the peak and valley data of the foreground IO of the storage cluster, the peak and valley conditions of the storage cluster in the next period are predicted; according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions, the flow control threshold of the background IO is adjusted.
[0111] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0112] When the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually raised according to the peak and valley conditions until the system latency of the storage cluster after the raising process is within the latency threshold range.
[0113] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0114] Determine the node performance of a single node in the storage cluster; determine the cluster performance of the storage cluster based on the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0115] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:
[0116] Determine the node performance of a single node based on the single disk performance and the number of disks on a single node in the storage cluster.
[0117] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:
[0118] Get the system latency of the storage cluster;
[0119] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0120] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0121] According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request volume; among which, the peak and valley data is determined based on the foreground IO request volume in the historical period.
[0122] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0123] According to the peak and valley data of the foreground IO of the storage cluster, the peak and valley conditions of the storage cluster in the next period are predicted; according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions, the flow control threshold of the background IO is adjusted.
[0124] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0125] When the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually raised according to the peak and valley conditions until the system latency of the storage cluster after the raising process is within the latency threshold range.
[0126] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0127] Determine the node performance of a single node in the storage cluster; determine the cluster performance of the storage cluster based on the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0128] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0129] Determine the node performance of a single node based on the single disk performance and the number of disks on a single node in the storage cluster.
[0130] In one embodiment, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the following steps:
[0131] Get the system latency of the storage cluster;
[0132] According to the size relationship between the system latency and the latency threshold range, the flow control threshold of the background IO is adjusted to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes the cluster throughput and / or the cluster input and output volume per second IOPS.
[0133] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0134] According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request volume; among which, the peak and valley data is determined based on the foreground IO request volume in the historical period.
[0135] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0136] According to the peak and valley data of the foreground IO of the storage cluster, the peak and valley conditions of the storage cluster in the next period are predicted; according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions, the flow control threshold of the background IO is adjusted.
[0137] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0138] When the system latency is greater than the upper latency threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system latency of the storage cluster after the lowering process is within the latency threshold range; when the system latency is less than the lower latency threshold, the flow control threshold of the background IO is gradually raised according to the peak and valley conditions until the system latency of the storage cluster after the raising process is within the latency threshold range.
[0139] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0140] Determine the node performance of a single node in the storage cluster; determine the cluster performance of the storage cluster based on the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
[0141] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:
[0142] Determine the node performance of a single node based on the single disk performance and the number of disks on a single node in the storage cluster.
[0143] It should be noted that the information (including but not limited to storage cluster information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0144] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0145] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0146] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A background IO control method, characterized in that: The method comprises: Get the system latency of the storage cluster; According to the size relationship between the system delay and the delay threshold range, the flow control threshold of the background IO is adjusted to achieve control of the background IO request amount; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes cluster throughput and / or the cluster input and output volume per second IOPS.
2. The method according to claim 1, characterized in that The adjusting the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range includes: According to the size relationship between the system delay and the delay threshold range, as well as the peak and valley data of the foreground input and output IO of the storage cluster, the flow control threshold of the background IO is adjusted to achieve control of the background IO request amount; wherein the peak and valley data is determined according to the foreground IO request amount in a historical period.
3. The method according to claim 2, characterized in that The adjusting of the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, and the peak and valley data of the foreground input and output IO of the storage cluster, includes: According to the peak and valley data of the foreground IO of the storage cluster, predict the peak and valley situation of the storage cluster in the next period; The flow control threshold of the background IO is adjusted according to the size relationship between the system delay and the delay threshold range, as well as the peak and valley conditions.
4. The method according to claim 3, characterized in that The delay threshold range includes an upper delay threshold and a lower delay threshold; The adjusting the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, and the peak and valley conditions, includes: When the system delay is greater than the upper delay threshold, the flow control threshold of the background IO is gradually lowered according to the peak and valley conditions until the system delay of the storage cluster after the lowering process is within the delay threshold range; When the system delay is less than the lower delay threshold, the flow control threshold of the background IO is gradually increased according to the peak and valley conditions until the system delay of the storage cluster after the increase is within the delay threshold range.
5. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: Determining node performance of a single node in the storage cluster; The cluster performance of the storage cluster is determined according to the node performance, the erasure code conversion ratio of the storage cluster, and the number of nodes in the storage cluster.
6. The method according to claim 5, characterized in that The determining the node performance of a single node in the storage cluster includes: The node performance of the single node is determined according to the single disk performance and the number of disks of the single node in the storage cluster.
7. A background IO control device, characterized in that: The device comprises: An acquisition module is used to obtain the system latency of the storage cluster; A control module is used to adjust the flow control threshold of the background IO according to the size relationship between the system delay and the delay threshold range, so as to control the amount of background IO requests; wherein the flow control threshold is related to the cluster performance of the storage cluster; the cluster performance includes cluster throughput and / or the input and output volume IOPS of the cluster per second.
8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.
10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.
Citation Information
Patent Citations
Disk read-write control method, device and equipment and computer readable storage medium
CN111352592A
Method and device for dynamically determining timeout threshold value, electronic equipment and medium
CN114710406A
Flow control method of distributed storage system and distributed storage system
CN117354327A
Flow control with a dynamic window in a storage system with latency guarantees
US10048874B1