Adjustment method, device, equipment, storage medium and computer program product

By adjusting the token buckets for user and back-end services, resources are dynamically allocated based on the storage system's capacity and pressure parameters, solving the problem of resource waste in existing technologies and achieving more efficient resource utilization and improved service quality.

CN116760773BActive Publication Date: 2026-05-08天津中科曙光存储科技有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
天津中科曙光存储科技有限公司
Filing Date
2023-05-16
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

In existing technologies, setting up separate token buckets for user services and backend services for resource allocation leads to a waste of storage system resources, which cannot be fully utilized, resulting in poor service quality.

Method used

By acquiring the storage system's capacity parameters and the user business's pressure parameters, the token buckets of user business and backend business are adjusted to dynamically allocate resources, ensuring that resources are allocated to backend business when user business resources are scarce, and returned to user business when resources are plentiful.

Benefits of technology

It improved the resource utilization of the storage system and enhanced the service quality of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116760773B_ABST
    Figure CN116760773B_ABST
Patent Text Reader

Abstract

The application relates to an adjustment method and device, a computer device, a computer readable storage medium and a computer program product. The method comprises the following steps: acquiring a current capability parameter of a storage system and a current user service pressure parameter of the storage system, the capability parameter is used for representing the processing capability of the storage system, the pressure parameter is used for representing the pressure stability of the user service, performing adjustment processing on a pre-set user service token bucket according to the capability parameter, performing adjustment processing on a pre-set background service token bucket according to the capability parameter and the pressure parameter, responding to the user service based on the adjusted user service token bucket, and responding to the background service based on the adjusted background service token bucket. The adjustment method provided by the application can effectively improve the resource utilization rate of the storage system, and further effectively improve the service quality of the storage system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of storage system technology, and in particular to an adjustment method, apparatus, computer device, computer-readable storage medium, and computer program product. Background Technology

[0002] User services refer to the read and write requests made by front-end users to the system, while back-end services refer to services that ensure the normal operation of the storage system. User services and back-end services share the storage system's resources.

[0003] In existing technologies, different token buckets are set up for user services and backend services respectively to achieve resource allocation for user services and backend services.

[0004] However, using this method to allocate resources often results in the waste and underutilization of storage system resources, leading to poor service quality. Summary of the Invention

[0005] Therefore, it is necessary to provide an adjustment method, apparatus, computer equipment, computer-readable storage medium, and computer program product that can improve the resource utilization of storage systems and enhance the service quality of storage systems, in response to the above-mentioned technical problems.

[0006] Firstly, this application provides an adjustment method. The method includes:

[0007] The system obtains the current capacity parameters of the storage system and the current pressure parameters of the user services. The capacity parameters characterize the processing capacity of the storage system, and the pressure parameters characterize the pressure stability of the user services. Based on the capacity parameters, the system adjusts the pre-set user service token bucket, and based on the capacity parameters and pressure parameters, the system adjusts the pre-set backend service token bucket. Based on the adjusted user service token bucket, the system responds to user services, and based on the adjusted backend service token bucket, the system responds to backend services.

[0008] In one embodiment, the capability parameter includes IO backlog, and the adjustment process of the pre-set user service token bucket based on the capability parameter includes: determining the adjustment target of the user service token bucket based on the IO backlog, the adjustment target of the user service token bucket including the adjustment direction of the token attribute parameter and the adjustment step size of the token attribute parameter; and adjusting the token attribute parameter of the user service token bucket according to the adjustment target of the user service token bucket.

[0009] In one embodiment, the capability parameter further includes a disk busy parameter, which characterizes the disk's busy level. The adjustment process for the pre-set background service token bucket based on the capability parameter and the pressure parameter includes: determining a first initial adjustment target for the background service token bucket based on the disk busy parameter and the pressure parameter; determining a second initial adjustment target for the background service token bucket based on the IO backlog; determining a final adjustment target for the background service token bucket based on the first and second initial adjustment targets, the final adjustment target including the adjustment direction and adjustment step size of the token attribute parameters; and adjusting the token attribute parameters of the background service token bucket according to the final adjustment target.

[0010] In one embodiment, determining the first initial adjustment target of the background service token bucket based on the disk busy parameter and the pressure parameter includes: determining the first sub-adjustment target of the background service token bucket based on the disk busy parameter; determining the second sub-adjustment target of the background service token bucket based on the pressure parameter; and determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target.

[0011] In one embodiment, both the first sub-adjustment target and the second sub-adjustment target include an adjustment direction for the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: if there is a downward adjustment direction among the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target, using the downward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target; if both the first sub-adjustment target and the second sub-adjustment target include upward adjustment directions, using the upward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target.

[0012] In one embodiment, the first sub-adjustment target and the second sub-adjustment target further include an adjustment step size for the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: if the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, using the largest adjustment step size among the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the token attribute parameter adjustment step size of the first initial adjustment target; if the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, using the average of the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the token attribute parameter adjustment step size of the first initial adjustment target.

[0013] In one embodiment, both the first initial adjustment target and the second initial adjustment target include the adjustment direction of the token attribute parameter. Determining the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target includes: if there is a downward adjustment direction included in the adjustment direction of the first initial adjustment target and the second initial adjustment target, the downward adjustment direction is used as the adjustment direction of the token attribute parameter of the final adjustment target; if both the first initial adjustment target and the second initial adjustment target include upward adjustment directions, the upward adjustment direction is used as the adjustment direction of the token attribute parameter of the final adjustment target.

[0014] In one embodiment, the first initial adjustment target and the second initial adjustment target further include adjustment step sizes for token attribute parameters. Determining the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target includes: if the adjustment direction of the token attribute parameters of the final adjustment target is downward, using the largest adjustment step size among the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the token attribute parameter adjustment step size of the final adjustment target; if the adjustment direction of the token attribute parameters of the final adjustment target is upward, using the average of the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the token attribute parameter adjustment step size of the final adjustment target.

