A performance data acquisition method of storage array management software and electronic equipment

By using a multi-layered caching architecture and data push mechanism to dynamically manage cached content, the system solves the problems of performance statistics request timeouts and queuing in storage array management software, reduces disk I/O usage, and improves system response speed and scalability.

CN122432008APending Publication Date: 2026-07-21INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2026-06-22
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

In existing technologies, storage array management software is prone to request timeouts and queuing issues when obtaining performance statistics, which affects the performance of user services, and frequent interactions with the underlying software lead to excessive disk I/O usage.

Method used

A multi-layered caching architecture is adopted, including a first cache, a second cache, and a third cache. By using the data push mechanism of the target underlying software, direct disk read operations are reduced, cached content is dynamically managed, data of high-interest and fluctuating objects are prioritized for storage, and supplementary data is obtained from other clients or underlying software when necessary to avoid repeated interactions.

Benefits of technology

It effectively solved the problems of performance statistics request timeout and queuing, reduced disk I/O pressure, improved system scalability and response speed, and ensured the availability of performance statistics functions and business continuity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122432008A_ABST
    Figure CN122432008A_ABST
Patent Text Reader

Abstract

The application discloses a performance data acquisition method of storage array management software and electronic equipment, and relates to the technical field of computers, and comprises the following steps: filtering first performance data corresponding to a first performance acquisition request sent by a target client from a first cache; if a first condition is not met at present, searching for second performance data corresponding to the first performance acquisition request from other clients; the first condition is that the first performance data contains all required performance data corresponding to the first performance acquisition request; if a second condition is not met at present, constructing a corresponding second performance acquisition request for the current missing performance data; acquiring third performance data corresponding to the second performance acquisition request through direct interaction with target underlying software; generating and returning a target response result corresponding to the first performance acquisition request based on the first performance data, the second performance data and the third performance data, solving the performance statistical request timeout and queuing problems, and reducing the interaction between the server and the underlying software.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to a method for acquiring performance data of storage array management software and an electronic device. Background Technology

[0002] Storage performance statistics are typically stored for about three years on hard drives. Reading and writing these statistics consumes storage array I / O (Input / Output), impacting the performance of user business data, especially on mechanical hard drives. The impact is particularly noticeable during high-concurrency reads of performance statistics. Currently, to reduce the impact of performance statistics on user business, vendors restrict read / write operations to single-threaded processes. However, when multiple management software programs request performance statistics simultaneously, queuing occurs, potentially causing some programs to take a long time to display performance statistics curves, or even timeouts. When a request times out, it is resent, further increasing the queue load. Management software obtains performance statistics through underlying software, ultimately reading from the hard drive and consuming disk I / O, which may affect user business operations.

[0003] It is evident that solving the problems of timeout and queuing for performance statistics requests, reducing the interaction between the server and the underlying software, and reducing disk input / output usage are issues that need to be addressed by those skilled in the art. Summary of the Invention

[0004] The purpose of this invention is to provide a method and electronic device for acquiring performance data in storage array management software, which can solve the problems of performance statistics request timeouts and queuing, reduce the interaction between the server and the underlying software, and reduce hard disk input / output usage. The specific solution is as follows: In a first aspect, this application discloses a method for acquiring performance data of storage array management software, applied to a server, including: Obtain the first performance acquisition request sent by the target client for the storage array management software; First performance data corresponding to the first performance acquisition request is filtered from the first cache; the first cache is used to cache historical performance data actively pushed by the target underlying software after the target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is a subscription operation initiated by the server to the target underlying software; If the first condition is not met, then search for the second performance data corresponding to the first performance acquisition request from other clients; the first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request. If the second condition is not met, then construct a corresponding second performance acquisition request for the missing performance data; the second condition is that the combined data of the first and second performance data contains all the required performance data. By directly interacting with the target underlying software, the third performance data corresponding to the second performance acquisition request is obtained, and based on the first performance data, the second performance data, and the third performance data, the target response result corresponding to the first performance acquisition request is generated and returned.

[0005] Secondly, this application discloses an electronic device, comprising: Memory, used to store computer programs; A processor, used to execute a computer program, implements the steps of the aforementioned method for acquiring performance data of the storage array management software.

