Storage backend performance optimization method, apparatus and system, and electronic device
By acquiring the protocol component cascading depth and business model statistics of the storage backend, and dynamically adjusting the arbitration parameters, the problem of insufficient storage backend performance in existing technologies is solved, and efficient data transmission under different business scenarios is achieved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- INSPUR SUZHOU INTELLIGENT TECH CO LTD
- Filing Date
- 2025-11-26
- Publication Date
- 2026-06-04
AI Technical Summary
In existing technologies, SAS devices use fixed default values for arbitration parameters, resulting in low performance of the storage backend in most business scenarios, making it unable to adapt to different business needs.
By obtaining the cascading depth of the protocol components in the storage backend, configuring basic arbitration parameters, and iteratively optimizing them based on the statistical results of the business model, the target arbitration parameters are obtained to match the actual business scenario.
It improves the performance of the storage backend, enabling it to transmit data more efficiently in different business scenarios and enhancing the overall performance of the storage device.
Smart Images

Figure CN2025137920_04062026_PF_FP_ABST
Abstract
Description
A method, apparatus, system, and electronic device for optimizing storage backend performance.
[0001] Cross-reference to related applications
[0002] This application claims priority to Chinese Patent Application No. 202411735919.5, filed on November 29, 2024, entitled "A method, apparatus, system and electronic device for optimizing the performance of a storage backend", the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application relates to the field of computer technology, and in particular to a method, apparatus, system, and electronic device for optimizing storage backend performance. Background Technology
[0004] In storage device networking, the storage backend mainly connects to hard drives via the Serial Attached SCSI (SAS) protocol. The SAS protocol is a point-to-point protocol, which only allows communication between two SAS devices per transmission. Therefore, how to arbitrate bus access rights for SAS devices has become a key research topic.
[0005] In related technologies, arbitration parameters are typically configured in the SAS card firmware. These parameters include the time and number of attempts to establish a connection. SAS devices, such as SAS protocol components on the bus, request arbitration according to these parameters.
[0006] However, current arbitration parameters generally use default fixed values. In most business scenarios, the arbitration parameters tend to be too large, which reduces the performance of the storage backend. Therefore, storage devices based on this technology have the technical problem of low overall performance. Summary of the Invention
[0007] This application provides a method, apparatus, system, and electronic device for optimizing the performance of a storage backend, in order to address the shortcomings of related technologies, such as reduced performance of the storage backend.
[0008] The first aspect of this application provides a method for optimizing storage backend performance, including:
[0009] Obtain the cascading depth of the protocol components in the storage backend;
[0010] Configure the basic arbitration parameters of the storage backend according to the protocol component cascading depth of the storage backend;
[0011] Business model statistics are performed on the storage backend to obtain business model statistics results; wherein, the business model statistics results include the business volume information of the business model of the storage backend within a preset period and the allocation ratio corresponding to each business volume;
[0012] Based on the statistical results of the business model, the basic arbitration parameters are iteratively optimized to obtain the target arbitration parameters;
[0013] Among them, the storage backend exhibits the best performance under the target arbitration parameters.
[0014] In one optional implementation, obtaining the protocol component cascading depth of the storage backend includes:
[0015] Send a topology discovery command to the protocol component of the storage backend to obtain the command response result returned by the protocol component;
[0016] The cascading depth of the protocol components in the storage backend is determined based on the topology information represented by the command response results fed back by the protocol components.
[0017] In one optional implementation, sending the topology discovery command to the protocol component of the storage backend includes:
[0018] If the preset command triggering conditions are met in the current scenario, a topology discovery command is triggered and sent to the protocol component of the storage backend;
[0019] Specifically, when the storage backend enters the system startup phase or the protocol component of the storage backend undergoes a topology change, it is determined that the current scenario meets the preset command triggering conditions.
[0020] In one optional implementation, determining the cascading depth of the storage backend protocol components based on the topology information represented by the command response results fed back by the protocol components includes:
[0021] Based on the topology information represented by the command response results fed back by the protocol components, determine the configuration port attribute information of each protocol component in the storage backend;
[0022] The cascading depth of the protocol components in the storage backend is determined based on the configuration port attribute information of each protocol component.
[0023] In one optional implementation, configuring the basic arbitration parameters of the storage backend based on the protocol component cascading depth of the storage backend includes:
[0024] Obtain the default arbitration parameter configuration table of the storage backend;
[0025] Based on the protocol component cascading depth of the storage backend, filter the default arbitration parameters that match the protocol component cascading depth in the default arbitration parameter configuration table;
[0026] Configure the basic arbitration parameters of the storage backend based on the default arbitration parameters.
[0027] In one optional implementation, the step of filtering default arbitration parameters that match the protocol component cascading depth in the default arbitration parameter configuration table based on the protocol component cascading depth of the storage backend includes:
[0028] Based on the protocol component cascading depth of the storage backend, filter the command class default arbitration parameters that match the protocol component cascading depth in the command class default arbitration parameter configuration table;
[0029] Based on the cascading depth of the protocol components in the storage backend, filter the default arbitration parameters of the data class that match the cascading depth of the protocol components in the default arbitration parameter configuration table for the data class;
[0030] The default arbitration parameter configuration table is divided into a command-type default arbitration parameter configuration table and a data-type default arbitration parameter configuration table. The default arbitration parameters are divided into command-type default arbitration parameters and data-type default arbitration parameters.
[0031] In one optional implementation, the step of filtering the default arbitration parameters of the data class that match the protocol component cascading depth in the data class default arbitration parameter configuration table based on the protocol component cascading depth of the storage backend includes:
[0032] Based on the cascading depth of the protocol components in the storage backend, select target arbitration parameter determination rules that match the cascading depth of the protocol components from the default arbitration parameter configuration table for data classes;
[0033] According to the target arbitration parameter determination rules, and based on the preset default determination coefficients, the default arbitration parameters for the data class that match the cascading depth of the protocol components are determined.
[0034] In one optional implementation, the step of iteratively optimizing the basic arbitration parameters based on the statistical results of the business model includes:
[0035] Based on the allocation ratio corresponding to each business volume, the business volume with the highest allocation ratio is taken as the typical model business volume of the storage backend within the preset period.
[0036] Based on the business volume information of the business model within the preset period, determine the maximum model business volume of the storage backend within the preset period;
[0037] The basic arbitration parameters are iteratively optimized based on the typical and maximum model traffic volumes of the storage backend within the preset period.
[0038] In one optional implementation, the step of iteratively optimizing the basic arbitration parameters based on the typical and maximum model traffic volumes of the storage backend within the preset period includes:
[0039] Based on the typical model business volume of the storage backend within the preset period, determine the current first arbitration time parameter of the storage backend;
[0040] The current second arbitration time parameter of the storage backend is determined based on the maximum model business volume of the storage backend within a preset period.
[0041] The basic arbitration parameters are iteratively optimized based on the current first arbitration time parameter and the current second arbitration time parameter of the storage backend.
[0042] The business model statistics include the typical and maximum model business volume of the storage backend within the preset period.
[0043] In one optional implementation, determining the current first arbitration time parameter of the storage backend based on the typical model traffic volume of the storage backend within the preset period includes:
[0044] The current first arbitration time parameter of the storage backend is determined based on the following formula:
[0045] Where T1 represents the current first arbitration time parameter of the storage backend, N represents the protocol component cascading depth of the storage backend, T represents the basic arbitration time parameter in the basic arbitration parameters, and B t denoted as b, where b represents the typical model traffic volume of the storage backend within the preset period; and D1 represents the minimum model traffic volume of the storage backend within the preset period.
[0046] In one optional implementation, the iterative optimization of the basic arbitration parameters based on the current first arbitration time parameter and the current second arbitration time parameter of the storage backend includes:
[0047] In the case of the first iteration of optimization, the basic arbitration time parameter in the basic arbitration parameters is replaced with the current first arbitration time parameter;
[0048] Based on the basic arbitration frequency parameter, the current first arbitration time parameter, and the current second arbitration time parameter stored in the basic arbitration parameters, determine the current optimal arbitration frequency parameter;
[0049] Replace the basic arbitration frequency parameter in the basic arbitration parameters with the current optimal arbitration frequency parameter.
[0050] In one optional implementation, determining the current optimal number of arbitrations parameters based on the basic arbitration frequency parameter, the current first arbitration time parameter stored in the backend, and the current second arbitration time parameter includes:
[0051] The optimal number of arbitration attempts is determined based on the following formula:
[0052] Wherein, K′ represents the current optimal number of arbitrations parameter, K represents the basic number of arbitrations parameter in the basic arbitration parameters, T1 represents the current first arbitration time parameter, and T2 represents the current second arbitration time parameter.
[0053] In one optional implementation, the method further includes:
[0054] Determine whether the read / write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration optimization, and whether the increase has reached the preset threshold.
[0055] If the read / write performance index of the storage backend increases after the previous round of arbitration parameter iteration optimization, and the increase reaches a preset threshold, the current optimal arbitration time parameter in the current optimal arbitration parameter obtained after the previous round of arbitration parameter iteration optimization is reduced according to the preset minimum time step to obtain the optimized current optimal arbitration time parameter.
[0056] Based on the optimized current optimal arbitration time parameter, adjust the current optimal arbitration count parameter in the current optimal arbitration parameter, and return to the step of determining whether the read and write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration optimization, and whether the increase has reached the preset threshold.
[0057] In one optional implementation, the method further includes:
[0058] If the read / write performance metrics of the storage backend do not increase after the previous round of arbitration parameter iteration optimization, or if the increase does not reach the preset threshold, the current optimal arbitration parameters obtained through the previous arbitration parameter iteration optimization will be used as the target arbitration parameters of the storage backend.
[0059] In one optional implementation, the method further includes:
[0060] Using the protocol component cascading depth of the storage backend, the typical model business volume and the maximum model business volume of the storage backend within the preset period as the table headers, the target arbitration parameters corresponding to the protocol component cascading depth and business model statistical results of the storage backend are written into the preset performance tuning parameter solidification table.
[0061] When the business scenario of the storage backend changes, the target arbitration parameters that match the new business scenario are selected from the preset performance tuning parameter solidification table based on the protocol component cascading depth corresponding to the new business scenario, the typical model business volume and the maximum model business volume of the storage backend within the preset period.
[0062] A second aspect of this application provides a storage backend performance tuning apparatus, comprising:
[0063] The acquisition module is configured to acquire the cascading depth of the protocol components of the storage backend;
[0064] The basic configuration module is configured to configure the basic arbitration parameters of the storage backend based on the protocol component cascading depth of the storage backend;
[0065] The statistics module is configured to perform business model statistics on the storage backend and obtain business model statistics results; wherein, the business model statistics results include the business volume information of the business model of the storage backend within a preset period and the allocation ratio corresponding to each business volume;
[0066] The tuning module is configured to iteratively tune the basic arbitration parameters based on the statistical results of the business model to obtain the target arbitration parameters;
[0067] Among them, the storage backend exhibits the best performance under the target arbitration parameters.
[0068] A third aspect of this application provides a storage backend performance tuning system, including: a backend controller and a protocol component;
[0069] The back-end controller, based on the first aspect above and the method described in various possible designs of the first aspect, determines the target arbitration parameters for the storage back-end, so as to perform bus arbitration on each of the protocol components according to the target arbitration parameters.
[0070] A fourth aspect of this application provides an electronic device, comprising: at least one processor and a memory;
[0071] The memory stores computer-executed instructions;
[0072] The at least one processor executes computer execution instructions stored in the memory, causing the at least one processor to perform the method described in the first aspect above and various possible designs of the first aspect.
[0073] The fifth aspect of this application provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the method described in the first aspect above and various possible designs of the first aspect.
[0074] The sixth aspect of this application provides a computer program product including computer instructions for causing a computer to perform the methods described in the first aspect above and various possible designs of the first aspect.
[0075] The technical solution of this application has the following advantages:
[0076] This application provides a method, apparatus, system, and electronic device for performance tuning of a storage backend. The method includes: obtaining the protocol component cascading depth of the storage backend; configuring basic arbitration parameters for the storage backend based on the protocol component cascading depth; performing business model statistics on the storage backend to obtain business model statistical results; wherein the business model statistical results include business volume information of the storage backend's business model within a preset period and the allocation ratio corresponding to each business volume; iteratively tuning the basic arbitration parameters based on the business model statistical results to obtain target arbitration parameters; wherein the storage backend exhibits optimal performance under the target arbitration parameters. The method provided above, by iteratively optimizing the arbitration parameters based on the actual business scenarios represented by the business model statistical results of the storage backend, ensures that the final target arbitration parameters match the actual business scenarios of the storage backend, thereby improving the performance of the storage backend and laying the foundation for improving the overall performance of storage devices. Attached Figure Description
[0077] Figure 1 is a schematic diagram of the structure of the protocol component cascaded network of the storage backend provided in an embodiment of this application;
[0078] Figure 2 is a schematic diagram of the SAS bus arbitration architecture of the storage backend provided in the embodiment of this application;
[0079] Figure 3 is a schematic diagram of the network structure on which the embodiments of this application are based;
[0080] Figure 4 is a flowchart illustrating the storage backend performance tuning method provided in an embodiment of this application;
[0081] Figure 5 is a schematic diagram of an exemplary protocol component topology provided in an embodiment of this application;
[0082] Figure 6 is a schematic diagram of another exemplary protocol component topology provided in an embodiment of this application;
[0083] Figure 7 is a schematic diagram of the application architecture of the storage backend performance tuning method provided in the embodiments of this application;
[0084] Figure 8 is a schematic diagram of the overall process of the storage backend performance tuning method provided in the embodiment of this application;
[0085] Figure 9 is a schematic diagram of the storage backend performance tuning device provided in an embodiment of this application;
[0086] Figure 10 is a schematic diagram of the storage backend performance tuning system provided in an embodiment of this application;
[0087] Figure 11 is a schematic diagram of the structure of the electronic device provided in the embodiment of this application. Detailed Implementation
[0088] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0089] Furthermore, the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. In the following descriptions of embodiments, "a plurality of" means two or more, unless otherwise expressly defined.
[0090] In related technologies, the front end of storage devices mainly connects to servers running customer services via Ethernet or FC (Fibre Channel), while the back end primarily connects to hard drives via SAS or NVMe (Non-Volatile Memory Express). SAS back-ends hold a significant share of the storage market. Typically, SAS back-ends are cascaded with JBODs (Just a Bunch of Disks), usually at 2-3 levels, but sometimes up to 10 levels. Figure 1 shows a schematic diagram of the cascaded network structure of the protocol components of the storage back-end provided in this embodiment. Taking a storage back-end including two controllers (Controller-1 and Controller-2) and a protocol component cascading depth of N as an example, the protocol component (JBOD) includes several hard drives, uplink ports, and cascading ports, etc., and the SAS card of the controller is configured with arbitration parameters. The SAS protocol is a point-to-point protocol, allowing only communication between two SAS devices per transmission. Therefore, when multiple SAS devices are connected to the bus, bus contention is inevitable. Whether it's a SAS-INI->SAS-TGT transfer or a SAS-TGT->SAS-INI transfer, arbitration is required to obtain SAS bus privileges before data can be transferred. Here, SAS-INI represents the SAS initiator, which refers to the SAS host, such as the controller in Figure 1, and SAS-TGT represents the SAS target, which refers to the SAS device, such as the hard drive in the protocol component.
[0091] As shown in Figure 2, this is a schematic diagram of the SAS bus arbitration architecture for the storage backend provided in this embodiment. The protocol components, excluding the hard drive, consist of a SAS Expander (SAS device expander, abbreviated as Exp). The uplink port of the SAS device expander is connected to the host (SAS card) and is composed of multiple physical SAS-PHYs (SAS port physical layers). The cascade port is connected to the next-level JBOD and is composed of multiple physical SAS-PHYs. The narrow port is connected to the hard drive and consists of only one physical SAS-PHY. The I / O (Input / Output) access path is: MCS-VL -> SAS driver -> Expander (I / O forwarding) -> hard drive. MCS-VL is a miniaturized SAS connector. I / O forwarding includes forwarding both I / O commands (CMD) and I / O data (DATA).
[0092] In multi-level JBOD cascaded networking, SAS arbitration frequently occurs. An improperly configured arbitration timeout for SAS-INI or SAS-TGT can significantly impact SAS performance. For example, if Link 1, a connection established between the third-level protocol component and Controller-1 via second-level and first-level protocol components, fails to establish a connection between SAS-INI (Controller-1) and SAS-TGT (a hard drive in the third-level JBOD) for an extended period after Link 1 gains arbitration control, it will affect Link 2 (a connection established between the second-level protocol component and Controller-1 via the first-level protocol component). This is because Link 1 shares the first- and second-level SAS device extender paths.
[0093] The common practice among current storage vendors is to configure a set of SAS connection establishment timeout parameters (connect_timeout and connect_timeout_RetryCnt) into the SAS card firmware when the SAS driver is loaded. connect_timeout: the time for attempting to establish a connection (including arbitrating to bus control and completing the SAS connection with the hard drive), after which arbitration is terminated; connect_timeout_RetryCnt: the number of attempts.
[0094] The general method, because it uses fixed default parameters, has the following problems:
[0095] 1. If the connect_timeout is too large or too small, after obtaining arbitration rights, if the connection between the SAS-INI (controller) and some SAS-TGT (hard disks) takes a long time to establish a link, the overall performance of the storage column will be low due to the long bus resource occupation.
[0096] 2. Arbitration waiting time (i.e., from obtaining bus transmission privileges to completing the transmission) is strongly related to I / O size and SAS path depth. A general method can only handle one scenario. It offers no performance advantage in other scenarios.
[0097] To address the aforementioned issues, this application provides a method, apparatus, system, and electronic device for optimizing storage backend performance. The method includes: obtaining the protocol component cascading depth of the storage backend; configuring basic arbitration parameters for the storage backend based on the protocol component cascading depth; performing business model statistics on the storage backend to obtain business model statistical results; wherein the business model statistical results include business volume information of the storage backend's business model within a preset period and the allocation ratio corresponding to each business volume; and iteratively optimizing the basic arbitration parameters based on the business model statistical results to obtain target arbitration parameters; wherein the storage backend exhibits optimal performance under the target arbitration parameters. The method provided above, by iteratively optimizing the arbitration parameters based on the actual business scenarios represented by the business model statistical results of the storage backend, ensures that the final applied target arbitration parameters match the actual business scenarios of the storage backend, thereby improving the performance of the storage backend and laying the foundation for improving the overall performance of storage devices.
[0098] The following optional embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of the present invention will now be described with reference to the accompanying drawings.
[0099] First, the network structure on which this application is based will be explained:
[0100] The storage backend performance tuning method, apparatus, system, and electronic device provided in this application are applicable to iteratively optimizing the arbitration parameters of the storage backend during its operation. Figure 3 shows a schematic diagram of the network structure upon which this application embodiment is based, mainly including a user terminal and a storage device. The storage device includes a storage frontend and a storage backend. The user terminal sends service requests to the storage backend through the storage frontend. During the response to the service request, the storage backend performs business model statistics to iteratively tune the arbitration parameters based on the statistical results, ensuring that the final application's target arbitration parameters match the actual business scenario.
[0101] This application provides a storage backend performance tuning method, which aims to improve the performance of the storage backend by iteratively optimizing the arbitration parameters of the storage backend. The execution subject of this application embodiment is an electronic device, such as a server, desktop computer, laptop computer, tablet computer, or other electronic devices that can be used for storage backend performance tuning.
[0102] Figure 4 shows a flowchart of the storage backend performance tuning method provided in this embodiment of the application. The method includes:
[0103] Step 401: Obtain the cascading depth of the protocol components in the storage backend.
[0104] The protocol component cascading depth can also be called the SAS device extender cascading depth. As shown in Figure 1, the protocol component cascading depth of the storage backend is N.
[0105] Step 402: Configure the basic arbitration parameters of the storage backend according to the cascading depth of the protocol components of the storage backend.
[0106] The basic arbitration parameters for the storage backend are typically configured to be large. These parameters include a basic arbitration time parameter and a basic arbitration count parameter. The arbitration time parameter is the time required to attempt a connection (connect_timeout), and the arbitration count parameter is the number of attempts (connect_timeout_RetryCnt). When a protocol component obtains SAS bus arbitration rights and attempts to establish a connection with the controller, the time taken for each connection establishment attempt shall not exceed connect_timeout, and the number of connection establishment attempts shall not exceed connect_timeout_RetryCnt. If a connection is not successfully established after connect_timeout_RetryCnt of connection establishment attempts, the SAS bus arbitration rights of that protocol component are released.
[0107] Step 403: Perform business model statistics on the storage backend to obtain the business model statistics results.
[0108] The business model statistics include the business volume information of the storage backend business model within a preset period and the allocation ratio corresponding to each business volume.
[0109] It should be noted that the business model in this application embodiment is an I / O model, which describes the way data is transmitted between the storage backend and the external environment, including at least the characteristics such as data access mode, frequency, size, and order. Different business models are used to respond to different business requests to adapt to different data access modes and requirements. For example, video data storage business requests are responded to based on the video data business model, and image data storage business requests are responded to based on the image data business model, etc.
[0110] Optionally, when the I / O service flow of the storage backend starts running, a timer can be started and set to perform business model statistics on the storage backend according to a preset period.
[0111] Step 404: Based on the statistical results of the business model, iteratively optimize the basic arbitration parameters to obtain the target arbitration parameters.
[0112] Among them, the storage backend performs best under the target arbitration parameters.
[0113] Optionally, the current business scenario of the storage backend can be analyzed based on the statistical results of the business model obtained through statistics. Then, based on the current business scenario, the basic arbitration parameters can be iteratively optimized to make the target arbitration parameters match the current business scenario, thereby improving the performance of the storage backend.
[0114] Based on the above embodiments, since the arbitration parameters of the storage backend are highly correlated with the cascading depth of its protocol components, in order to improve the accuracy of the arbitration parameter configuration results, as an implementable method, in one embodiment, obtaining the cascading depth of the storage backend's protocol components includes:
[0115] Step 4011: Send a topology discovery command to the protocol component of the storage backend to obtain the command response result from the protocol component;
[0116] Step 4012: Determine the cascading depth of the protocol components in the storage backend based on the topology information represented by the command response results fed back by the protocol components.
[0117] Among them, the topology discovery command can refer to the SMP-Discover (SMP, Serial Management Protocol) command. By sending the SMP-Discover command to the protocol component (SAS device extender) of the storage backend, the command response result is obtained, and then the topology information represented by the command response result is analyzed to determine the cascading depth of the protocol component of the storage backend.
[0118] Optionally, in one embodiment, a topology discovery command can be triggered and sent to the protocol component of the storage backend if the current scenario meets the preset command triggering conditions.
[0119] Specifically, when the storage backend enters the system startup phase or the protocol components of the storage backend undergo a topology change, it is determined that the current scenario meets the preset command triggering conditions.
[0120] Optionally, there are two scenarios for triggering protocol component cascading depth discovery: 1. During system startup, SCSI receives a Broadcast event (trigger event) from the SAS device expander, and then sends an SMP-Discover command to the expander. By parsing the SMP-Discover command response, the SAS topology and expander cascading depth are obtained, i.e., the topology information and protocol component cascading depth are obtained. 2. When a new SAS disk enclosure is connected, the protocol component topology changes. The newly connected SAS disk enclosure expander also sends a BoardCast event. The rest is the same as in the first scenario, generating the SAS topology and expander cascading depth.
[0121] Optionally, in one embodiment, the configuration port attribute information of each protocol component in the storage backend can be determined based on the topology information represented by the command response results fed back by the protocol components; and the cascading depth of the protocol components in the storage backend can be determined based on the configuration port attribute information of each protocol component.
[0122] The configuration port attribute information of the protocol component represents the attributes of each port configured in the protocol component. The port attributes are at least divided into three types: downlink narrow port, downlink wide port, and uplink wide port. As shown in Figure 5, which is an exemplary protocol component topology diagram provided in this application embodiment, a wide port consists of multiple physical PHYs, and a narrow port consists of a single physical PHY. Narrow ports are configured to connect to hard drives, and wide ports are configured to connect to SAS hosts or cascaded expanders. Wide ports connecting to hosts / upper-level expanders are called uplink ports, and wide ports connecting to lower-level expanders are called downlink ports.
[0123] Optionally, by analyzing the configuration port attribute information of each protocol component, it can be determined whether each protocol component is connected to an upper-level and / or lower-level protocol component, thereby determining the protocol component cascading depth of the entire storage backend. As shown in Figure 6, which is a schematic diagram of another exemplary protocol component topology provided in this application embodiment, if the SAS device extender in a protocol component is directly connected to the SAS card on the controller via an uplink wide port and has no downlink wide port, then the protocol component cascading depth of this storage backend is determined to be 1. If one protocol component in the storage backend has a SAS device extender directly connected to the SAS card on the controller via an uplink wide port and has a downlink wide port, while another protocol component has an uplink wide port but no downlink wide port, then the protocol component cascading depth of this storage backend is determined to be 2.
[0124] Based on the above embodiments, as an implementable approach, in one embodiment, the basic arbitration parameters of the storage backend are configured according to the protocol component cascading depth of the storage backend, including:
[0125] Step 4021: Obtain the default arbitration parameter configuration table for the storage backend;
[0126] Step 4022: Based on the protocol component cascading depth of the storage backend, filter the default arbitration parameters that match the protocol component cascading depth in the default arbitration parameter configuration table;
[0127] Step 4023: Configure the basic arbitration parameters for the storage backend based on the default arbitration parameters.
[0128] Optionally, the default arbitration parameter configuration table represents the relationship between the default arbitration parameters and the protocol component cascading depth. Therefore, based on the protocol component cascading depth of the storage backend, the default arbitration parameters that match the protocol component cascading depth can be filtered in the default arbitration parameter configuration table, and the default arbitration parameters can be configured as basic arbitration parameters into the configuration items of the controller's SAS card.
[0129] Optionally, in one embodiment, command class default arbitration parameters that match the protocol component cascading depth can be selected from the command class default arbitration parameter configuration table based on the protocol component cascading depth of the storage backend; and data class default arbitration parameters that match the protocol component cascading depth can be selected from the data class default arbitration parameter configuration table based on the protocol component cascading depth of the storage backend.
[0130] The default arbitration parameter configuration table is divided into a command-type default arbitration parameter configuration table and a data-type default arbitration parameter configuration table. The default arbitration parameters are further divided into command-type default arbitration parameters and data-type default arbitration parameters. Command-type transmissions involve fewer bytes, while data-type transmissions involve more bytes; therefore, the timeout parameters (arbitration time parameters) for the two types of transmissions differ. Thus, two separate configuration tables—the command-type default arbitration parameter configuration table and the data-type default arbitration parameter configuration table—are used to configure the default arbitration parameters for both types of transmissions.
[0131] For example, the default arbitration parameter configuration table for the command class is shown in Table 1 below:
[0132] Table 1
[0133] The default arbitration parameter configuration table for data types is shown in Table 2 below:
[0134] Table 2
[0135] Optionally, in one embodiment, based on the protocol component cascading depth of the storage backend, a target arbitration parameter determination rule matching the protocol component cascading depth is selected from the default arbitration parameter configuration table for data classes; according to the target arbitration parameter determination rule, a default arbitration parameter matching the protocol component cascading depth is determined based on a preset default determination coefficient.
[0136] For example, if the protocol component concatenation depth is 2, when determining the default arbitration parameters for the data class, this concatenation depth is substituted into Table 2, and the determination rule for the target arbitration parameters is 2×T1+(transaction volume / 8K)×D1. The transaction volume uses a preset default determination coefficient, such as 256K, to determine the default arbitration time parameter for the data class in the default arbitration parameters. The values of the default arbitration count parameter M for the command class and the default arbitration count parameter K for the data class can be defined as 3, and the default arbitration time parameter for the command class is 2×T1.
[0137] Based on the above embodiments, as an implementable approach, in one embodiment, the basic arbitration parameters are iteratively optimized according to the statistical results of the business model, including:
[0138] Step 4041: Based on the allocation ratio corresponding to each business volume, the business volume with the highest allocation ratio is taken as the typical model business volume of the storage backend within the preset period.
[0139] Step 4042: Determine the maximum model business volume of the storage backend within the preset period based on the business volume information of the business model within the preset period.
[0140] Step 4043: Based on the typical and maximum model business volume of the storage backend within a preset period, iteratively optimize the basic arbitration parameters.
[0141] It should be noted that every I / O read or I / O write in the storage backend requires the use of CMD and DATA commands, which are divided into command transmission and data transmission. The transmission time of CMD commands is the same for both read and write operations, while the transmission time of DATA is related to the I / O size. Therefore, this application embodiment mainly focuses on iterative optimization of the data-related basic arbitration parameters in the basic arbitration parameters.
[0142] For example, if the statistical results of the business model indicate that 64K accounts for 80% of the business volume (I / O size), 8K accounts for 10%, and 256K accounts for 10%, then the typical model business volume is determined to be 64K, and the maximum model business volume is determined to be 256K. The business model statistical results record table is shown in Table 3 below. Table 3 records the count corresponding to each type of business volume, thereby determining the proportion of each type of business volume:
[0143] Table 3
[0144] Optionally, in one embodiment, the current first arbitration time parameter of the storage backend can be determined based on the typical model traffic volume of the storage backend within a preset period; the current second arbitration time parameter of the storage backend can be determined based on the maximum model traffic volume of the storage backend within the preset period; and the basic arbitration parameters can be iteratively optimized based on the current first arbitration time parameter and the current second arbitration time parameter of the storage backend.
[0145] The business model statistics include the typical and maximum model business volume of the storage backend within a preset period.
[0146] Optionally, in one embodiment, the current first arbitration time parameter of the storage backend can be determined based on the following formula:
[0147] Where T1 represents the current first arbitration time parameter of the storage backend, N represents the protocol component cascading depth of the storage backend, T represents the basic arbitration time parameter in the basic arbitration parameters, and B t 'b' represents the typical model workload of the storage backend within a preset period, 'b' represents the minimum model workload of the storage backend within a preset period, and 'D1' represents the data transmission latency of the minimum model workload, such as 'b=8K'.
[0148] Accordingly, in one embodiment, the current second arbitration time parameter of the storage backend can be determined based on the following formula:
[0149] Where T2 represents the current first arbitration time parameter of the storage backend, N represents the protocol component cascading depth of the storage backend, T represents the basic arbitration time parameter in the basic arbitration parameters, and B M 'b' represents the maximum model traffic volume of the storage backend within a preset period, 'b' represents the minimum model traffic volume of the storage backend within a preset period, and 'D1' represents the data transmission latency of the minimum model traffic volume, such as 'b=8K'.
[0150] Optionally, in one embodiment, during the first iteration of optimization, the basic arbitration time parameter in the basic arbitration parameters can be replaced with the current first arbitration time parameter; the current optimal arbitration number parameter is determined based on the basic arbitration number parameter in the basic arbitration parameters, the current first arbitration time parameter stored in the backend, and the current second arbitration time parameter; and the basic arbitration number parameter in the basic arbitration parameters is replaced with the current optimal arbitration number parameter.
[0151] It should be noted that since the total arbitration timeout Time(total) = arbitration time parameter connect_timeout × arbitration number parameter connect_timeout_RetryCnt, if we want to ensure that the largest number of I / O services can successfully establish a connection within Time(total) and also ensure that the majority of I / O services can successfully establish a connection in a timely manner, we need to iteratively optimize the arbitration time parameter and also adaptively adjust the arbitration number parameter.
[0152] Alternatively, in one embodiment, the current optimal number of arbitration attempts parameter can be determined based on the following formula:
[0153] Where K′ represents the current optimal number of arbitrations parameter, K represents the basic number of arbitrations parameter in the basic arbitration parameters, T1 represents the current first arbitration time parameter, and T2 represents the current second arbitration time parameter.
[0154] For example, assuming the protocol component concatenation depth is 2, and based on business model statistics, the typical model business volume is 64KB and the maximum model business volume is 256KB, we obtain the connect_timeout time T1 for 64KB and the connect_timeout time T2 for 256KB. Then, (T2 / T1+1)×K gives us the new K′. Thus, we obtain the current concatenation depth and the current optimal arbitration time parameter and the current optimal number of arbitrations parameter that need to be configured to the SAS card in the current business scenario.
[0155] Based on the above embodiments, since the ultimate goal of the method provided in this application is to improve the performance of the storage backend, in order to further ensure that the final target arbitration parameters can enable the storage backend to achieve optimal performance, as an implementable approach, in one embodiment, the method further includes:
[0156] Step 501: Determine whether the read and write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration and optimization, and whether the increase has reached the preset threshold.
[0157] Step 502: If the read / write performance index of the storage backend increases after the previous round of arbitration parameter iteration optimization and the increase reaches the preset threshold, the current optimal arbitration time parameter in the current optimal arbitration parameter obtained after the previous round of arbitration parameter iteration optimization is reduced according to the preset minimum time step to obtain the optimized current optimal arbitration time parameter.
[0158] Step 503: Based on the optimized current optimal arbitration time parameter, adjust the current optimal arbitration count parameter in the current optimal arbitration parameter, and return to the step of determining whether the read and write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration optimization, and whether the increase has reached the preset threshold.
[0159] Among them, read / write performance metrics can refer to IOPS.
[0160] It should be noted that setting the arbitration parameter too high or too low will affect the storage performance of the storage backend. Therefore, in practical applications, if reducing the current optimal arbitration time parameter results in a significant decrease in performance, the optimal arbitration time parameter can be increased in the future.
[0161] Optionally, if the read / write performance metrics of the storage backend increase after the previous round of arbitration parameter iteration optimization, and the increase reaches a preset threshold, it is determined that there is still room for performance optimization in the storage backend. Therefore, the previously determined current optimal arbitration time parameter T1 can be reduced according to a preset minimum time step, such as in steps of 10μs, thus determining the optimized current optimal arbitration time parameter as follows:
[0162] T1-10μs, and further adaptively adjust the current optimal number of arbitrations parameter, with the following adjustment options:
[0163] Where K′ represents the adjusted current optimal number of arbitrations parameter, T represents the basic arbitration time parameter, K represents the basic number of arbitrations parameter in the basic arbitration parameters, and a represents the iteration optimization round.
[0164] Optionally, as shown in Figure 7, which is a schematic diagram of the application architecture of the storage backend performance tuning method provided in this application embodiment, the entire method is divided into a basic arbitration parameter configuration stage and an iterative optimization stage. In the basic arbitration parameter configuration stage, dynamic SAS topology identification is first performed to determine the protocol component cascading depth of the storage backend and to determine the default SAS arbitration parameter configuration table. Finally, the basic arbitration parameters of the storage backend are configured to the SAS card. The first adjustment of the basic arbitration parameters is also completed in the basic arbitration parameter configuration stage based on the typical model business volume and the maximum model business volume represented by the business model statistics. In the iterative optimization stage, during the I / O business operation of the storage backend, performance statistics are performed on the storage backend to determine its read / write performance indicators. Then, the arbitration parameters are adjusted based on the read / write performance indicators, and finally, the determined target arbitration parameters are imported into the SAS card. During the I / O model recording process, if a change in the I / O model is detected, i.e., a change in the business scenario, steps 4041 to 4043 are returned to execution.
[0165] Accordingly, in one embodiment, if the read / write performance index of the storage backend does not increase after the previous round of arbitration parameter iteration optimization, or the increase does not reach the preset threshold, the current optimal arbitration parameter obtained through the previous arbitration parameter iteration optimization is used as the target arbitration parameter of the storage backend.
[0166] Optionally, if the read / write performance metrics of the storage backend do not increase after the previous round of arbitration parameter iteration optimization, or if the increase does not reach the preset threshold, it is determined that there is no room for further performance optimization of the storage backend, and the iteration optimization of the arbitration parameters is stopped at this point. The preset threshold can be 3%, meaning that if the fluctuation range of the read / write performance metrics is within 3%, it is determined that the read / write performance metrics of the storage backend have stabilized.
[0167] Optionally, during the iterative optimization of arbitration parameters, the magnitude of the read and write performance indicators for each iteration can be recorded based on Table 4 below. When the iterative optimization of arbitration parameters stops, the arbitration time parameter and arbitration number parameter (current optimal arbitration parameter) with the highest read and write performance indicators in Table 4 are used as the target arbitration parameters for the storage backend.
[0168] Table 4
[0169] Optionally, in one embodiment, the target arbitration parameters corresponding to the protocol component cascading depth of the storage backend and the typical model business volume and maximum model business volume of the storage backend within a preset period are written into a preset performance tuning parameter solidification table, using the protocol component cascading depth of the storage backend, the typical model business volume of the storage backend within a preset period, and the maximum model business volume as table headers. When the business scenario of the storage backend changes, the target arbitration parameters that match the new business scenario are selected from the preset performance tuning parameter solidification table based on the protocol component cascading depth of the new business scenario, the typical model business volume of the storage backend within a preset period, and the maximum model business volume.
[0170] The preset performance tuning parameters are shown in Table 5 below:
[0171] Table 5
[0172] Optionally, when the business scenario of the storage backend changes, Table 5 is queried first to determine whether there is a target arbitration parameter that matches the new business scenario. If so, it can be called directly to save the iterative optimization process of the arbitration parameter and thus improve the configuration efficiency of the arbitration parameter of the storage backend.
[0173] To facilitate understanding of the storage backend performance tuning method provided in this application embodiment by those skilled in the art, Figure 8 shows the overall flowchart of the storage backend performance tuning method provided in this application embodiment. When a BoardCast event (trigger event) is received from the SAS device expander, it is determined that a topology change has occurred in the protocol component. Therefore, a topology discovery command can be sent when the trigger event is received from the SAS device expander or when the storage backend enters the system startup phase, to obtain the command response result from the protocol component. By parsing the command response result from the protocol component, the cascading depth of the protocol component in the storage backend is determined, thereby determining the basic arbitration parameters of the storage backend. Furthermore, the current optimal arbitration time parameter and the current optimal arbitration count parameter are determined, and the current optimal arbitration parameters (current optimal arbitration time parameter and current optimal arbitration count parameter) of the storage backend are written into the entry corresponding to iteration optimization round 0 in Table 4 above. The basic arbitration parameters are then written into the SAS card so that the storage backend first performs I / O service operation based on the basic arbitration parameters. The I / O service operation includes I / O data service and I / O command service. During I / O operations based on basic arbitration parameters in the storage backend, a timer is started to record the model data of the storage backend and to statistically analyze I / O read and write performance, thus determining the read and write performance metrics of the storage backend. When a preset period is reached, the typical model workload and the maximum model workload are determined to assess whether the business scenario of the storage backend has changed. If the business scenario has not changed, the local read and write performance of the storage backend is checked against the previous performance. If the business scenario has changed, the previously configured parameters are extracted from Table 5, and the previously determined optimal arbitration time parameter T1 is reduced in 10μs increments. If the local read and write performance of the storage backend is not higher than the previous performance, the iterative optimization is terminated, i.e., performance tuning ends, and the target arbitration parameter is determined and written into a preset performance tuning parameter solidification table for subsequent queries.
[0174] The storage backend performance tuning method provided in this application includes: obtaining the protocol component cascading depth of the storage backend; configuring basic arbitration parameters of the storage backend based on the protocol component cascading depth; performing business model statistics on the storage backend to obtain business model statistical results; wherein the business model statistical results include the business volume information of the business model of the storage backend within a preset period and the allocation ratio corresponding to each business volume; iteratively tuning the basic arbitration parameters based on the business model statistical results to obtain target arbitration parameters; wherein the storage backend performs optimally under the target arbitration parameters. The method provided above, by iteratively optimizing the arbitration parameters based on the actual business scenario represented by the business model statistical results of the storage backend, ensures that the final applied target arbitration parameters match the actual business scenario of the storage backend, improving the performance of the storage backend and laying the foundation for improving the overall performance of the storage device. Furthermore, the arbitration parameter determination logic provided in this application not only improves the accuracy of the final adopted target arbitration parameters but also improves the efficiency of the iterative optimization of the arbitration parameters.
[0175] This application provides a storage backend performance tuning device, which is configured to execute the storage backend performance tuning method provided in the above embodiments.
[0176] Figure 9 shows a schematic diagram of the storage backend performance tuning device provided in an embodiment of this application. The storage backend performance tuning device 90 includes: an acquisition module 901, a basic configuration module 902, a statistics module 903, and an optimization module 904.
[0177] The module includes: an acquisition module for acquiring the protocol component cascading depth of the storage backend; a basic configuration module for configuring the basic arbitration parameters of the storage backend based on the protocol component cascading depth; a statistics module for performing business model statistics on the storage backend to obtain business model statistics results, which include the business volume information of the storage backend's business model within a preset period and the allocation ratio of each business volume; and an optimization module for iteratively optimizing the basic arbitration parameters based on the business model statistics results to obtain the target arbitration parameters.
[0178] Among them, the storage backend performs best under the target arbitration parameters.
[0179] Regarding the storage backend performance tuning device in this embodiment, the optional methods for each module to perform operations have been described in detail in the embodiments related to the method, and will not be elaborated here.
[0180] The storage backend performance tuning device provided in this application embodiment is configured to execute the storage backend performance tuning method provided in the above embodiment. Its implementation method and principle are the same, and will not be described again.
[0181] This application provides a storage backend performance tuning system, configured to execute the storage backend performance tuning method provided in the above embodiments.
[0182] Figure 10 shows a schematic diagram of the storage backend performance tuning system provided in an embodiment of this application. The storage backend performance tuning system includes a backend controller and protocol components.
[0183] The back-end controller determines the target arbitration parameters for the storage back-end based on the storage back-end performance tuning method provided in the above embodiments, and performs bus arbitration on each protocol component according to the target arbitration parameters. The back-end controller can be any of the controllers in Figure 1, or it can be the central controller of the storage back-end.
[0184] Regarding the storage backend performance tuning system in this embodiment, its optional implementation methods have been described in detail in the embodiments related to the method, and will not be elaborated here.
[0185] The storage backend performance tuning system provided in this application embodiment is configured to execute the storage backend performance tuning method provided in the above embodiment. Its implementation method and principle are the same, and will not be described again.
[0186] This application provides an electronic device configured to perform the storage backend performance tuning method provided in the above embodiments.
[0187] Figure 11 shows a schematic diagram of the structure of an electronic device provided in an embodiment of this application. The electronic device 110 includes at least one processor 1101 and a memory 1102.
[0188] The memory stores computer-executable instructions; at least one processor executes the computer-executable instructions stored in the memory, causing the at least one processor to perform the storage back-end performance tuning method provided in the above embodiments.
[0189] The electronic device provided in this application embodiment is configured to execute the storage backend performance tuning method provided in the above embodiment. Its implementation method and principle are the same, and will not be described again.
[0190] This application provides a computer-readable storage medium (which may be, but is not limited to, a non-volatile computer-readable storage medium) storing computer-executable instructions. When a processor executes the computer-executable instructions, it implements the storage back-end performance tuning method provided in any of the above embodiments.
[0191] The storage medium containing computer-executable instructions provided in this application embodiment can be configured to store computer-executable instructions for the storage backend performance tuning method provided in the foregoing embodiment. Its implementation method and principle are the same and will not be described again.
[0192] This application provides a computer program product, including computer instructions, which are used to cause a computer to execute the storage backend performance tuning method provided in the foregoing embodiments.
[0193] The computer program product provided in this application embodiment can be configured to execute computer instructions for the storage backend performance tuning method provided in the foregoing embodiment. Its implementation method and principle are the same, and will not be described again.
[0194] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0195] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0196] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in a combination of hardware and software functional units.
[0197] The integrated units implemented as software functional units described above can be stored in a computer-readable storage medium. These software functional units, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0198] A portion of this application can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to the present invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.
[0199] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional modules is merely an example. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The working process of the device described above can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0200] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for optimizing storage backend performance, characterized in that, include: Obtain the cascading depth of the protocol components in the storage backend; Configure the basic arbitration parameters of the storage backend according to the protocol component cascading depth of the storage backend; Business model statistics are performed on the storage backend to obtain business model statistics results; wherein, the business model statistics results include the business volume information of the business model of the storage backend within a preset period and the allocation ratio corresponding to each business volume; Based on the statistical results of the business model, the basic arbitration parameters are iteratively optimized to obtain the target arbitration parameters; Among them, the storage backend exhibits the best performance under the target arbitration parameters.
2. The method according to claim 1, characterized in that, The process of obtaining the protocol component cascading depth of the storage backend includes: Send a topology discovery command to the protocol component of the storage backend to obtain the command response result returned by the protocol component; The cascading depth of the protocol components in the storage backend is determined based on the topology information represented by the command response results fed back by the protocol components.
3. The method according to claim 2, characterized in that, Sending the topology discovery command to the protocol component of the storage backend includes: If the preset command triggering conditions are met in the current scenario, a topology discovery command is triggered and sent to the protocol component of the storage backend; Specifically, when the storage backend enters the system startup phase or the protocol component of the storage backend undergoes a topology change, it is determined that the current scenario meets the preset command triggering conditions.
4. The method according to claim 2, characterized in that, Determining the cascading depth of the storage backend protocol components based on the topology information represented by the command response results fed back by the protocol components includes: Based on the topology information represented by the command response results fed back by the protocol components, determine the configuration port attribute information of each protocol component in the storage backend; The cascading depth of the protocol components in the storage backend is determined based on the configuration port attribute information of each protocol component.
5. The method according to claim 1, characterized in that, The step of configuring the basic arbitration parameters of the storage backend based on the protocol component cascading depth of the storage backend includes: Obtain the default arbitration parameter configuration table of the storage backend; Based on the protocol component cascading depth of the storage backend, filter the default arbitration parameters that match the protocol component cascading depth in the default arbitration parameter configuration table; Configure the basic arbitration parameters of the storage backend based on the default arbitration parameters.
6. The method according to claim 5, characterized in that, The step of filtering default arbitration parameters that match the protocol component cascading depth in the default arbitration parameter configuration table based on the protocol component cascading depth of the storage backend includes: Based on the protocol component cascading depth of the storage backend, filter the command class default arbitration parameters that match the protocol component cascading depth in the command class default arbitration parameter configuration table; Based on the cascading depth of the protocol components in the storage backend, filter the default arbitration parameters of the data class that match the cascading depth of the protocol components in the default arbitration parameter configuration table for the data class; The default arbitration parameter configuration table is divided into a command-type default arbitration parameter configuration table and a data-type default arbitration parameter configuration table. The default arbitration parameters are divided into command-type default arbitration parameters and data-type default arbitration parameters.
7. The method according to claim 6, characterized in that, The step of filtering default arbitration parameters for data classes that match the protocol component cascading depth in the data class default arbitration parameter configuration table based on the protocol component cascading depth includes: Based on the cascading depth of the protocol components in the storage backend, select target arbitration parameter determination rules that match the cascading depth of the protocol components from the default arbitration parameter configuration table for data classes; According to the target arbitration parameter determination rules, and based on the preset default determination coefficients, the default arbitration parameters for the data class that match the cascading depth of the protocol components are determined.
8. The method according to claim 1, characterized in that, The step of iteratively optimizing the basic arbitration parameters based on the statistical results of the business model includes: Based on the allocation ratio corresponding to each business volume, the business volume with the highest allocation ratio is taken as the typical model business volume of the storage backend within the preset period. Based on the business volume information of the business model within the preset period, determine the maximum model business volume of the storage backend within the preset period; The basic arbitration parameters are iteratively optimized based on the typical and maximum model traffic volumes of the storage backend within the preset period.
9. The method according to claim 8, characterized in that, The step of iteratively optimizing the basic arbitration parameters based on the typical and maximum model traffic volumes of the storage backend within the preset period includes: Based on the typical model business volume of the storage backend within the preset period, determine the current first arbitration time parameter of the storage backend; The current second arbitration time parameter of the storage backend is determined based on the maximum model business volume of the storage backend within a preset period. The basic arbitration parameters are iteratively optimized based on the current first arbitration time parameter and the current second arbitration time parameter of the storage backend. The business model statistics include the typical and maximum model business volume of the storage backend within the preset period.
10. The method according to claim 9, characterized in that, The step of determining the current first arbitration time parameter of the storage backend based on the typical model business volume of the storage backend within the preset period includes: The current first arbitration time parameter of the storage backend is determined based on the following formula: Where T1 represents the current first arbitration time parameter of the storage backend, N represents the protocol component cascading depth of the storage backend, T represents the basic arbitration time parameter in the basic arbitration parameters, and B t denoted as b, where b represents the typical model traffic volume of the storage backend within the preset period; and D1 represents the minimum model traffic volume of the storage backend within the preset period.
11. The method according to claim 9, characterized in that, The step of iteratively optimizing the basic arbitration parameters based on the current first arbitration time parameter and the current second arbitration time parameter of the storage backend includes: In the case of the first iteration of optimization, the basic arbitration time parameter in the basic arbitration parameters is replaced with the current first arbitration time parameter; Based on the basic arbitration frequency parameter, the current first arbitration time parameter, and the current second arbitration time parameter stored in the basic arbitration parameters, determine the current optimal arbitration frequency parameter; Replace the basic arbitration frequency parameter in the basic arbitration parameters with the current optimal arbitration frequency parameter.
12. The method according to claim 10, characterized in that, The step of determining the current optimal number of arbitrations based on the basic arbitration frequency parameter, the current first arbitration time parameter, and the current second arbitration time parameter stored in the basic arbitration parameters includes: The optimal number of arbitration attempts is determined based on the following formula: Wherein, K′ represents the current optimal number of arbitrations parameter, K represents the basic number of arbitrations parameter in the basic arbitration parameters, T1 represents the current first arbitration time parameter, and T2 represents the current second arbitration time parameter.
13. The method according to claim 10, characterized in that, The method further includes: Determine whether the read / write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration optimization, and whether the increase has reached the preset threshold. If the read / write performance index of the storage backend increases after the previous round of arbitration parameter iteration optimization, and the increase reaches a preset threshold, the current optimal arbitration time parameter in the current optimal arbitration parameter obtained after the previous round of arbitration parameter iteration optimization is reduced according to the preset minimum time step to obtain the optimized current optimal arbitration time parameter. Based on the optimized current optimal arbitration time parameter, adjust the current optimal arbitration count parameter in the current optimal arbitration parameter, and return to the step of determining whether the read and write performance indicators of the storage backend have increased after the previous round of arbitration parameter iteration optimization, and whether the increase has reached the preset threshold.
14. The method according to claim 13, characterized in that, The method further includes: If the read / write performance metrics of the storage backend do not increase after the previous round of arbitration parameter iteration optimization, or if the increase does not reach the preset threshold, the current optimal arbitration parameters obtained through the previous arbitration parameter iteration optimization will be used as the target arbitration parameters of the storage backend.
15. The method according to claim 13, characterized in that, The method further includes: Using the protocol component cascading depth of the storage backend, the typical model business volume and the maximum model business volume of the storage backend within the preset period as the table headers, the target arbitration parameters corresponding to the protocol component cascading depth and business model statistical results of the storage backend are written into the preset performance tuning parameter solidification table. When the business scenario of the storage backend changes, the target arbitration parameters that match the new business scenario are selected from the preset performance tuning parameter solidification table based on the protocol component cascading depth corresponding to the new business scenario, the typical model business volume and the maximum model business volume of the storage backend within the preset period.
16. A storage backend performance tuning device, characterized in that, include: The acquisition module is configured to acquire the cascading depth of the protocol components of the storage backend; The basic configuration module is configured to configure the basic arbitration parameters of the storage backend based on the protocol component cascading depth of the storage backend; The statistics module is configured to perform business model statistics on the storage backend and obtain business model statistics results; wherein, the business model statistics results include the business volume information of the business model of the storage backend within a preset period and the allocation ratio corresponding to each business volume; The tuning module is configured to iteratively tune the basic arbitration parameters based on the statistical results of the business model to obtain the target arbitration parameters; Among them, the storage backend exhibits the best performance under the target arbitration parameters.
17. A storage backend performance tuning system, characterized in that, include: Backend controllers and protocol components; The back-end controller determines target arbitration parameters for the storage back-end based on the method as described in any one of claims 1 to 15, so as to perform bus arbitration on each of the protocol components according to the target arbitration parameters.
18. An electronic device, characterized in that, include: At least one processor and memory; The memory stores computer-executed instructions; The at least one processor executes computer execution instructions stored in the memory, causing the at least one processor to perform the method as described in any one of claims 1 to 15.
19. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, implement the method as described in any one of claims 1 to 15.
20. A computer program product, characterized in that, Includes computer instructions for causing a computer to perform the method as described in any one of claims 1 to 15.