[0015] In one embodiment, before adjusting the pre-set user service token bucket according to the capability parameter and adjusting the pre-set background service token bucket according to the capability parameter and the pressure parameter, the method further includes: obtaining the performance ceiling value of the storage system and a first initial value of the user service resource usage of the storage system; determining a second initial value of the background service resource usage of the storage system according to the performance ceiling value of the storage system and the first initial value; configuring the number of tokens in the user service token bucket according to the first initial value, and configuring the number of tokens in the background service token bucket according to the second initial value.

[0016] Secondly, this application also provides an adjustment device. The device includes:

[0017] The acquisition module is used to acquire the current capacity parameters of the storage system and the current pressure parameters of the user services of the storage system. The capacity parameters are used to characterize the processing capacity of the storage system, and the pressure parameters are used to characterize the pressure stability of the user services. The first execution module is used to adjust the pre-set user service token bucket according to the capacity parameters and the pre-set background service token bucket according to the capacity parameters and the pressure parameters. The second execution module is used to respond to user services based on the adjusted user service token bucket and respond to background services based on the adjusted background service token bucket.

[0018] In one embodiment, the capability parameter includes IO backlog. The first execution module is specifically configured to: determine the adjustment target of the user service token bucket based on the IO backlog, the adjustment target of the user service token bucket including the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters; and adjust the token attribute parameters of the user service token bucket according to the adjustment target of the user service token bucket.

[0019] In one embodiment, the capability parameter further includes a disk busy parameter, which characterizes the disk's busy level. The first execution module is specifically configured to: determine a first initial adjustment target for the background service token bucket based on the disk busy parameter and the pressure parameter; determine a second initial adjustment target for the background service token bucket based on the IO backlog; determine a final adjustment target for the background service token bucket based on the first and second initial adjustment targets, the final adjustment target including the adjustment direction and adjustment step size of the token attribute parameters; and adjust the token attribute parameters of the background service token bucket according to the final adjustment target.

[0020] In one embodiment, the first execution module is specifically configured to: determine a first sub-adjustment target for the background service token bucket based on the disk busy parameter; determine a second sub-adjustment target for the background service token bucket based on the pressure parameter; and determine a first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target.

[0021] In one embodiment, both the first sub-adjustment target and the second sub-adjustment target include an adjustment direction for the token attribute parameter. The first execution module is specifically configured to: if there is a downward adjustment direction among the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target, use the downward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target; and if both the first sub-adjustment target and the second sub-adjustment target include upward adjustment directions, use the upward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target.

[0022] In one embodiment, the first sub-adjustment target and the second sub-adjustment target further include an adjustment step size for the token attribute parameter. The first execution module is specifically configured to: when the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, use the largest adjustment step size among the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the adjustment step size of the token attribute parameter of the first initial adjustment target; and when the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, use the average of the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the adjustment step size of the token attribute parameter of the first initial adjustment target.

[0023] In one embodiment, both the first initial adjustment target and the second initial adjustment target include an adjustment direction for the token attribute parameter. The first execution module is specifically configured to: if there is a downward adjustment direction among the adjustment directions included in the first initial adjustment target and the second initial adjustment target, use the downward adjustment direction as the adjustment direction for the token attribute parameter of the final adjustment target; and if both the first initial adjustment target and the second initial adjustment target include upward adjustment directions, use the upward adjustment direction as the adjustment direction for the token attribute parameter of the final adjustment target.

[0024] In one embodiment, the first initial adjustment target and the second initial adjustment target further include an adjustment step size for the token attribute parameter. The first execution module is specifically configured to: when the adjustment direction of the token attribute parameter of the final adjustment target is downward, use the largest adjustment step size among the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the adjustment step size of the token attribute parameter of the final adjustment target; and when the adjustment direction of the token attribute parameter of the final adjustment target is upward, use the average of the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the adjustment step size of the token attribute parameter of the final adjustment target.

[0025] In one embodiment, the adjustment device further includes a third execution module, which is configured to: obtain the upper limit of the performance of the storage system and a first initial value of the resources occupied by user services of the storage system; determine a second initial value of the resources occupied by background services of the storage system based on the upper limit of the performance of the storage system and the first initial value; configure the number of tokens in the user service token bucket based on the first initial value; and configure the number of tokens in the background service token bucket based on the second initial value.

[0026] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform any of the steps described in the first aspect above.

[0027] Fourthly, this application also provides a computer-readable storage medium. This computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs any of the steps described in the first aspect above.

[0028] Fifthly, this application also provides a computer program product. This computer program product includes a computer program that, when executed by a processor, implements any of the steps described in the first aspect above.

[0029] The aforementioned adjustment method, apparatus, computer equipment, computer-readable storage medium, and computer program product first acquire the current capacity parameters of the storage system and the current user service pressure parameters of the storage system. The capacity parameters characterize the processing capacity of the storage system, and the pressure parameters characterize the stability of user service pressure. Then, based on the capacity parameters, a pre-set user service token bucket is adjusted, and based on the capacity and pressure parameters, a pre-set background service token bucket is adjusted. Finally, responses are made to user services and background services based on the adjusted user service token buckets and background service token buckets. The adjustment method provided in this application can adjust the user service token bucket and background service token bucket in real time according to the current capacity parameters of the storage system and the user service pressure parameters. When the user service requires fewer resources, excess resources are allocated to the background service; when the user service requires more resources, the resources are returned to the user service. Using the adjustment method provided in this application can effectively improve the resource utilization of the storage system, thereby effectively improving the service quality of the storage system. Attached Figure Description

[0030] Figure 1 This is a flowchart illustrating the adjustment method in one embodiment;

[0031] Figure 2 This is a flowchart illustrating the adjustment method in another embodiment;

[0032] Figure 3 This is a flowchart illustrating the adjustment method in another embodiment;

[0033] Figure 4 This is a flowchart illustrating the adjustment method in another embodiment;

[0034] Figure 5 This is a flowchart illustrating the adjustment method in another embodiment;

[0035] Figure 6 This is a flowchart illustrating the adjustment method in another embodiment;

[0036] Figure 7 This is a structural block diagram of the adjustment device in one embodiment;

[0037] Figure 8 This is a structural block diagram of the adjustment device in another embodiment;

[0038] Figure 9 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0039] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0040] User services refer to the read and write requests made by front-end users to the system, while back-end services refer to services that ensure the normal operation of the storage system. User services and back-end services share the storage system's resources.