[0006] Thirdly, this application discloses a computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, it implements the steps of the aforementioned storage array management software performance data acquisition method.

[0007] As can be seen, this application provides a method for acquiring performance data of storage array management software, including acquiring a first performance acquisition request sent by a target client for the storage array management software; filtering first performance data corresponding to the first performance acquisition request from a first cache; the first cache is used to cache historical performance data actively pushed by the target underlying software after a target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is a subscription operation initiated by the server to the target underlying software; if the first condition is not met, then searching for second performance data corresponding to the first performance acquisition request from other clients; the first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request; if the second condition is not met, then constructing a corresponding second performance acquisition request for the currently missing performance data; the second condition is that the merged data of the first performance data and the second performance data contains all the required performance data; acquiring third performance data corresponding to the second performance acquisition request through direct interaction with the target underlying software, and generating and returning a target response result corresponding to the first performance acquisition request based on the first performance data, the second performance data, and the third performance data. The first cache in this application is used to cache historical performance data actively pushed by the target underlying software after the target subscription operation. This eliminates the need for the server to actively read performance data from the storage hard drive, reducing the I / O pressure on the mechanical hard drive and minimizing resource competition between performance statistics operations and user services. The first cache filters the first performance data corresponding to the first performance acquisition request. If the first condition is not met, the second performance data corresponding to the first performance acquisition request is searched from other clients. This fills in some missing data without direct interaction with the target underlying software, reducing the occupation of target underlying software resources and solving the timeout and queuing problems of performance statistics requests. If the second condition is not met, a corresponding second performance acquisition request is constructed for the missing performance data. Through direct interaction with the target underlying software, the third performance data corresponding to the second performance acquisition request is obtained, avoiding request failure due to missing data, ensuring the availability of the performance statistics function, avoiding the waste of underlying software resources caused by full requests, and enabling the target underlying software to process core data query needs more efficiently. Based on the first, second, and third performance data, the target response result corresponding to the first performance acquisition request is generated and returned, enhancing the system's scalability to different business needs and flexibly adapting to different data requirement scenarios. Attached Figure Description

[0008] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0009] Figure 1 This is a flowchart of a method for acquiring performance data in storage array management software disclosed in this application; Figure 2 This is a flowchart illustrating the specific process of acquiring performance data for a storage array management software disclosed in this application. Figure 3 This application discloses a specific flowchart for processing a fourth performance acquisition request; Figure 4 This is a schematic diagram of the performance data acquisition device for a storage array management software disclosed in this application. Detailed Implementation

[0010] 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, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0011] Storage performance statistics are typically stored for about three years on hard drives. Reading and writing these statistics consumes storage array I / O, impacting the performance of user business data, especially on mechanical hard drives. The impact is particularly noticeable during high-concurrency reads of performance statistics. Currently, vendors limit performance statistics reads to single-threaded operation to reduce the impact on user business. However, when multiple management software programs request performance statistics simultaneously, queuing occurs, potentially causing some programs to take a long time to display performance statistics curves, or even timeouts. When a request times out, it is resent, further increasing the queue load. Management software obtains performance statistics through underlying software, ultimately reading from the hard drive and consuming disk I / O, which can also affect user business. Therefore, resolving performance statistics request timeout and queuing issues, reducing server-side interaction with underlying software, and minimizing disk I / O usage are problems that those skilled in the art need to address.

[0012] See Figure 1 As shown in the figure, this invention discloses a method for acquiring performance data of storage array management software, applied to the server side, and specifically includes: Step S11: Obtain the first performance acquisition request sent by the target client for the storage array management software.

[0013] Step S12: Filter the first performance data corresponding to the first performance acquisition request from the first cache; the first cache is used to cache the historical performance data actively pushed by the target underlying software after the target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is the subscription operation initiated by the server to the target underlying software.

[0014] In this embodiment, before filtering the first performance data corresponding to the first performance acquisition request from the first cache, the method further includes: calculating the number of IO read and write operations for each object in the second cache; the second cache is used to cache the latest collected performance data of all objects in the storage array management software; filtering the target object from each object according to the number of IO read and write operations; and for the target object, initiating a corresponding target subscription operation to the target underlying software so that the target underlying software actively pushes the historical performance data corresponding to the target object to the first cache after the target subscription operation.

