A method for acquiring performance data of storage array management software and an electronic device

CN122432008BActive Publication Date: 2026-08-14INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-06-22
Publication Date
2026-08-14

AI Technical Summary

Technical Problem

[0002]存储的性能统计数据一般保存3年左右,需要保存于硬盘中,对性能统计数据的读写会占用存储阵列的IO(Input/Output,输入/输出),从而影响用户业务数据的性能,特别是机械硬盘,且高并发读取性能统计数据时,对用户业务影响比较明显

Benefits of technology

[0007]可见,本申请提供了一种存储阵列管理软件的性能数据获取方法,包括获取目标客户端发送的针对存储阵列管理软件的第一性能获取请求;从第一缓存中筛选与第一性能获取请求对应的第一性能数据;第一缓存用于缓存目标底层软件在目标订阅操作后主动推送的历史性能数据;目标底层软件为存储阵列管理软件对应的底层软件;目标订阅操作为服务端向目标底层软件发起的订阅操作;若当前不满足第一条件,则从其他客户端中查找第一性能获取请求对应的第二性能数据;第一条件为第一性能数据中包含第一性能获取请求对应的全部所需性能数据;若当前不满足第二条件,则针对当前所缺性能数据构造相应的第二性能获取请求;第二条件为第一性能数据和第二性能数据的合并后数据包含全部所需性能数据;通过与目标底层软件的直接交互,以获取第二性能获取请求对应的第三性能数据,并基于第一性能数据、第二性能数据和第三性能数据,生成并返回第一性能获取请求对应的目标响应结果。本申请中的第一缓存用于缓存目标底层软件在目标订阅操作后主动推送的历史性能数据,无需服务端主动读取存储硬盘中的性能数据,降低机械硬盘的IO压力,减少性能统计操作与用户业务的资源竞争,从第一缓存中筛选与第一性能获取请求对应的第一性能数据,若当前不满足第一条件,则从其他客户端中查找第一性能获取请求对应的第二性能数据,无需直接与目标底层软件交互即可补充部分缺失数据,减少对目标底层软件资源的占用,解决性能统计请求超时和排队问题,若当前不满足第二条件,则针对当前所缺性能数据构造相应的第二性能获取请求,通过与目标底层软件的直接交互,以获取第二性能获取请求对应的第三性能数据,避免因数据缺失导致请求失败,保障性能统计功能的可用性,避免全量请求导致的底软资源浪费,使目标底层软件能更高效地处理核心数据查询需求,基于第一性能数据、第二性能数据和第三性能数据,生成并返回第一性能获取请求对应的目标响应结果,增强系统对不同业务需求的扩展性,灵活适配不同数据需求场景。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122432008B_ABST
    Figure CN122432008B_ABST
Patent Text Reader

Abstract

This application discloses a method for acquiring performance data in storage array management software and an electronic device, relating to the field of computer technology. The method includes: filtering first performance data from a first cache corresponding to a first performance acquisition request sent by a target client; if a first condition is not met, searching for second performance data corresponding to the first performance acquisition request from other clients; the first condition being that the first performance data contains all the required performance data corresponding to the first performance acquisition request; if a second condition is not met, constructing a corresponding second performance acquisition request for the currently missing 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, second, and third performance data. This solves the timeout and queuing problems of performance statistics requests and reduces 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 can impact user business.

[0003] It is evident that resolving issues such as timeouts and queuing in performance statistics requests, reducing interaction between the server and underlying software, and minimizing disk input / output usage are problems that those skilled in the art need to address. 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, comprising: 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, including: 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 complete, 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 the target client sends a fourth performance acquisition request.

[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 a third-party performance acquisition request exists 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 a fourth performance acquisition request is received from the target client, 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 deletion request 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.

Citation Information

Patent Citations

  • Data caching method and device, equipment and storage medium

    CN114553960A

  • Layered caching method and system and related components

    CN116048425A