[0041] In existing technologies, different token buckets are set up for user services and backend services respectively to achieve resource allocation for user services and backend services.

[0042] However, using this method to allocate resources often results in the waste and underutilization of storage system resources, leading to poor service quality.

[0043] In view of this, this application provides an adjustment method that can improve the resource utilization of the storage system and improve the service quality of the storage system.

[0044] The adjustment method provided in this application embodiment can be executed by a computer device, which can be a server.

[0045] In one embodiment, such as Figure 1 As shown, an adjustment method is provided, which includes the following steps:

[0046] Step 101: Obtain the current capacity parameters of the storage system and the current pressure parameters of the user services of the storage system. The capacity parameters are used to characterize the processing capacity of the storage system, and the pressure parameters are used to characterize the pressure stability of the user services.

[0047] In this context, the user service refers to the read and write requests made by front-end users to the storage system.

[0048] Optionally, this capability parameter can be IO backlog, disk activity, IOPS (Input / Output Per Second), throughput, or bandwidth.

[0049] In one possible implementation, the storage system's capability parameters can be obtained through monitoring data from the storage system.

[0050] In another possible implementation, the capability parameters of the storage system can be obtained through testing tools.

[0051] The stress parameter of this user service is used to characterize the stress stability of the user service, that is, the fluctuation of the user service over a period of time.

[0052] One possible approach is to obtain the stress parameters of the user's business through stress testing.

[0053] In another possible implementation, the pressure parameters of the user's service can also be obtained by using a PID controller.

[0054] In another possible implementation, the pressure parameters of user services can be obtained by sampling the IOPS and processing latency of user services at the front end of the storage system. Specifically, when user services have small IO (<256K), the pressure parameters are calculated based on IOPS, and when user services have large IO (>256K), the pressure parameters are calculated based on IO processing latency. The calculated pressure parameters are then normalized by removing the maximum and minimum values ​​to eliminate interference.

[0055] In an optional embodiment of this application, since the storage system has multiple storage nodes, it is necessary to aggregate multiple user service pressure parameters on multiple storage nodes and perform a unified evaluation, that is, to calculate the average value of the user service pressure parameters.

[0056] Step 102: Adjust the pre-set user service token bucket according to the capability parameter, and adjust the pre-set backend service token bucket according to the capability parameter and the pressure parameter.

[0057] The token bucket refers to the token bucket algorithm. The principle of the token bucket algorithm is to put tokens into the bucket at a constant rate. If a request needs to be processed, it needs to get a token from the bucket first. When there are no tokens to take from the bucket, the service is rejected. When the bucket is full, newly added tokens are discarded or rejected. The token bucket can be used for rate limiting.

[0058] Optionally, the "back-end services" refer to services that ensure the normal operation of the storage system.

[0059] Optionally, the pre-configured user service token bucket refers to a user service token bucket whose parameters are pre-configured by technical personnel. These parameters can be the token issuance rate, the number of tokens issued, or the bucket capacity.

[0060] In one possible implementation, adjusting the pre-set user service token bucket according to the capability parameters can be done by adjusting the token distribution rate of the user service token bucket according to the capability parameters. For example, if the pre-set token distribution rate of the user service token bucket is to distribute a token into the bucket once every 10 seconds, the adjusted user service token bucket can distribute a token into the bucket once every 5 seconds.

[0061] In another possible implementation, adjusting the pre-set user service token bucket based on capability parameters can be done by adjusting the number of tokens issued to the user service token bucket based on capability parameters. For example, if the pre-set number of tokens issued to the user service token bucket is 10 tokens issued each time, the adjusted user service token bucket can issue 20 tokens each time.

[0062] In another possible implementation, adjusting the pre-set user service token bucket according to the capability parameters can be done by adjusting the capacity of the user service token bucket according to the capability parameters. For example, the pre-set capacity of the user service token bucket can be 50 tokens, and the capacity of the user service token bucket after adjustment can be 100 tokens.

[0063] Optionally, the pre-configured back-end business token bucket refers to a back-end business token bucket whose parameters are pre-configured by technical personnel. These parameters can be the token issuance rate, the number of tokens issued, or the bucket capacity.

[0064] In one possible implementation, adjusting the pre-set backend business token bucket based on capability and pressure parameters can be achieved by adjusting the token distribution rate of the backend business token bucket based on the capability and pressure parameters. For example, if the pre-set token distribution rate of the backend business token bucket is once every 10 seconds, the adjusted backend business token bucket can distribute tokens once every 5 seconds.

[0065] In another possible implementation, adjusting the pre-set backend business token bucket based on capability and pressure parameters can be done by adjusting the number of tokens issued to the backend business token bucket based on capability and pressure parameters. For example, if the pre-set number of tokens issued to the backend business token bucket is 10 tokens issued each time, the adjusted backend business token bucket can issue 20 tokens each time.

[0066] In another possible implementation, adjusting the pre-set backend business token bucket based on capability and pressure parameters can be done by adjusting the capacity of the backend business token bucket according to the capability and pressure parameters. For example, the pre-set capacity of the backend business token bucket can be 50 tokens, and the capacity of the backend business token bucket after adjustment can be 100 tokens.

[0067] Step 103: Respond to user services based on the adjusted user service token bucket, and respond to backend services based on the adjusted backend service token bucket.

[0068] In one possible implementation, the adjustment process described above can be understood as a secondary allocation of storage system resources. For example, before the adjustment, the token distribution rate of the user service token bucket was once every 10 seconds, with 10 tokens distributed each time. If the resource requirement for the user service is relatively low during the current time period based on capability parameters, the token bucket can be adjusted so that the token distribution rate is once every 20 seconds, with 10 tokens distributed each time. The user service can then retrieve tokens from the adjusted token bucket, allowing the storage system to respond to the user service. Similarly, for example, before the adjustment, the token distribution rate of the background service token bucket was once every 20 seconds, with 10 tokens distributed each time. If the resource requirement for the user service is relatively low during the current time period based on capability and pressure parameters, and the background service can obtain more resources, the token bucket can be adjusted so that the token distribution rate is once every 10 seconds, with 10 tokens distributed each time. The background service can then retrieve tokens from the adjusted token bucket, allowing the storage system to respond to the background service.