[0015] Performance statistics from a few minutes to 7 days are typically used for real-time fault diagnosis, 7 days to 90 days for trend analysis, issue backtracking, and capacity planning, and 90 days to several years for strategic planning and compliance auditing. It's clear that data older than 7 days is used less frequently and is generally not viewed by multiple clients. Data within 7 days represents high user attention (with the highest attention within 3 days), and is used more frequently. Therefore, caching performance statistics within 7 days is sufficient for most user scenarios, although the data volume is still relatively large.

[0016] This application filters target objects by calculating the number of I / O read and write operations for each object in the second cache, ensuring that the first cache prioritizes caching core object data with high access frequency, which meets the needs of users who frequently view hot data.

[0017] This application utilizes a second cache to cache the latest collected performance data for all objects in the storage array management software. After the storage array management software starts, the second cache subscribes to data from the target underlying software. Subsequently, the target underlying software pushes sampled data to the second cache each time it samples, and the second cache only retains the most recent sampled data for each object. By subscribing to the underlying software only for the target objects, cache redundancy and push pressure on the underlying software caused by indiscriminate subscriptions are avoided. This allows cache resources to be concentrated on serving high-demand objects, indirectly improving the query hit rate of the first cache and reducing subsequent data replenishment requests.

[0018] The first cache stores historical performance data for a subset of objects. The second cache is used to calculate the n target objects with the highest I / O for each object type. The latest collected performance data for these target objects is extracted and saved. Then, the underlying software subscribes to this data. Subsequently, the underlying software pushes the data from these target objects to the first cache each time it samples it. The first cache retains a maximum of 7 days' worth of data. Here, n can be determined based on the specific application and the available cache size. The number of cached objects for each object type also doesn't need to be the same; it can be adjusted according to the specific application.

[0019] This application avoids the storage array management software from reading the hard disk to obtain real-time performance data by establishing a second cache and using data push technology, thereby reducing hard disk I / O usage. By establishing and dynamically updating the first cache, high-interest object data is prioritized for storage, so that most requests can be responded to directly from the cache, reducing the number of interactions between the server and the underlying software.

[0020] The method for acquiring performance data of the storage array management software in this application further includes: determining the performance data variance and average value of each target object in the first cache based on the first cycle and historical performance data in the first cache; using the ratio between the performance data variance and average value as the performance fluctuation ratio value; and managing each target object in the first cache and its corresponding historical performance data based on the performance fluctuation ratio value.

[0021] For example, the performance fluctuation ratio of objects in the first cache is calculated every 3 days. This invention uses variance to determine performance fluctuation, and the specific formula is as follows: ; ; ; in, For object I / O performance values, m The number of performance data points within 3 days. Variance represents the magnitude of performance fluctuation. a This indicates the fluctuation ratio, based on empirical values. a Fluctuations below 0.05 are normal and require no special attention.

[0022] This application quantifies performance fluctuations by calculating the variance, average, and fluctuation ratio of the target object's performance data, accurately identifying objects with abnormal fluctuations that require focused attention. By dynamically evicting objects with stable performance fluctuations from the first cache that do not require attention, it ensures that the cache space always efficiently serves the most critical high-load or abnormally fluctuating objects, improving cache utilization and query hit rate. Objects requiring fault diagnosis are generally those with significant performance fluctuations and have received the most attention within the last 3 days. Therefore, the cache is updated every 3 days, deleting objects with smaller fluctuations and replenishing it with the most frequently accessed objects. Furthermore, when updating the cache, it doesn't update 7 days' worth of data at once, but rather updates it point by point. Data is directly pushed over when sampled by the underlying software, thus avoiding disk I / O and having minimal impact on user business.

[0023] The management of each target object and its corresponding historical performance data in the first cache based on the performance fluctuation ratio value includes: determining the performance fluctuation ratio threshold according to business needs; determining whether the performance fluctuation ratio value corresponding to each target object is less than the performance fluctuation ratio threshold; if there is a target object with a performance fluctuation ratio value less than the performance fluctuation ratio threshold, then the corresponding target object and its corresponding historical performance data are deleted from the first cache.