[0069] The aforementioned adjustment method first obtains the current capacity parameters of the storage system and the current user service pressure parameters. The capacity parameters characterize the processing capacity of the storage system, and the pressure parameters characterize the stability of user service pressure. Then, it adjusts the pre-set user service token bucket based on the capacity parameters, and adjusts the pre-set backend service token bucket based on the capacity and pressure parameters. Finally, it responds to user services and backend services based on the adjusted user service token buckets and backend service token buckets. The adjustment method provided in this application can adjust the user service token bucket and backend service token bucket in real time according to the current capacity parameters of the storage system and the user service pressure parameters. When the user service requires fewer resources, excess resources are allocated to the backend service; when the user service requires more resources, resources are returned to the user service. Using the adjustment method provided in this application can effectively improve the resource utilization of the storage system, thereby effectively improving the service quality of the storage system.

[0070] In one embodiment, such as Figure 2 As shown, this capability parameter includes IO backlog. The process of adjusting the pre-configured user service token bucket based on this capability parameter includes the following steps:

[0071] Step 201: Determine the adjustment target of the user service token bucket based on the IO backlog. The adjustment target of the user service token bucket includes the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters.

[0072] Optionally, the IO backlog refers to the number of queued IOs in the current storage system, as well as the speed at which the current storage system processes IOs.

[0073] Optionally, the adjustment direction can be upward or downward.

[0074] Optionally, the adjustment step size can be any number, such as 5, 10, etc., or it can be a multiple, such as 2 times or 5 times the current step size.

[0075] In one possible implementation, if the current storage system's I / O processing speed is slow, I / O will accumulate, meaning the I / O accumulation is large. In this case, the adjustment direction of the token attribute parameter in the user's service token bucket adjustment target is downward, and the adjustment step size of the token attribute parameter in the user's service token bucket adjustment target is determined based on the storage system's I / O processing speed and the I / O accumulation.

[0076] In another possible implementation, if the current storage system processes IO quickly, then IO will not cause accumulation, that is, the amount of IO accumulation is small or non-existent. In this case, the adjustment direction of the token attribute parameter in the user business token bucket adjustment target is upward, and the adjustment step size of the token attribute parameter in the user business token bucket adjustment target is determined according to the storage system IO processing speed and IO accumulation.

[0077] Step 202: Adjust the token attribute parameters of the user's service token bucket according to the adjustment target of the user's service token bucket.

[0078] In one possible implementation, assuming the adjustment direction of the token attribute parameter in the adjustment target of the user business token bucket is upward, the adjustment step size of the token attribute parameter in the adjustment target of the user business token bucket is 10, and the token attribute parameter of the user business token bucket was 15 tokens issued every 20 seconds before the adjustment process, then the result of adjusting the token attribute parameter of the user business token bucket is 15 tokens issued every 10 seconds.

[0079] In another possible implementation, assuming the adjustment direction of the token attribute parameter in the adjustment target of the user business token bucket is upward, the adjustment step size of the token attribute parameter in the adjustment target of the user business token bucket is 10, and the token attribute parameter of the user business token bucket was 15 tokens issued every 20 seconds before the adjustment process, then the result of adjusting the token attribute parameter of the user business token bucket is 25 tokens issued every 20 seconds.

[0080] In another possible implementation, assuming the adjustment direction of the token attribute parameter in the adjustment target of the user business token bucket is upward, the adjustment step size of the token attribute parameter in the adjustment target of the user business token bucket is 2, and the token attribute parameter of the user business token bucket was 15 tokens issued every 20 seconds before the adjustment process, then the result of adjusting the token attribute parameter of the user business token bucket is 30 tokens issued every 20 seconds.

[0081] In another possible implementation, assuming the adjustment direction of the token attribute parameter in the adjustment target of the user business token bucket is upward, the adjustment step size of the token attribute parameter in the adjustment target of the user business token bucket is 2, and the token attribute parameter of the user business token bucket was 15 tokens issued every 20 seconds before the adjustment process, then the result of adjusting the token attribute parameter of the user business token bucket is 15 tokens issued every 10 seconds.

[0082] In one embodiment, such as Figure 3As shown, the capability parameter also includes a disk busy parameter, which characterizes the disk's workload. The adjustment process for the pre-set background service token bucket based on this capability parameter and the stress parameter includes the following steps:

[0083] Step 301: Determine the first initial adjustment target for the background service token bucket based on the disk busy parameter and the pressure parameter.

[0084] Optionally, the disk busy parameter refers to the current disk utilization of each disk in the storage system. When the disk utilization exceeds a certain threshold, the disk is considered busy. When the disk utilization is consistently below a certain threshold, the disk is considered idle. This threshold can be preset by technicians.

[0085] Optionally, the first initial adjustment target of the user business token bucket may also include the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters.

[0086] In one possible implementation, the adjustment direction and adjustment step size of the token attribute parameters in the first initial adjustment target of the backend business token bucket can be determined based on the disk's busy level and pressure parameters.

[0087] Step 302: Determine the second initial adjustment target for the backend service token bucket based on the IO backlog.

[0088] In one possible implementation, if the current storage system's I / O processing speed is slow, I / O will cause a backlog, i.e., the I / O backlog is large. In this case, the adjustment direction of the token attribute parameter in the second initial adjustment target of the backend business token bucket is downward, and the adjustment step size of the token attribute parameter in the second initial adjustment target of the backend business token bucket is determined according to the storage system's I / O processing speed and the I / O backlog.

[0089] In another possible implementation, if the current storage system processes IO quickly, then IO will not cause accumulation, that is, the amount of IO accumulation is small or non-existent. In this case, the adjustment direction of the token attribute parameter in the second initial adjustment target of the backend business token bucket is upward, and the adjustment step size of the token attribute parameter in the second initial adjustment target of the backend business token bucket is determined according to the storage system's IO processing speed and the amount of IO accumulation.

[0090] Step 303: Determine the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target. The final adjustment target of the backend business token bucket includes the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters.

[0091] In an optional embodiment of this application, both the first initial adjustment target and the second initial adjustment target include the adjustment direction of the token attribute parameter. Determining the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target includes: if there is a downward adjustment direction among the adjustment directions included in the first initial adjustment target and the second initial adjustment target, the downward adjustment direction is used as the adjustment direction of the token attribute parameter of the final adjustment target; if both the first initial adjustment target and the second initial adjustment target include upward adjustment directions, the upward adjustment direction is used as the adjustment direction of the token attribute parameter of the final adjustment target.

[0092] In one possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted upwards, and the token attribute parameter of the second initial adjustment target is also adjusted upwards, then the token attribute parameter of the final adjustment target is adjusted upwards.

[0093] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted upwards and the token attribute parameter of the second initial adjustment target is adjusted downwards, then the token attribute parameter of the final adjustment target is adjusted downwards.

[0094] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted downwards and the token attribute parameter of the second initial adjustment target is adjusted upwards, then the token attribute parameter of the final adjustment target is adjusted downwards.

[0095] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted downwards, and the token attribute parameter of the second initial adjustment target is also adjusted downwards, then the token attribute parameter of the final adjustment target is adjusted downwards.

[0096] In an optional embodiment of this application, the first initial adjustment target and the second initial adjustment target further include an adjustment step size for the token attribute parameter. Determining the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target includes: if the adjustment direction of the token attribute parameter of the final adjustment target is downward, using the largest adjustment step size among the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the token attribute parameter adjustment step size of the final adjustment target; if the adjustment direction of the token attribute parameter of the final adjustment target is upward, using the average of the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the token attribute parameter adjustment step size of the final adjustment target.

[0097] In one possible implementation, if the adjustment direction of the token attribute parameter of the final adjustment target is downward, and the adjustment step size of the first initial adjustment target is 10, and the adjustment step size of the second initial adjustment target is 15, then the adjustment step size of 15 included in the second initial adjustment target is determined to be the adjustment step size of the token attribute parameter of the final adjustment target.

[0098] In another possible implementation, if the adjustment direction of the token attribute parameter of the final adjustment target is downward, and the adjustment step size of the first initial adjustment target is 15, and the adjustment step size of the second initial adjustment target is 10, then the adjustment step size of 15 of the first initial adjustment target is determined to be the adjustment step size of the token attribute parameter of the final adjustment target.

[0099] In another possible implementation, if the token attribute parameter of the final adjustment target is adjusted upwards, and the adjustment step size of the first initial adjustment target is 10, and the adjustment step size of the second initial adjustment target is 20, then the adjustment step size of the token attribute parameter of the final adjustment target is determined to be 15.

[0100] In another possible implementation, if the token attribute parameter of the final adjustment target is adjusted upwards, and the first initial adjustment target includes an adjustment step size of 5, and the second initial adjustment target includes an adjustment step size of 15, then the token attribute parameter adjustment step size of the final adjustment target is determined to be 10.

[0101] Step 304: Adjust the token attribute parameters of the backend business token bucket according to the final adjustment goal of the backend business token bucket.

[0102] In one possible implementation, assuming the direction of the token attribute parameter adjustment in the final adjustment target of the backend business token bucket is upward, the adjustment step size of the token attribute parameter in the final adjustment target of the backend business token bucket is 10, and the token attribute parameter of the backend business token bucket was 15 tokens issued every 20 seconds before the token attribute parameter adjustment process, then the result of adjusting the token attribute parameter of the backend business token bucket is 15 tokens issued every 10 seconds.

[0103] In another possible implementation, assuming the direction of the token attribute parameter adjustment in the final adjustment target of the backend business token bucket is upward, the adjustment step size of the token attribute parameter in the final adjustment target of the backend business token bucket is 10, and the token attribute parameter of the backend business token bucket was 15 tokens issued every 20 seconds before the token attribute parameter adjustment process, then the result of adjusting the token attribute parameter of the backend business token bucket is 25 tokens issued every 20 seconds.

[0104] In another possible implementation, assuming the direction of the token attribute parameter adjustment in the final adjustment target of the backend business token bucket is upward, the adjustment step size of the token attribute parameter in the final adjustment target of the backend business token bucket is 2, and the token attribute parameter of the backend business token bucket was 15 tokens issued every 20 seconds before the token attribute parameter adjustment process, then the result of adjusting the token attribute parameter of the backend business token bucket is 30 tokens issued every 20 seconds.

[0105] In another possible implementation, assuming the direction of the token attribute parameter adjustment in the final adjustment target of the backend business token bucket is upward, the adjustment step size of the token attribute parameter in the final adjustment target of the backend business token bucket is 2, and the token attribute parameter of the backend business token bucket was 15 tokens issued every 20 seconds before the token attribute parameter adjustment process, then the result of adjusting the token attribute parameter of the backend business token bucket is 15 tokens issued every 10 seconds.

[0106] In one embodiment, such as Figure 4 As shown, determining the first initial adjustment target for the backend service token bucket based on the disk busy parameter and the stress parameter includes the following steps:

[0107] Step 401: Determine the first sub-adjustment target of the background service token bucket based on the disk busy parameter.

[0108] In one possible implementation, if the disk utilization of the current storage system is greater than a preset threshold, it is determined that the disk is busy. In this case, the adjustment direction of the token attribute parameter in the first sub-adjustment target of the back-end business token bucket is downward, and the adjustment step size of the token attribute parameter in the first sub-adjustment target of the back-end business token bucket is determined according to the current inflow of the storage system disk.

[0109] In another possible implementation, if the current disk utilization of the storage system is less than or equal to a preset threshold, then the disk is determined to be relatively idle. In this case, the adjustment direction of the token attribute parameter in the first sub-adjustment target of the back-end business token bucket is upward, and the adjustment step size of the token attribute parameter in the first sub-adjustment target of the back-end business token bucket is determined according to the current inflow of the storage system disk.

[0110] Step 402: Determine the second sub-adjustment target of the back-end business token bucket based on the pressure parameter.