[0024] Extract the n most frequently accessed target objects based on the number of I / O read / write operations, with a performance fluctuation threshold of 0.05. a Target objects with a value less than 0.05 and not being the most frequently accessed data are removed from the first cache, and their subscription to the underlying software is unsubscribed. Target objects not currently in the cache are added to the first cache and subscribed to the underlying software. Updates to the first cache maintain the cached objects that are expected to receive high attention and have a high probability of being viewed by the user.

[0025] This application, based on a performance fluctuation ratio threshold, deletes objects and corresponding data with mild fluctuations that do not require attention. This prevents low-value data from occupying cache space, ensuring that the cache always stores high-value data. It dynamically manages cache content, which not only avoids cache overflow but also improves the cache hit probability of subsequent performance requests, reduces query latency caused by cache redundancy, and reduces the resource consumption of the underlying software repeatedly pushing low-value data.

[0026] Step S13: If the first condition is not met, search for the second performance data corresponding to the first performance acquisition request from other clients; the first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request.

[0027] In this embodiment, if the first condition is not met, after searching for the second performance data corresponding to the first performance acquisition request from other clients, the method further includes: if the second condition is met, then generating and returning the target response result corresponding to the first performance acquisition request based on the first performance data and the second performance data.

[0028] This application leverages other clients to obtain performance data, generating and returning the target response result without waiting for interaction with the underlying software, further shortening the processing time of a single request.

[0029] Step S14: If the second condition is not met, construct a corresponding second performance acquisition request for the missing performance data; the second condition is that the merged data of the first and second performance data contains all the required performance data.

[0030] Step S15: Obtain the third performance data corresponding to the second performance acquisition request through direct interaction with the target underlying software, and generate and return the target response result corresponding to the first performance acquisition request based on the first performance data, the second performance data and the third performance data.

[0031] In this embodiment, it is determined whether there is a third performance acquisition request in the current pending interaction queue; the third performance acquisition request is a request whose request content is consistent with the request content of the second performance acquisition request; if there is a third performance acquisition request in the current pending interaction queue, the third performance acquisition request in the current pending interaction queue is processed through direct interaction with the target underlying software; after the third performance acquisition request is processed, the performance data corresponding to the third performance acquisition request is determined as the third performance data corresponding to the second performance acquisition request.

[0032] This application avoids duplicate submissions of the same request to the target underlying software by determining whether a third-party performance acquisition request exists in the current pending interaction queue, thereby reducing the repetitive processing pressure and disk I / O usage of the target underlying software. When a duplicate request already exists, the processing result is directly reused; otherwise, a new request is added, optimizing queue resource allocation, shortening the queuing time for new requests, and reducing the probability of request timeouts.

[0033] The process of determining whether a third performance acquisition request exists in the current pending interaction queue also includes: if no third performance acquisition request exists in the current pending interaction queue, adding a second performance acquisition request to the current pending interaction queue; and after the second performance acquisition request in the current pending interaction queue is processed through direct interaction with the target underlying software, acquiring the corresponding third performance data.

[0034] In this embodiment, the specific process for acquiring performance data from the storage array management software is as follows: Figure 2 As shown, the process is as follows: (1) After receiving the first performance acquisition request sent by the target client, save the first performance acquisition request (to know which clients have which performance data). (2) Retrieve the first performance data required by the request from the first cache; (3) If the first condition is not met, proceed to the next step; if the first condition is met, proceed to (11). (4) Determine whether other clients have second performance data corresponding to the first performance acquisition request; if they do, proceed to the next step, otherwise proceed to (7). (5) Request data from other clients (possibly multiple clients). After the second performance data is returned, proceed to the next step. (6) If the second condition is met, proceed to (11); otherwise, proceed to the next step. (7) Construct a corresponding second performance acquisition request HQ0 for the currently missing performance data; (8) If there is a third performance acquisition request (same object type, time period, and object list includes the object list in HQ0) in the current pending interaction queue that interacts with the target underlying software, then record it as HQ1 (i.e., third performance acquisition request) and proceed to the next step; otherwise, proceed to (10). (9) After HQ1 is processed, proceed to (11). (10) Place HQ0 in the current pending interaction queue for processing. After processing is completed, proceed to the next step; (11) Combine the data obtained in the previous steps into complete response data and return it to the target client.