[0111] In one possible implementation, if the current storage system's pressure parameters are not stable, it indicates that the backend service is affecting the user's service. In this case, the adjustment direction of the token attribute parameter in the second sub-adjustment target of the backend service's token bucket is downward, and the adjustment step size of the token attribute parameter in the second sub-adjustment target of the backend service's token bucket is determined based on the stability of the pressure parameters.

[0112] In another possible implementation, if the current storage system's pressure parameters are relatively stable, it indicates that the background services have not affected the user's services. In this case, the adjustment direction of the token attribute parameters in the second sub-adjustment target of the background service's token bucket is upward, and the adjustment step size of the token attribute parameters in the second sub-adjustment target of the background service's token bucket is determined based on the stability of the pressure parameters.

[0113] Step 403: Determine the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target.

[0114] In an optional embodiment of this application, both the first sub-adjustment target and the second sub-adjustment target include an adjustment direction for the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: if there is a downward adjustment direction among the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target, using the downward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target; if both the first sub-adjustment target and the second sub-adjustment target include upward adjustment directions, using the upward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target.

[0115] In one possible implementation, if the token attribute parameter of the first sub-adjustment target is adjusted upwards and the token attribute parameter of the second sub-adjustment target is also adjusted upwards, then the token attribute parameter of the first initial adjustment target is adjusted upwards.

[0116] In another possible implementation, if the token attribute parameter of the first sub-adjustment target is adjusted upwards and the token attribute parameter of the second sub-adjustment target is adjusted downwards, then the token attribute parameter of the first initial adjustment target is adjusted downwards.

[0117] In another possible implementation, if the token attribute parameter of the first sub-adjustment target is adjusted downwards and the token attribute parameter of the second sub-adjustment target is adjusted upwards, then the token attribute parameter of the first initial adjustment target is adjusted downwards.

[0118] In another possible implementation, if the token attribute parameter of the first sub-adjustment target is adjusted downwards and the token attribute parameter of the second sub-adjustment target is also adjusted downwards, then the token attribute parameter of the first initial adjustment target is adjusted downwards.

[0119] In an optional embodiment of this application, the first sub-adjustment target and the second sub-adjustment target further include an adjustment step size for the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: when the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, using the largest adjustment step size among the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the token attribute parameter adjustment step size of the first initial adjustment target; when the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, using the average of the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the token attribute parameter adjustment step size of the first initial adjustment target.

[0120] In one possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted downwards, and the adjustment step size of the first sub-adjustment target is 10, and the adjustment step size of the second sub-adjustment target is 15, then the adjustment step size of 15 of the second sub-adjustment target is determined to be the adjustment step size of the token attribute parameter of the first initial adjustment target.

[0121] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted downwards, and the adjustment step size of the first sub-adjustment target is 15, and the adjustment step size of the second sub-adjustment target is 10, then the adjustment step size of 15 of the first sub-adjustment target is determined to be the adjustment step size of the token attribute parameter of the first initial adjustment target.

[0122] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted upwards, and the adjustment step size of the first sub-adjustment target is 10, and the adjustment step size of the second sub-adjustment target is 20, then the adjustment step size of the token attribute parameter of the first initial adjustment target is determined to be 15.

[0123] In another possible implementation, if the token attribute parameter of the first initial adjustment target is adjusted upwards, and the first sub-adjustment target includes an adjustment step size of 5, and the second sub-adjustment target includes an adjustment step size of 15, then the token attribute parameter adjustment step size of the first initial adjustment target is determined to be 10.

[0124] In one embodiment, such as Figure 5 As shown, before adjusting the pre-set user service token bucket according to the capability parameter, and before adjusting the pre-set backend service token bucket according to the capability parameter and the pressure parameter, the method further includes the following steps:

[0125] Step 501: Obtain the upper limit of the performance of the storage system and the initial value of the resources occupied by user services in the storage system.

[0126] In one possible implementation, the storage system has several nodes, each with several disks. The disk media type determines its processing speed. Therefore, the IOPS and BPS that a single disk can handle can be estimated based on the disk media type. Then, based on the number of disks and nodes, the upper limit of the overall storage system's performance and the performance value of a single head unit can be estimated. The head unit refers to the server used to handle user services. The initial value of the resources occupied by user services in the storage system is determined to be the estimated performance value of a single head unit.

[0127] Step 502: Determine the second initial value of the resources occupied by the background services of the storage system based on the upper limit of the performance of the storage system and the first initial value.

[0128] In one possible implementation, the back-end service and the user service share the storage system's resources, so the second initial value of the resources occupied by the back-end service can be determined based on the storage system's performance ceiling and the first initial value of the resources occupied by the user service.

[0129] Step 503: Configure the number of tokens in the user business token bucket according to the first initial value, and configure the number of tokens in the backend business token bucket according to the second initial value.

[0130] In one possible implementation, resources can be allocated according to a certain ratio based on a first initial value of the resources occupied by the user business in the storage system and a second initial value of the resources occupied by the backend business, and the initial parameters of the backend business token bucket and the user business token bucket can be determined. These initial parameters can be the token issuance rate, issuance speed, and bucket capacity in the token bucket.

[0131] In one embodiment, such as Figure 6 As shown, another adjustment method is provided, which includes the following steps:

[0132] Step 601: Obtain the current capacity parameters of the storage system and the current user service pressure parameters of the storage system.

[0133] Step 602: The capability parameter includes the IO backlog. Based on the IO backlog, the adjustment target of the user service token bucket is determined. The adjustment target of the user service token bucket includes the adjustment direction of the token attribute parameter and the adjustment step size of the token attribute parameter.

[0134] Step 603: Adjust the token attribute parameters of the user's business token bucket according to the adjustment target of the user's business token bucket.

[0135] Step 604: The capability parameter also includes a disk busy parameter. The first sub-adjustment target of the background service token bucket is determined based on the disk busy parameter.

[0136] Step 605: Determine the second sub-adjustment target of the back-end business token bucket based on the pressure parameter.

[0137] Step 606: Both the first sub-adjustment target and the second sub-adjustment target include the adjustment direction of the token attribute parameter. If the adjustment direction included in the first sub-adjustment target and the second sub-adjustment target is downward, the downward adjustment direction shall be used as the adjustment direction of the token attribute parameter of the first initial adjustment target. If the adjustment direction included in the first sub-adjustment target and the second sub-adjustment target is upward, the upward adjustment direction shall be used as the adjustment direction of the token attribute parameter of the first initial adjustment target.