[0035] The method for obtaining performance data of storage array management software in this application further includes: generating a subscription request for the target client; sending the subscription request to the target underlying software so that the target underlying software can obtain the real-time performance data corresponding to the subscription request; caching the real-time performance data pushed by the target underlying software through a third cache; and when a fourth performance acquisition request is received from the target client, sending the real-time performance data locally cached in the third cache to the target client.

[0036] This application uses subscription requests to allow the target underlying software to actively push real-time performance data to a third cache. When the client initiates a fourth performance acquisition request, it directly returns data from the cache, completely avoiding disk I / O operations in the real-time data acquisition process.

[0037] To address the need for management software to periodically add real-time performance data, the third cache continuously caches the latest real-time data, eliminating the need for the target client to interact with the target underlying software with each request. This improves the smoothness of real-time curve display, ensures the stability of real-time data response, and completely avoids interaction with the underlying software and disk read operations during the real-time data acquisition process.

[0038] In this embodiment, after processing the first performance acquisition request, the system subscribes to the real-time performance data corresponding to this request from the target underlying software. After subscribing, the target underlying software samples the subscribed data and pushes it to the third cache. The third cache can retain data for a maximum duration of m, where m is the maximum duration for processing historical performance requests (including queuing time). This does not consume disk I / O and has almost no impact on user services. When a fourth performance acquisition request is subsequently received from the target client, the system directly retrieves the required data from the third cache and returns it to the target client. The specific process for handling the fourth performance acquisition request is as follows: Figure 3 As shown, the process is as follows: 1. The second server subscribes to real-time performance statistics corresponding to the first performance acquisition request from the target underlying software; 2. Target underlying software: Periodic sampling of subscribed data; (regardless of whether it is subscribed, the target underlying software will periodically sample performance statistics). 3. Target underlying software: Push subscription data to a third-party cache; 4. Target client: Sends a fourth performance acquisition request; 5. First server: Retrieves the required data from the third cache; 6. First server: Returns the required data to the client; 7. Target Client: Appends the received real-time performance data to the performance curve.

[0039] In this embodiment, any performance acquisition request sent by any client is saved, so as to determine the performance data obtained by each client after the request is processed based on the saved performance acquisition requests initiated by each client; if the third condition is met, a request deletion operation is triggered to delete the corresponding performance acquisition request saved locally; wherein, the third condition includes receiving a deletion request for any performance acquisition request saved locally, or not receiving any request with the same content as any performance acquisition request saved locally within the second period.

[0040] In other words, any performance acquisition request sent by any client that is saved will be deleted when the client subsequently notifies the client of deletion, indicating that the client is no longer viewing this performance curve. This triggers a deletion operation to remove the corresponding performance acquisition request saved locally. Additionally, if no request identical to any locally saved performance acquisition request is received within the corresponding 10 sampling intervals, this request will also be deleted. Therefore, it can promptly clean up canceled or long-term non-duplicate request records, avoiding redundant request storage that occupies system resources, improving server-side data query and management efficiency. Deleting long-term non-duplicate request records ensures that the request data recorded by the server matches the client's current needs, avoiding invalid operations caused by searching for mutual resources based on expired request data, and further optimizing the processing flow.

[0041] The key points of this application are: a multi-layered caching architecture consisting of a first cache, a second cache, and a third cache is constructed, which replaces direct disk reads in multiple stages through the data push mechanism of the target underlying software; a caching mechanism based on object popularity and performance fluctuations is designed to dynamically update the cache, ensuring that cache resources are concentrated on high-interest objects by periodically calculating variance and eliminating stable, uninterested objects; and the historical performance query is linked to the real-time performance subscription process, so that after the server processes the first performance acquisition request, it automatically subscribes to the corresponding real-time data from the target underlying software, establishing a data channel that does not require disk reads for subsequent real-time performance requests.

[0042] Furthermore, priority flags can be set for performance acquisition requests: fault diagnosis requests are marked as high priority, such as historical data queries during real-time fault investigation; trend analysis and compliance audit requests are marked as normal priority; the target underlying software interaction queue adopts a high-priority request queuing mechanism to ensure rapid response to fault diagnosis requests and reduce the risk of business interruption. Moreover, when transmitting performance data between the client and server, and between the server and the target underlying software, lightweight compression algorithms can be used to reduce network bandwidth consumption, especially suitable for cross-data center deployment scenarios; when clients mutually assist in data transmission, only missing incremental data fragments are synchronized, rather than the complete dataset, reducing transmission time and network load.

[0043] In this embodiment, a first performance acquisition request for the storage array management software sent by the target client is obtained; first performance data corresponding to the first performance acquisition request is filtered from a first cache; the first cache is used to cache historical performance data actively pushed by the target underlying software after the target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is a subscription operation initiated by the server to the target underlying software; if the first condition is not met, second performance data corresponding to the first performance acquisition request is searched from other clients; the first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request; if the second condition is not met, a corresponding second performance acquisition request is constructed for the currently missing performance data; the second condition is that the merged data of the first and second performance data contains all the required performance data; third performance data corresponding to the second performance acquisition request is obtained through direct interaction with the target underlying software, and a target response result corresponding to the first performance acquisition request is generated and returned based on the first performance data, the second performance data, and the third performance data. The first cache in this application is used to cache historical performance data actively pushed by the target underlying software after the target subscription operation. This eliminates the need for the server to actively read performance data from the storage hard drive, reducing the I / O pressure on the mechanical hard drive and minimizing resource competition between performance statistics operations and user services. The first cache filters the first performance data corresponding to the first performance acquisition request. If the first condition is not met, the second performance data corresponding to the first performance acquisition request is searched from other clients. This fills in some missing data without direct interaction with the target underlying software, reducing the occupation of target underlying software resources and solving the timeout and queuing problems of performance statistics requests. If the second condition is not met, a corresponding second performance acquisition request is constructed for the missing performance data. Through direct interaction with the target underlying software, the third performance data corresponding to the second performance acquisition request is obtained, avoiding request failure due to missing data, ensuring the availability of the performance statistics function, avoiding the waste of underlying software resources caused by full requests, and enabling the target underlying software to process core data query needs more efficiently. Based on the first, second, and third performance data, the target response result corresponding to the first performance acquisition request is generated and returned, enhancing the system's scalability to different business needs and flexibly adapting to different data requirement scenarios.

[0044] See Figure 4 As shown in the figure, this invention discloses a performance data acquisition device for storage array management software, applied to the server side, which may specifically include: Module 11 is used to acquire the first performance acquisition request sent by the target client for the storage array management software; The first performance data filtering module 12 is used to filter the first performance data corresponding to the first performance acquisition request from the first cache; the first cache is used to cache the historical performance data actively pushed by the target underlying software after the target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is a subscription operation initiated by the server to the target underlying software; The second performance data lookup module 13 is used to look up the second performance data corresponding to the first performance acquisition request from other clients if the first condition is not met. The first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request. The request construction module 14 is used to construct a corresponding second performance acquisition request for the missing performance data if the second condition is not currently met; the second condition is that the merged data of the first performance data and the second performance data contains all the required performance data. The target response result generation module 15 is used to obtain the third performance data corresponding to the second performance acquisition request through direct interaction with the target underlying software, and to generate and return the target response result corresponding to the first performance acquisition request based on the first performance data, the second performance data and the third performance data.

[0045] In some specific embodiments, the first performance data filtering module 12 may specifically include: The IO read / write operation count calculation module is used to calculate the number of IO read / write operations for each object in the second cache; the second cache is used to cache the latest collected performance data for all objects in the storage array management software; The target object filtering module is used to filter target objects from various objects based on the number of IO read and write operations. The target subscription operation initiation module is used to initiate a corresponding target subscription operation to the target underlying software for the target object, so that the target underlying software can actively push the historical performance data corresponding to the target object to the first cache after the target subscription operation.