[0138] Step 607: The first sub-adjustment target and the second sub-adjustment target also include the adjustment step size of the token attribute parameter. If the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, the largest adjustment step size among the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target is used as the adjustment step size of the token attribute parameter of the first initial adjustment target. If the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, the average of the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target is used as the adjustment step size of the token attribute parameter of the first initial adjustment target.

[0139] Step 608: Determine the second initial adjustment target for the backend service token bucket based on the IO backlog.

[0140] Step 609: Both the first initial adjustment target and the second initial adjustment target include adjustment directions for token attribute parameters. If there is a downward adjustment direction among the adjustment directions included in the first initial adjustment target and the second initial adjustment target, the downward adjustment direction shall be used as the adjustment direction for the token attribute parameters of the final adjustment target. If both the first initial adjustment target and the second initial adjustment target include upward adjustment directions, the upward adjustment direction shall be used as the adjustment direction for the token attribute parameters of the final adjustment target.

[0141] Step 610: The first initial adjustment target and the second initial adjustment target also include the adjustment step size of the token attribute parameter. If the adjustment direction of the token attribute parameter of the final adjustment target is downward, the largest adjustment step size among the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target is used as the adjustment step size of the token attribute parameter of the final adjustment target. If the adjustment direction of the token attribute parameter of the final adjustment target is upward, the average of the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target is used as the adjustment step size of the token attribute parameter of the final adjustment target.

[0142] Step 611: Respond to user services based on the adjusted user service token bucket, and respond to backend services based on the adjusted backend service token bucket.

[0143] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0144] Based on the same inventive concept, this application also provides an adjustment device for implementing the X adjustment method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more adjustment device embodiments provided below can be found in the limitations of the adjustment method described above, and will not be repeated here.

[0145] In one embodiment, such as Figure 7 As shown, an adjustment device 700 is provided, including: an acquisition module 701, a first execution module 702, and a second execution module 703, wherein:

[0146] The acquisition module 701 is used to acquire the current capacity parameters of the storage system and the current pressure parameters of the user services of the storage system. The capacity parameters are used to characterize the processing capacity of the storage system, and the pressure parameters are used to characterize the pressure stability of the user services.

[0147] The first execution module 702 is used to adjust the pre-set user business token bucket according to the capability parameter, and to adjust the pre-set backend business token bucket according to the capability parameter and the pressure parameter.

[0148] The second execution module 703 is used to respond to user services based on the adjusted user service token bucket and to respond to backend services based on the adjusted backend service token bucket.

[0149] In one embodiment, the capability parameter includes the IO backlog. The first execution module 702 is specifically used to: determine the adjustment target of the user service token bucket based on the IO backlog, the adjustment target of the user service token bucket including the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters; and adjust the token attribute parameters of the user service token bucket according to the adjustment target of the user service token bucket.

[0150] In one embodiment, the capability parameter further includes a disk busy parameter, which characterizes the disk's busy level. The first execution module 702 is specifically configured to: determine a first initial adjustment target for the background service token bucket based on the disk busy parameter and the pressure parameter; determine a second initial adjustment target for the background service token bucket based on the IO backlog; determine a final adjustment target for the background service token bucket based on the first and second initial adjustment targets, the final adjustment target including the adjustment direction and adjustment step size of the token attribute parameters; and adjust the token attribute parameters of the background service token bucket according to the final adjustment target.

[0151] In one embodiment, the first execution module 702 is specifically configured to: determine a first sub-adjustment target for the background service token bucket based on the disk busy parameter; determine a second sub-adjustment target for the background service token bucket based on the pressure parameter; and determine a first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target.

[0152] In one embodiment, both the first sub-adjustment target and the second sub-adjustment target include an adjustment direction for the token attribute parameter. The first execution module 702 is specifically configured to: when the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target include a downward adjustment direction, use the downward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target; and when the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target are both upward adjustment directions, use the upward adjustment direction as the adjustment direction for the token attribute parameter of the first initial adjustment target.

[0153] In one embodiment, the first sub-adjustment target and the second sub-adjustment target further include an adjustment step size for the token attribute parameter. The first execution module 702 is specifically configured to: when the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, use the largest adjustment step size among the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the adjustment step size of the token attribute parameter of the first initial adjustment target; and when the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, use the average of the adjustment step sizes included in the first sub-adjustment target and the second sub-adjustment target as the adjustment step size of the token attribute parameter of the first initial adjustment target.

[0154] In one embodiment, both the first initial adjustment target and the second initial adjustment target include an adjustment direction for the token attribute parameter. The first execution module 702 is specifically configured to: if there is a downward adjustment direction among the adjustment directions included in the first initial adjustment target and the second initial adjustment target, use the downward adjustment direction as the adjustment direction for the token attribute parameter of the final adjustment target; and if both the first initial adjustment target and the second initial adjustment target include upward adjustment directions, use the upward adjustment direction as the adjustment direction for the token attribute parameter of the final adjustment target.

[0155] In one embodiment, the first initial adjustment target and the second initial adjustment target further include an adjustment step size for the token attribute parameter. The first execution module 702 is specifically configured to: when the adjustment direction of the token attribute parameter of the final adjustment target is downward, use the largest adjustment step size among the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the adjustment step size of the token attribute parameter of the final adjustment target; and when the adjustment direction of the token attribute parameter of the final adjustment target is upward, use the average of the adjustment step sizes included in the first initial adjustment target and the second initial adjustment target as the adjustment step size of the token attribute parameter of the final adjustment target.

[0156] In one embodiment, such as Figure 8 As shown, another adjustment device 800 is provided, which includes, in addition to the modules included in the adjustment device 700, a third execution module 704.

[0157] In one embodiment, the third execution module 704 is configured to: obtain the upper limit of the performance of the storage system and a first initial value of the resources occupied by user services of the storage system; determine a second initial value of the resources occupied by background services of the storage system based on the upper limit of the performance of the storage system and the first initial value; configure the number of tokens in the user service token bucket based on the first initial value, and configure the number of tokens in the background service token bucket based on the second initial value.