[0046] In some specific embodiments, the performance data acquisition device for the storage array management software may further include: The variance and mean determination module is used to determine the variance and mean of the performance data of each target object in the first cache based on the first period and on historical performance data in the first cache. The performance fluctuation ratio determination module is used to use the ratio between the variance and the mean of the performance data as the performance fluctuation ratio. The historical performance data management module is used to manage each target object in the first cache and its corresponding historical performance data based on the performance fluctuation ratio.

[0047] In some specific embodiments, the historical performance data management module may specifically include: The threshold determination module is used to determine the performance fluctuation ratio threshold based on business requirements; The first judgment module is used to determine whether the performance fluctuation ratio value corresponding to each target object is less than the performance fluctuation ratio threshold. The deletion module is used to delete the corresponding target object and its historical performance data from the first cache if there is a target object whose performance fluctuation ratio is less than the performance fluctuation ratio threshold.

[0048] In some specific embodiments, the second performance data lookup module 13 may specifically include: The first result generation module is used to generate and return the target response result corresponding to the first performance acquisition request based on the first performance data and the second performance data if the second condition is met.

[0049] In some specific embodiments, the target response result generation module 15 may specifically include: The second judgment module is used to determine whether there is a third performance acquisition request in the current pending interaction queue; the third performance acquisition request is a request whose content is consistent with the content of the second performance acquisition request. The third performance acquisition request processing module is used to process the third performance acquisition request in the current pending interaction queue by directly interacting with the target underlying software if there is a third performance acquisition request in the current pending interaction queue. The third performance data determination module is used to determine the performance data corresponding to the third performance acquisition request as the third performance data corresponding to the second performance acquisition request after the third performance acquisition request is processed.

[0050] In some specific embodiments, the second determination module may specifically include: The second performance acquisition request addition module is used to add the second performance acquisition request to the current pending interaction queue if there is no third performance acquisition request in the current pending interaction queue. The third performance data acquisition module is used to acquire the corresponding third performance data after the second performance acquisition request in the current pending interaction queue has been processed through direct interaction with the target underlying software.

[0051] In some specific embodiments, the performance data acquisition device for the storage array management software may further include: The subscription request generation module is used to generate subscription requests for the target client; The subscription request sending module is used to send subscription requests to the target underlying software so that the target underlying software can obtain real-time performance data corresponding to the subscription request; The real-time performance data caching module is used to cache the real-time performance data pushed by the target underlying software through a third-party cache. The real-time performance data sending module is used to send the real-time performance data cached locally in the third cache to the target client when a fourth performance acquisition request is received from the target client.

[0052] In some specific embodiments, the performance data acquisition device for the storage array management software may further include: The performance data acquisition module is used to save any performance acquisition request sent by any client, and to determine the performance data obtained by each client after the request is processed based on the saved performance acquisition requests initiated by each client. The performance acquisition request deletion module is used to trigger a request deletion operation if the third condition is met, so as to delete the corresponding performance acquisition request stored locally. The third condition includes receiving a deletion request for any locally stored performance acquisition request, or not receiving any requests with the same content as any locally stored performance acquisition request within the second period.

[0053] The description of the features of the performance data acquisition device for storage array management software in the embodiment can be found in the relevant description of the performance data acquisition method for storage array management software in the embodiment, and will not be repeated here.

[0054] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above embodiments of the performance data acquisition method for memory array management software.

[0055] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in the embodiments of the performance data acquisition method of any of the above-described storage array management software at runtime.

[0056] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0057] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0058] The above provides a detailed description of the performance data acquisition method and electronic device for storage array management software provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A method for acquiring performance data of storage array management software, characterized in that, Applied to the server side, including: Obtain the first performance acquisition request sent by the target client for the storage array management software; First performance data corresponding to the first performance acquisition request is filtered from the first cache; the first cache is used to cache historical performance data actively pushed by the target underlying software after the target subscription operation; the target underlying software is the underlying software corresponding to the storage array management software; the target subscription operation is a subscription operation initiated by the server to the target underlying software; If the first condition is not met, then search for the second performance data corresponding to the first performance acquisition request from other clients; the first condition is that the first performance data contains all the required performance data corresponding to the first performance acquisition request. If the second condition is not met at present, a corresponding second performance acquisition request is constructed for the missing performance data; the second condition is that the merged data of the first performance data and the second performance data contains all the required performance data. By directly interacting with the target underlying software, the third performance data corresponding to the second performance acquisition request is obtained, and based on the first performance data, the second performance data and the third performance data, the target response result corresponding to the first performance acquisition request is generated and returned.

2. The method for acquiring performance data of storage array management software according to claim 1, characterized in that, Before filtering the first performance data corresponding to the first performance acquisition request from the first cache, the method further includes: Calculate the number of I / O read and write operations for each object in the second cache; the second cache is used to cache the latest collected performance data for all objects in the storage array management software. Target objects are selected from the objects based on the number of I / O read / write operations; For the target object, a corresponding target subscription operation is initiated to the target underlying software so that the target underlying software actively pushes the historical performance data corresponding to the target object to the first cache after the target subscription operation.

3. The method for acquiring performance data of storage array management software according to claim 2, characterized in that, Also includes: Based on the first cycle and historical performance data in the first cache, determine the variance and average of the performance data of each target object in the first cache; The ratio between the variance and the average of the performance data is used as the performance fluctuation ratio. The target objects in the first cache and their corresponding historical performance data are managed based on the performance fluctuation ratio.

4. The method for acquiring performance data of storage array management software according to claim 3, characterized in that, The management of each target object in the first cache and its corresponding historical performance data based on the performance fluctuation ratio includes: Determine the performance fluctuation ratio threshold based on business needs; Determine whether the performance fluctuation ratio value corresponding to each of the target objects is less than the performance fluctuation ratio threshold; If there is a target object whose performance fluctuation ratio is less than the performance fluctuation ratio threshold, then the corresponding target object and its corresponding historical performance data will be deleted from the first cache.

5. The method for acquiring performance data of storage array management software according to claim 1, characterized in that, If the first condition is not currently met, then after searching for the second performance data corresponding to the first performance acquisition request from other clients, the method further includes: If the second condition is met, then based on the first performance data and the second performance data, a target response result corresponding to the first performance acquisition request is generated and returned.

6. The method for acquiring performance data of storage array management software according to claim 1, characterized in that, The step of obtaining third performance data corresponding to the second performance acquisition request through direct interaction with the target underlying software includes: Determine whether there is a third performance acquisition request in the current pending interaction queue; the third performance acquisition request is a request whose content is consistent with the content of the second performance acquisition request; If there is a third performance acquisition request in the current pending interaction queue, the third performance acquisition request in the current pending interaction queue will be processed through direct interaction with the target underlying software. After the third performance acquisition request is processed, the performance data corresponding to the third performance acquisition request is determined as the third performance data corresponding to the second performance acquisition request.

7. The method for acquiring performance data of storage array management software according to claim 6, characterized in that, After determining whether there is a third-party performance acquisition request in the current pending interaction queue, the process further includes: If there is no third performance acquisition request in the current pending interaction queue, then the second performance acquisition request is added to the current pending interaction queue. After the second performance acquisition request in the current pending interaction queue is processed through direct interaction with the target underlying software, the corresponding third performance data is obtained.

8. The method for acquiring performance data of storage array management software according to claim 1, characterized in that, Also includes: Generate a subscription request for the target client; The subscription request is sent to the target underlying software so that the target underlying software can obtain the real-time performance data corresponding to the subscription request; The real-time performance data pushed by the target underlying software is cached through a third cache; When the target client sends a fourth performance acquisition request, the real-time performance data cached locally in the third cache is sent to the target client.

9. The method for acquiring performance data of storage array management software according to any one of claims 1 to 8, characterized in that, Also includes: Save any performance acquisition request sent by any client, and determine the performance data obtained by each client after the request is processed based on the saved performance acquisition requests initiated by each client. If the third condition is met, a request deletion operation is triggered to delete the corresponding performance acquisition request stored locally. The third condition includes receiving a deletion request for any locally stored performance acquisition request, or not receiving any request with the same content as any locally stored performance acquisition request within the second period.

10. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the performance data acquisition method of the storage array management software as described in any one of claims 1 to 9 when executing the computer program.