[0158] Each module in the aforementioned adjustment device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0159] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 9 As shown, this computer device includes a processor, memory, input / output interfaces (I / O), and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores data. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communicating with external terminals via a network connection. When the computer program is executed by the processor, it implements an adjustment method.

[0160] Those skilled in the art will understand that Figure 9 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0161] In one embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps described in any of the above embodiments.

[0162] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, performs the steps described in any of the above embodiments.

[0163] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps described in any of the above embodiments.

[0164] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media 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), magnetic 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. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0165] The technical features of the above embodiments can be combined in any way. For the sake of brevity, 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.

[0166] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. An adjustment method, characterized in that, The method includes: The system obtains the current capacity parameters of the storage system and the current user service pressure parameters of the storage system. The capacity parameters characterize the processing capacity of the storage system, and the pressure parameters characterize the pressure stability of the user services. The capacity parameters include IO backlog and disk busy parameters, with the disk busy parameter characterizing the disk's activity level. The pressure parameters are the average of the user service pressure parameters across multiple storage nodes of the storage system. The adjustment target of the user service token bucket is determined based on the IO backlog. The adjustment target of the user service token bucket includes the adjustment direction of the token attribute parameters and the adjustment step size of the token attribute parameters. The token attribute parameters of the user service token bucket are adjusted according to the adjustment target of the user service token bucket. A first initial adjustment target for the background service token bucket is determined based on the disk busy parameter and the pressure parameter; a second initial adjustment target for the background service token bucket is determined based on the IO backlog; a final adjustment target for the background service token bucket is determined based on the first and second initial adjustment targets, the final adjustment target including the adjustment direction and adjustment step size of the token attribute parameters; and the token attribute parameters of the background service token bucket are adjusted according to the final adjustment target. The system responds to user services based on the adjusted user service token bucket, and also responds to backend services based on the adjusted backend service token bucket.

2. The method according to claim 1, characterized in that, The step of determining the first initial adjustment target of the background service token bucket based on the disk busy parameter and the pressure parameter includes: The first sub-adjustment target of the background service token bucket is determined based on the disk busy parameter. Determine the second sub-adjustment target of the back-end business token bucket based on the pressure parameters; The first initial adjustment target is determined based on the first sub-adjustment target and the second sub-adjustment target.

3. The method according to claim 2, characterized in that, Both the first sub-adjustment target and the second sub-adjustment target include the adjustment direction of the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: If there is a downward adjustment direction among the adjustment directions included in the first sub-adjustment target and the second sub-adjustment target, the downward adjustment direction will be used as the adjustment direction of the token attribute parameter of the first initial adjustment target; If both the first sub-adjustment target and the second sub-adjustment target include upward adjustment directions, the upward adjustment direction will be used as the adjustment direction of the token attribute parameter of the first initial adjustment target.

4. The method according to claim 2, characterized in that, Both the first sub-adjustment target and the second sub-adjustment target include an adjustment step size for the token attribute parameter. Determining the first initial adjustment target based on the first sub-adjustment target and the second sub-adjustment target includes: When the adjustment direction of the token attribute parameter of the first initial adjustment target is downward, the largest adjustment step between the adjustment step size included in the first sub-adjustment target and the adjustment step size included in the second sub-adjustment target is taken as the adjustment step size of the token attribute parameter of the first initial adjustment target. When the adjustment direction of the token attribute parameter of the first initial adjustment target is upward, the average of the adjustment step size included in the first sub-adjustment target and the adjustment step size included in the second sub-adjustment target is used as the adjustment step size of the token attribute parameter of the first initial adjustment target.

5. The method according to claim 2, characterized in that, Both the first initial adjustment target and the second initial adjustment target include the adjustment direction of the token attribute parameters. Determining the final adjustment target of the backend business token bucket based on the first initial adjustment target and the second initial adjustment target includes: If there is a downward adjustment direction among the adjustment directions included in the first initial adjustment target and the second initial adjustment target, the downward adjustment direction will be used as the adjustment direction of the token attribute parameter of the final adjustment target; If both the first initial adjustment target and the second initial adjustment target include an upward adjustment direction, the upward adjustment direction will be used as the adjustment direction of the token attribute parameter of the final adjustment target.

6. The method according to claim 1, characterized in that, The method further includes: Obtain the upper limit of the performance of the storage system and the first initial value of the resources occupied by user services in the storage system; A second initial value for the resources occupied by the background services of the storage system is determined based on the upper limit of the performance of the storage system and the first initial value. Configure the number of tokens in the user service token bucket according to the first initial value, and configure the number of tokens in the backend service token bucket according to the second initial value.

7. An adjustment device, characterized in that, The device includes: The acquisition module is used to acquire the current capacity parameters of the storage system and the current user service pressure parameters of the storage system. The capacity parameters are used to characterize the processing capacity of the storage system, and the pressure parameters are used to characterize the pressure stability of the user services. The capacity parameters include IO backlog and disk busy parameters. The disk busy parameters are used to characterize the disk's busy level. The pressure parameters are the average of the user service pressure parameters on multiple storage nodes of the storage system. The first execution module is configured to: determine a pre-set adjustment target for the user service token bucket based on the IO backlog, wherein the adjustment target includes the adjustment direction and adjustment step size of token attribute parameters; adjust the token attribute parameters of the user service token bucket according to the adjustment target; determine a first initial adjustment target for the background service token bucket based on the disk busy parameter and the pressure parameter; determine a second initial adjustment target for the background service token bucket based on the IO backlog; determine a final adjustment target for the background service token bucket based on the first and second initial adjustment targets, wherein the final adjustment target includes the adjustment direction and adjustment step size of token attribute parameters; and adjust the token attribute parameters of the background service token bucket according to the final adjustment target. The second execution module is used to respond to user services based on the adjusted user service token bucket and to respond to backend services based on the adjusted backend service token bucket.

8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Pressure test method and device for log service system

    CN111159009A

  • Load balancing method and device, computer equipment, storage medium and product

    CN115334082A