Process management apparatus and process management method
The process management device uses a Bayesian estimation model and machine learning to differentiate between faults in single-threaded and multi-threaded processing, enhancing fault analysis accuracy.
Patent Information
- Application Number
- JP2024020792
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-15
- Publication Date
- 2025-08-27
- Estimated Expiration
- 2044-02-15
AI Technical Summary
Conventional techniques fail to distinguish between faults occurring in multi-threaded processing and single-threaded processing, making it difficult to analyze process faults effectively.
A process management device that utilizes a Bayesian estimation model to set a likelihood function based on fault information notification data, determining whether a fault occurred in a single-threaded or multi-threaded processing thread using a machine learning model.
Enables easy identification of faults in single-threaded or multi-threaded processing by setting a likelihood function and using a machine learning model to classify fault occurrences accurately.
Smart Images

Figure 2025124996000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a process management apparatus and a process management method. [Background technology]
[0002] Conventionally, in order to distribute the processing load of a CPU, a program that executes single-thread processing and multi-thread processing in the same process has been used.
[0003] Furthermore, there has been known a technique for monitoring whether multiple threads are operating normally in a process, which is a unit of program execution, and for detecting a fault when the process or thread falls into an abnormal state. For example, Patent Document 1 discloses a technique for monitoring the presence or absence of a fault in each thread, regardless of the presence or absence of source code, by using alive information of each thread using function hooks.
[0004] However, with the technology disclosed in Patent Document 1, when a fault occurs in a process, the thread in which the fault occurred among multiple threads is detected, but it is not possible to identify whether the fault occurred in a thread related to multi-thread processing or in a thread related to single-thread processing, which can make it difficult to analyze the process fault. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-182561 Summary of the Invention [Problem to be solved by the invention]
[0006] As described above, according to conventional techniques, when a fault occurs in a process in which multi-thread processing and single-thread processing are executed, it is difficult to easily identify whether the fault occurred in the multi-thread processing or the single-thread processing.
[0007] The present invention has been made to solve the above-mentioned problems, and aims to easily identify whether the failure has occurred in the multi-threaded processing or the single-threaded processing when a failure occurs in a process in which multi-threaded processing and single-threaded processing are executed. [Means for solving the problem]
[0008] In order to solve the above-mentioned problems, the process management device of the present invention is a process management device that manages a process in which a first thread including one thread and a second thread including multiple threads are executed, and is equipped with a first acquisition unit configured to acquire the number of times fault information is notified to each of the multiple threads included in the second thread as observation data, a setting unit configured to set, based on the observation data, the probability that the fault information will be notified to each of the multiple threads included in the second thread under conditions in which a fault has occurred in the first thread, as a likelihood function of a Bayesian estimation model, a determination unit configured to determine whether a fault has occurred in the first thread based on the value of the set likelihood function, and a presentation unit configured to present the determination result by the determination unit.
[0009] In addition, the process management device of the present invention may further include a classification unit configured to provide the likelihood function as an unknown input to a trained machine learning model, perform calculations on the trained machine learning model, and classify into classification classes including a first classification class indicating that a fault has occurred in the first thread and a second classification class indicating that a fault has occurred in the second thread, and the presentation unit may present the classification results by the classification unit.
[0010] In order to solve the above-mentioned problems, the process management device of the present invention further includes a second acquisition unit configured to acquire learning data in which the likelihood function and the classification class indicated by the judgment result are associated, a learning unit configured to learn the relationship between the likelihood function and the classification class based on the learning data using a machine learning model, and a memory unit configured to store the trained machine learning model constructed by the learning unit, and the classification unit may read the trained machine learning model from the memory unit and perform calculations on the trained machine learning model.
[0011] In order to solve the above-mentioned problems, the process management method of the present invention is a process management method for managing a process in which a first thread including one thread and a second thread including multiple threads are executed, and includes a first acquisition step of acquiring, as observation data, the number of times fault information has been notified to each of the multiple threads included in the second thread; a setting step of setting, based on the observation data, the probability that the fault information will be notified to each of the multiple threads included in the second thread under conditions in which a fault has occurred in the first thread, as a likelihood function of a Bayesian estimation model; a determination step of determining whether a fault has occurred in the first thread based on the value of the likelihood function that has been set; and a presentation step of presenting the determination result from the determination step.
[0012] In addition, the process management method according to the present invention may further include a classification step of providing the likelihood function as an unknown input to a trained machine learning model, performing calculations on the trained machine learning model, and classifying the data into classification classes including a first classification class indicating that a fault has occurred in the first thread and a second classification class indicating that a fault has occurred in the second thread, and the presentation step may present the classification results from the classification step.
[0013] In addition, the process management method according to the present invention may further include a second acquisition step of acquiring learning data in which the likelihood function is associated with the classification class indicated by the judgment result, a learning step of learning the relationship between the likelihood function and the classification class based on the learning data using a machine learning model, and a storage step of storing the trained machine learning model constructed in the learning step in a storage unit, and the classification step may read out the trained machine learning model from the storage unit and perform calculations on the trained machine learning model. [Effects of the Invention]
[0014] According to the present invention, based on observation data, the probability that fault information will be notified to each of the multiple threads included in the second thread under the condition that a fault has occurred in the first thread is set as a likelihood function of the Bayesian estimation model, and based on the value of the set likelihood function, it is determined whether the process fault is caused by the fault that occurred in the first thread. Therefore, when a fault occurs in a process in which multi-thread processing and single-thread processing are executed, it is possible to easily identify whether the fault has occurred in the multi-thread processing or the single-thread processing. [Brief explanation of the drawings]
[0015] [Figure 1] FIG. 1 is a block diagram showing the configuration of a process management system including a process management device according to a first embodiment of the present invention. [Figure 2] FIG. 2 is a block diagram illustrating a hardware configuration of the process management apparatus according to the first embodiment. [Figure 3] FIG. 3 is a flowchart showing the operation of the process management device according to the first embodiment. [Figure 4] FIG. 4 is a block diagram showing a configuration of a process management device according to the second embodiment. [Figure 5] FIG. 5 is a diagram illustrating a learning unit included in the process management device according to the second embodiment. [Figure 6] FIG. 6 is a flowchart showing the operation of the process management device according to the second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0016] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will now be described in detail with reference to FIGS.
[0017] [First embodiment] 1 is a block diagram showing the configuration of a process management system including a process management device 1 according to a first embodiment of the present invention. When a process includes a first thread including one thread 21b that executes single-thread processing and a second thread including multiple threads 21a that execute multi-thread processing, the process management system according to this embodiment identifies whether a fault that has occurred in the process is a fault that has occurred in the first thread or a fault that has occurred in the second thread.
[0018] [Process control system configuration] 1, the process management system according to the present embodiment includes a process management device 1 and an information processing device 2. The process management device 1 and the information processing device 2 are connected via a bus 101, for example.
[0019] The information processing device 2 includes a CPU 20, a memory 21, a storage 22, a communication interface 23, and an input / output I / O 24. Software used in the information processing device 2 is configured, for example, by an application program that runs on an operating system (OS). In the information processing device 2, the OS generates a process 210 and multiple threads 21a, 21b within the process 210. In this embodiment, the OS generates, within the process 210, multiple threads 21a that execute multithread processing and a thread 21b that executes single-thread processing. In this embodiment, n (n is a positive integer) multiple threads 21a that execute multithread processing are generated.
[0020] Here, a process is the unit of execution of a program, and a thread is the unit of execution assigned to the CPU. One process contains one or more threads, and the thread is the unit executed by the CPU. Therefore, an application, which is a functional block that makes up software, corresponds to a process, and a processing block within a process corresponds to a thread.
[0021] Processes 210 that constitute the OS, applications, and services are loaded into memory 21 and executed by CPU 20. Memory 21 also contains a failure log 211 that records information about failures that occur in processes 210.
[0022] The process 210 is made up of a first thread including one thread 21b and a second thread including multiple threads 21a. The first thread executes single-thread processing, and the second thread executes multi-thread processing. In the example of FIG. 1, within one process 210, the first thread of single-thread processing and the second thread of multi-thread processing cooperate by accessing shared memory and the same data structure.
[0023] For example, if the information processing device 2 is a web server, the thread 21b executing single-thread processing can accept new requests and manage the requests and process basic request information. Furthermore, the multiple threads 21a executing multi-thread processing can independently process requests passed from the thread 21c executing single-thread processing (not shown), and can simultaneously process requests from different clients. Furthermore, the thread 21b executing single-thread processing shown in FIG. 1 can collectively respond to the client with the results of the multiple threads 21a involved in the multi-thread processing having finished processing each request.
[0024] In this embodiment, process faults caused by faults occurring in thread 21b executing single-thread processing or in multiple threads 21a executing multi-thread processing within process 210 are subject to management. Therefore, process faults not caused by faults such as abnormal operation of thread 21b of single-thread processing or multiple threads 21a of multi-thread processing are not subject to management. For example, process faults caused by file write errors, communication problems between processes, etc. in process 210 are not subject to management.
[0025] Information about a fault that has occurred in the process 210 is recorded in a fault log 211. Furthermore, the fault information recorded in the fault log 211, including the process identification information, details of the process fault, and a timestamp, is stored in the storage 22. Alternatively, a monitoring tool or debugging tool (not shown) that monitors the process 210 can monitor the process 210 and issue a notification when a fault is detected.
[0026] Examples of failures that may occur in threads 21a and 21b within process 210 include exceptions that occur in threads 21a and 21b, cases where exception handling is not performed appropriately, and cases where threads 21a and 21b crash due to the occurrence of a fatal error. Other examples include deadlocks that occur between multiple threads 21a and 21b, data conflicts that occur when shared data is accessed simultaneously, and scheduling problems for threads 21a and 21b.
[0027] When a fault occurs in thread 21b, for example, of threads 21a and 21b in process 210, thread 21b converts fault information into a message via a message queue and posts the queue. The fault information includes information about the fault that occurred and information identifying the thread from which the fault occurred. Other threads 21a in which no fault has occurred periodically monitor their own message queues, and when a new message notifying fault information from thread 21b arrives, the threads take action according to the extracted fault information message. Furthermore, when thread 21a receives fault information as a message from other thread 21b, event information including the identification information, timestamp, and message content of thread 21a that received the fault information message is recorded in fault log 211. Furthermore, information including the identification information, timestamp, and message content of thread 21b that sent the fault information message is recorded in fault log 211.
[0028] When threads 21a and 21b are notified of fault information, this can include an event in which threads 21a and 21b receive fault information messages from other threads via a message queue, as well as an event in which threads 21a and 21b in which an error has occurred insert the fault information as a message into the message queue. That is, an exchange of fault information messages occurs in response to the occurrence of a fault, and it is recognized that a notification of fault information has occurred in each of threads 21a and 21b from information recorded in fault log 211 that associates information capable of identifying threads 21a and 21b, information related to the fault information message, and a timestamp.
[0029] In this manner, in this embodiment, within the process 210, fault information is notified to the multiple threads 21a that execute multi-thread processing and the thread 21b that executes single-thread processing, and when a process fault occurs, it is identified whether the fault occurred on the side of the multiple threads 21a involved in the multi-thread processing or the fault occurred on the thread 21b that executes single-thread processing.
[0030] [Function block of process control device] The process management device 1 includes a first acquisition unit 10, a setting unit 11, a determination unit 12, a first storage unit 13, and a presentation unit 14. The process management device 1 manages a process 210 including a first thread including one thread 21b and a second thread including multiple threads 21a.
[0031] The first acquisition unit 10 acquires, as observation data, the number of times that fault information has been notified to each of the multiple threads 21a included in the second thread. Specifically, the first acquisition unit 10 can acquire, from the fault log 211 of the information processing device 2, the number of times that fault information has been notified to each of the multiple threads 21a that execute multithread processing during a set period. Alternatively, the first acquisition unit 10 can acquire information from the fault log 211 stored in the storage 22 of the information processing device 2. The first acquisition unit 10 can acquire the number of times that fault information has been notified to each thread 21a from information stored in the fault log 211 that associates identification information of the thread 21a, information related to the message of the fault information, and a timestamp.
[0032] For example, if one notification of fault information takes place over 1 ms, the first acquisition unit 10 can count how many times fault information is notified in each thread 21a within a set period of 1000 ms.
[0033] The first acquisition unit 10 can further acquire the number of times that a notification of fault information has occurred in the thread 21b within a set period. Specifically, the first acquisition unit 10 can acquire the number of times that a notification of fault information has occurred in the thread 21b within a set period from information stored in the fault log 211, which associates identification information of the thread 21b that executes single-thread processing, information related to the message of the fault information, and a timestamp.
[0034] The setting unit 11 sets, based on the observation data, the probability that fault information will be notified in each of the plurality of threads 21a included in the second thread of the multi-thread processing under the condition that a fault has occurred in the thread 21b of the single-thread processing, which is the first thread, as a likelihood function of the Bayesian estimation model. The setting unit 11 sets, for each of the plurality of threads 21a related to the multi-thread processing, from 1 to n, the likelihood function P(Y i|X) = (number of times that fault information is notified) / (set period, for example, 1000 ms). The (number of times that fault information is notified) is calculated by (number of times that fault information occurs) x (fault information notification interval). For example, if fault information is notified 200 times at 1 ms intervals, the likelihood function P(Y i |X) can be calculated by (200 × 1 ms) / (1000 ms).
[0035] In the Bayesian estimation model used in this embodiment, the probability that a fault occurs in the thread 21b that performs single-thread processing is set as a prior distribution P(X), and a likelihood function P(Y i The probability distribution updated by (|X) is defined as the posterior distribution P(X|Y). The posterior distribution P(X|Y) is the probability that a fault occurs in the thread 21b performing single-thread processing under the condition that fault information is notified between the thread 21b performing single-thread processing and the multiple threads 21a performing multi-thread processing. In this way, the Bayesian inference model is a probability model that determines the probability of an event under certain conditions from known probabilities and observation data. The parameters of the Bayesian inference model will be described below.
[0036] In the Bayesian estimation model, first, event X is defined as an event that has a certain cause. Furthermore, event Y is defined as an event that is assumed to have occurred due to a certain cause. Events X and Y are treated as random variables. Specifically, event X is defined as an event in which a fault occurs in thread 21b that performs single-thread processing, and event Y is defined as an event in which fault information is notified in thread 21b that performs single-thread processing and multiple threads 21a that perform multi-thread processing.
[0037] In this embodiment, the event Y is, in particular, an event Y={Y1, Y2, . . . , Y} for each of n threads 21a that perform multithread processing. n-1 ,Y n}, and an event in which a notification of fault information occurs in each thread 21a is used.
[0038] The probability distribution P(X) of the occurrence of event X can be assumed as a prior distribution, which is the distribution of parameters before observation data is given. Also, the probability distribution P(Y) of the occurrence of event Y, which is the probability distribution in which fault information is notified to thread 21b performing single-thread processing and multiple threads 21a performing multi-thread processing, is expressed as a marginal likelihood.
[0039] Likelihood function P(Y i |X) is a representation of observed data, and indicates how likely observed data Y is to occur from the model when the parameter values are conditioned. Specifically, it is expressed as the probability that fault information is notified in multiple threads 21a performing multi-thread processing under the condition that a fault occurs in thread 21b performing single-thread processing. In this embodiment, the likelihood function P(Y i |X) is set based on the observation data acquired by the first acquisition unit 10. More specifically, as described above, for each of the multiple threads 21a that perform multi-thread processing, a value P(Y i |X) is used as the likelihood function P(Y|X). The above (number of times fault information is notified) is calculated by multiplying the number of times fault information occurs by the interval (for example, 1 ms) between notifying fault information.
[0040] In Bayesian estimation, Bayes' theorem is used to reflect information obtained from a likelihood function, a prior distribution, and observation data, and to estimate a posterior distribution P(X|Y), which is the probability that an event X occurs under the condition that an event Y occurs. In this case, the posterior distribution P(X|Y) is a probability distribution in which a fault occurs in a thread 21b performing single-thread processing under the condition that fault information is notified in a plurality of threads 21a performing multi-thread processing. In this embodiment, a Bayesian estimation formula expressed by the following formula (2) based on Bayes' theorem of the following formula (1) is used.
[0041]
number
[0042] In the denominator of the above equation (1), P(Y) = Σ X Substituting P(Y|X)P(X), the following equation (2) is obtained.
[0043]
number
[0044] In Bayes' theorem (1) and Bayes' estimation (2), when the number of training data N is sufficiently large (N → ∞), the likelihood function P(Y|X) generally becomes dominant over the prior distribution P(X). In other words, the relationship between the posterior distribution P(X|Y) and the likelihood function P(Y|X) is expressed by the following equation (3): P(X|Y) ≒ P(Y|X) (3)
[0045] In this embodiment, the likelihood function P(Y|X) is set by naive Bayes based on Bayes' theorem in equation (1) above and Bayes' estimation in equation (2) above.
[0046] Naive Bayes is a generative model that obtains the results of class classification as probabilities. Naive Bayes assumes conditional independence between explanatory variables when a target variable is given. Specifically, in the posterior distribution P(X|Y), which is the probability distribution of event X under the condition of event Y, Y is the explanatory variable and X is the target variable representing the class. Therefore, when Y is input, the probability that a fault has occurred in thread 21b, which performs single-thread processing, and the probability that a fault has not occurred are output as the probability of each class X.
[0047] In this embodiment, the setting unit 11 considers the event X of the likelihood function P(Y|X) as an explanatory variable and the event Y as a response variable from the above formula (3). The event Y is a set of n multidimensional variables Y={Y1, Y2, ..., Y n-1 ,Y n}, and each variable Y i is y1,y2,…,y n-1 ,y n That is, each variable Yi indicates that the fault information has been notified in each of the multiple threads 21a that perform multi-thread processing. i are assumed to be independent of each other, and the likelihood function P(Y|X) can be expressed as the product of probabilities in the following equation (4).
[0048]
number
[0049] The determination unit 12 determines whether or not a fault has occurred in the thread 21b that performs single-thread processing based on the value of the likelihood function P(Y|X) set by the setting unit 11. The determination unit 12 can determine whether or not a fault has occurred in the thread 21b using a threshold value set in advance. The threshold value can be any value (for example, 0.8 in the case of the thread 21a that performs n multi-thread processing). n ) can be set. In this case, when the value of the likelihood function P(Y|X) exceeds the set threshold, the determination unit 12 determines that a fault has occurred in the thread 21b of the single-thread processing. When the value does not exceed the threshold, the determination unit 12 can determine that a fault has occurred in the multiple threads 21a on the multi-thread processing side. Note that the threshold value can be adjusted based on, for example, the actual location of the fault identified by a separate analysis of a fault log.
[0050] The first storage unit 13 stores the Bayesian estimation model of the above equations (1) to (4).
[0051] The presentation unit 14 presents the determination result by the determination unit 12. The presentation unit 14 can present the determination result to an external server via a network (not shown), for example. The presentation unit 14 can also cause the display device 107 to output the determination result.
[0052] [Hardware configuration of process management device] Next, an example of a hardware configuration for realizing the process management device 1 having the above-described functions will be described with reference to FIG.
[0053] 2, the process management apparatus 1 can be realized by, for example, a computer including a processor 102, a main memory device 103, a communication interface 104, an auxiliary memory device 105, and an input / output (I / O) 106, all of which are connected via a bus 101, and a program that controls these hardware resources. The process management apparatus 1 can also include a display device 107 connected via the bus 101.
[0054] The main memory device 103 pre-stores programs for the processor 102 to perform various controls and calculations. The processor 102 and the main memory device 103 implement the functions of the process management device 1, such as the first acquisition unit 10, the setting unit 11, and the determination unit 12 shown in FIG.
[0055] The communication interface 104 is an interface circuit for connecting the process management apparatus 1 to various external electronic devices via a network.
[0056] The auxiliary storage device 105 is composed of a readable / writable storage medium and a drive for reading and writing various information such as programs and data from and to the storage medium. The auxiliary storage device 105 can use a semiconductor memory such as a hard disk or flash memory as the storage medium.
[0057] The auxiliary storage device 105 has a program storage area for storing the Bayesian estimation program executed by the process management device 1. The auxiliary storage device 105 realizes the first storage unit 13 described in Fig. 1. Furthermore, for example, the auxiliary storage device 105 may have a backup area for backing up the above-mentioned data, programs, etc.
[0058] The input / output I / O 106 is an input / output device that inputs signals from external devices and outputs signals to external devices.
[0059] The display device 107 is configured by an organic EL display, a liquid crystal display, or the like, and realizes the presentation unit 14 .
[0060] The process management device 1 can be configured integrally with the information processing device 2. In this case, the process management device 1 shares the processor 102, the main memory device 103, the communication interface 104, the auxiliary memory device 105, and the input / output I / O 106 with the information processing device 2.
[0061] [Process control device operation] Next, the operation of the process management device 1 having the above-described configuration will be described with reference to the flowchart in Fig. 3. In the following, it is assumed that in the process 210 of the information processing device 2, fault information is notified in the thread 21b performing single-thread processing and in the multiple threads 21a performing multi-thread processing, and a process fault has occurred.
[0062] First, the first acquisition unit 10 acquires, as observation data, the number of times fault information has been notified to each of the multiple threads 21a that perform multithread processing from the fault log 211 of the information processing device 2 (step S1). The first acquisition unit 10 can acquire, from the information processing device 2, the number of times fault information has been notified to each of the n threads 21a during a set period.
[0063] Next, based on the observation data acquired in step S1, the setting unit 11 sets the probability that fault information will be notified in the multiple threads 21a performing multi-thread processing under the condition that a fault has occurred in the thread 21b performing single-thread processing as a likelihood function P(Y|X) of the Bayesian estimation model (step S2). In this embodiment, based on the observation data acquired in step S1, the setting unit 11 sets the value P(Y|X) obtained by (number of times fault information is notified) / (set period, for example, 1000 ms) for each of the multiple threads 21a performing multi-thread processing. i|X) is set as the likelihood function P(Y|X). If fault information is notified at 1 ms intervals and 200 fault information events occur, the above (number of fault information notifications) is 200 times x 1 ms. Furthermore, in this case, the likelihood function P(Y|X) is calculated as 200 x 1 ms / 1000 ms.
[0064] In the Bayesian estimation model, the probability that a failure occurs in thread 21b that performs single-thread processing is set as a prior distribution P(X), and a likelihood function P(Y i The posterior distribution P(X|Y) updated by (|X) is defined as the probability that fault information is notified in each of the multiple threads 21a of the multithread processing under the condition that a fault occurs in the thread 21b of the single-thread processing.
[0065] The setting unit 11 uses Naive Bayes based on the Bayes estimation formula of the above formula (2) and the approximation relationship P(X|Y)≒P(Y|X) of the above formula (3) to determine the event X of the likelihood function P(Y|X) as an explanatory variable and the event Y={Y1, Y2, ..., Y n-1 ,Y n} is considered as the target variable. i indicates that fault information has been notified in each thread 21a of the multi-thread processing.
[0066] The setting unit 11 sets the variable Y i are independent of each other, the likelihood function P(Y|X) expressed by the product of probabilities in the above formula (4) is multiplied by the likelihood function P(Y i |X).
[0067] Next, the determination unit 12 determines that a fault has occurred in the thread 21b of the single-thread processing if the value of the likelihood function P(Y|X) set in step S2 exceeds a preset threshold value, and determines that a fault has occurred in the multiple threads 21a of the multi-thread processing if the value does not exceed the threshold value (step S3). The threshold value used by the determination unit 12 in the determination process can be adjusted, for example, based on information about the location of the fault identified by the analysis result of an actual fault log that is performed separately at a later date.
[0068] Thereafter, the presentation unit 14 presents the determination result obtained in step S3 (step S4). For example, the presentation unit 14 can send information about the location of the failure, which is indicated by the determination result, to an external server or the like via a network (not shown).
[0069] As described above, according to the process management device 1 of the first embodiment, the probability that fault information is notified in multiple threads 21a of multithread processing under the condition that a fault has occurred in thread 21b of single-thread processing based on observation data is set as the likelihood function P(Y|X) of the Bayesian estimation model, and whether or not a fault has occurred in thread 21b of single-thread processing is determined based on the set likelihood function P(Y|X). Therefore, when a fault occurs in a process in which multithread processing and single-thread processing are executed, it is possible to identify whether the fault has occurred in single-thread processing.
[0070] [Second embodiment] Next, a second embodiment of the present invention will be described. In the following description, the same components as those in the first embodiment will be denoted by the same reference numerals, and the description thereof will be omitted.
[0071] In the first embodiment, a case has been described in which whether or not a fault has occurred in the single-threaded processing thread 21b is determined based on a likelihood function P(Y|X) set from observation data, using Naive Bayes. In contrast, in the second embodiment, a trained machine learning model is used, which is trained using the determination result by the determination unit 12 as learning data, to classify whether a fault has occurred in the single-threaded processing thread 21b or the multi-threaded processing thread 21a.
[0072] [Function block of process control device] FIG. 4 is a block diagram showing the configuration of a process management device 1A according to the present embodiment. The process management device 1A includes a first learning device 1-1 and a second learning device 1-2. The first learning device 1-1 includes a first acquisition unit 10, a setting unit 11, a determination unit 12, a first storage unit 13, and a presentation unit 14. The first learning device 1-1 corresponds to the functional blocks of the process management device 1 according to the first embodiment. The second learning device 1-2 includes a second storage unit 15 (storage unit), a second acquisition unit 16, a learning unit 17, and a classification unit 18. The configuration of this embodiment differs from that of the first embodiment in that it includes the second learning device 1-2. The following description will focus on the configuration that differs from that of the first embodiment.
[0073] The second storage unit 15 stores learning data that associates a likelihood function P(Y|X) with a classification class indicated by a determination result by the determination unit 12. The likelihood function P(Y|X) is the probability that fault information is notified in multiple threads 21a of multi-thread processing under the condition that a fault has occurred in thread 21b of single-thread processing based on observation data, which is set by the setting unit 11.
[0074] In this embodiment, for each of the threads 21a from 1 to n in the multithread processing, a value P(Y i|X) is used as the likelihood function P(Y|X). More specifically, when fault information is notified at 1 ms intervals, the (number of times fault information is notified) is calculated by (number of times fault information occurs) × (1 ms notification interval). For example, when fault information occurs 200 times at 1000 ms intervals, the value of the likelihood function P(Y|X) is 200 × 1 ms / 1000 ms.
[0075] The second storage unit 15 stores the likelihood function P(Y i The classification classes stored in association with the likelihood function P(Y |X) are the classification classes determined by the determination unit 12 of the first learning device 1-1, i.e., the first classification class and the second classification class are determined by the occurrence of a fault in the thread 21b of single-thread processing and the occurrence of a fault in the multiple threads 21a of multi-thread processing, respectively. i |X) is the correct label given to
[0076] If the determination result by the determination unit 12 differs from the actual fault location, the second storage unit 15 stores a correct label indicating the correct fault location using a likelihood function P(Y i For example, after the determination unit 12 determines that a fault has occurred in the thread 21b of the single-thread processing, a fault log is separately analyzed and it is found that the actual location of the fault is on the side of the multiple threads 21a of the multi-thread processing. In this case, the second storage unit 15 stores the learning data attached to the likelihood function P(Y i |X), the second classification class is assigned as the correct label instead of the first classification class, and the learning data is stored.
[0077] The second acquisition unit 16 calculates the likelihood function P(Y iThe second acquisition unit 16 acquires, from the second storage unit 15, learning data in which the n threads 21a of the multithread processing are associated with the n threads 21a. More specifically, the second acquisition unit 16 can be configured to acquire the learning data when a certain amount of learning data has been accumulated in the second storage unit 15. The second acquisition unit 16 also acquires unknown inputs to be used in the inference process using the trained machine learning model. Specifically, the second acquisition unit 16 acquires likelihood functions P(Y |X) corresponding to each of the n threads 21a of the multithread processing, which are set by the setting unit 11 included in the first learning device 1-1. i |X) can be taken as the unknown input.
[0078] The learning unit 17 calculates a likelihood function P(Y i The relationship between |X) and classification classes is learned using a machine learning model. FIG. 5 is a schematic diagram showing the structure of a neural network used as the machine learning model in this embodiment. The neural network can have a multi-layer structure consisting of an input layer x, a hidden layer h, and an output layer y. Each input node of the input layer x is connected to a likelihood function P(Y i The input signal given to the input layer x is expressed as likelihood functions P(Y1|X), P(Y2|X), . . . , P(Y n-1 |X),P(Y n |X).
[0079] The neural network shown in FIG. 5 is a network in which likelihood functions P(Y i For |X), an activation function is applied to the weighted sum of the inputs, and the output determined by threshold processing is passed to the output layer y. As shown in Figure 5, the number of input nodes provided is n, which corresponds to the number of threads 21a that perform multithread processing.
[0080] Each output node of the output layer y indicates a binary classification class consisting of a first classification class and a second classification class. The output layer y can output the probability of belonging to each class. As shown in the example of FIG. 5, the first classification class can be "a fault has occurred in thread 21b of single-thread processing," and the second classification class can be "a fault has occurred in multiple threads 21a of multi-thread processing."
[0081] The learning unit 17 calculates a likelihood function P(Y i The weights w of the connections between nodes are adjusted so that the output when |X) is given as input is the value of the classification class indicated by the label of the training data. The learning unit 17 uses, for example, backpropagation to compare the obtained output value with the given input value, examine the error of each weight w, and propagate it backward, ultimately determining parameters such as the weight w. Through this learning process, the learning unit 17 constructs a trained neural network.
[0082] The trained neural network constructed by the training unit 17 is stored in the second storage unit 15.
[0083] Returning to FIG. 4, the classification unit 18 calculates the likelihood function P(Y i |X) is given to the trained machine learning model as an unknown input, and the trained machine learning model is operated to classify the data into classification classes including the first classification class and the second classification class. The classification unit 18 uses the likelihood function P(Y i |X) is given to the trained machine learning model as an unknown input. The likelihood function P(Y i |X) is a probability distribution set by the setting unit 11 of the first learning device 1-1 that performs learning using a Bayesian estimation model. The first classification class indicates that a fault has occurred in the thread 21b of single-thread processing, and the second classification class indicates that a fault has occurred in one of the multiple threads 21a of multi-thread processing.
[0084] The classification unit 18 performs product-sum operations on parameters such as learned weights w and threshold processing using an activation function on unknown inputs, and outputs classification results. The classification results by the classification unit 18 are presented by the presentation unit 14. The classification results can be sent to an external server or the like via a network (not shown).
[0085] [Process control device operation] The operation of the process management device 1A having the above-described configuration will be described with reference to the flowchart in Fig. 6. The processing from step S1 to step S4 shown in Fig. 6 is executed by the first learning device 1-1 and is similar to the processing related to the operation of the process management device 1 described in the first embodiment. The processing from step S10 onwards will be described below.
[0086] After the determination process in step S4, the second storage unit 15 stores the likelihood function P(Y i The learning data in which the classification classes are associated with |X are stored (step S10). i |X) is a value set in step S2, and the classification class is a value corresponding to the determination result in step S4. More specifically, the learning data is a likelihood function P(Y i |X) is data to which the classification class indicated by the determination result in step S4 is assigned as a correct label.
[0087] The classification class of the learning data stored in step S10 is a value that reflects the classification class corresponding to the correct failure location based on the results of a detailed analysis of the failure log that is performed separately from the determination result in step S4. Next, if the set number of learning data have been accumulated in the second storage unit 15 (step S11: YES), the second acquisition unit 16 acquires the learning data from the second storage unit 15 (step S12).
[0088] On the other hand, if the set number of pieces of learning data have not been stored in the second storage unit 15 in step S10 (step S11: NO), the processes from step S1 to step S4 are repeated. After that, the learning unit 17 calculates the likelihood function P(Y i The relationship between |X) and the classification class is learned using a machine learning model (step S13). The trained machine learning model constructed in step S13 is stored in the second storage unit 15.
[0089] Next, the classification unit 18 reads out the trained machine learning model constructed in step S13 from the second storage unit 15 and performs classification processing (step S14). i |X) is given to a trained machine learning model as an unknown input, and the trained machine learning model is operated to output a classification class.
[0090] Thereafter, the presentation unit 14 presents the classification result obtained in step S14 (step S15). For example, the presentation unit 14 can send the classification result to an external server via a network (not shown). The classification result indicates the classification class for the unknown input. Specifically, when fault information is notified to the thread 21b of single-thread processing and the multiple threads 21b of multi-thread processing, the classification result indicates whether the input belongs to a first classification class indicating that a fault has occurred in the thread 21b of single-thread processing, or a second classification class indicating that a fault has occurred on the side of the multiple threads 21a of multi-thread processing.
[0091] As described above, according to the process management device 1A of the second embodiment, the second learning device 1-2 uses the determination results obtained by the first learning device 1-1 as learning data to calculate the likelihood function P(Y iA trained machine learning model is constructed that has learned the relationship between |X) and classification classes. Therefore, for example, when only a small amount of observation data can be acquired, such as when a relatively short time has passed since the start of service, a determination process can be performed using a Bayesian estimation model. On the other hand, when a certain amount of learning data or more has been accumulated, a machine learning model that performs supervised learning can be trained to perform classification processing. Therefore, appropriate learning processing can be performed over time since the start of service. Furthermore, when a process failure occurs in process 210, which includes multi-threaded processing and single-threaded processing, the location of the failure can be easily identified through more accurate classification processing.
[0092] In the above-described embodiment, the first learning device 1-1 and the second learning device 1-2 are configured in the same device. However, the first learning device 1-1 and the second learning device 1-2 can be configured as separate devices. In this case, the first learning device 1-1 and the second learning device 1-2 can each have the hardware configuration described in FIG. 2.
[0093] In the above-described embodiment, the information processing device 2 is a web server, and the location of a failure occurring in a program executing a process including multithreaded processing and single-threaded processing is identified as being on the multithreaded processing side or the single-threaded processing side. However, the program executed by the information processing device 2 may be a program that combines multithreaded processing and single-threaded processing in a single process, and may include, for example, a database server that processes multiple queries and transactions, an application server that processes user requests, or middleware. Other examples include processing programs for embedded systems and industrial control systems that require real-time processing. Furthermore, the present invention is applicable to communication control programs for core network devices that are installed in core networks of communication standards such as 5G and perform communication control.
[0094] In the above-described embodiment, a neural network consisting of an input layer, a hidden layer, and an output layer has been exemplified as a machine learning model. The neural network can be, for example, a deep learning model with multiple hidden layers, as long as it is a model that handles classification problems using supervised learning. Other machine learning models that can be used include SVM, decision trees, random forests, and logistic regression.
[0095] The above describes embodiments of the process management apparatus and process management method of the present invention, but the present invention is not limited to the described embodiments, and various modifications that a person skilled in the art can make are possible within the scope of the invention described in the claims. [Explanation of symbols]
[0096] 1, 1A...process management device, 1-1...first learning device, 1-2...second learning device, 10...first acquisition unit, 11...setting unit, 12...judgment unit, 13...first memory unit, 14...presentation unit, 15...second memory unit, 16...second acquisition unit, 17...learning unit, 18...classification unit, 2...information processing device, 20...CPU, 21...memory, 210...process, 21a, 21b...thread, 211...fault log, 22...storage, 101...bus, 102...processor, 103...main memory device, 23, 104...communication interface, 105...auxiliary memory device, 24, 106...input / output I / O, 107...display device.
Claims
1. A process management device that manages a process in which a first thread including one thread and a second thread including a plurality of threads are executed, a first acquisition unit configured to acquire, as observation data, a number of times that fault information has been notified to each of the plurality of threads included in the second thread; a setting unit configured to set, based on the observation data, a probability that the fault information will be notified in each of the plurality of threads included in the second thread under a condition that a fault has occurred in the first thread, as a likelihood function of a Bayesian estimation model; a determination unit configured to determine whether a fault has occurred in the first thread based on the set value of the likelihood function; a presentation unit configured to present a determination result by the determination unit; A process management device comprising:
2. 2. The process management apparatus according to claim 1, a classification unit configured to provide the likelihood function as an unknown input to a trained machine learning model, perform an operation on the trained machine learning model, and classify the likelihood function into classification classes including a first classification class indicating that a fault has occurred in the first thread and a second classification class indicating that a fault has occurred in the second thread; The presentation unit presents the classification result by the classification unit. A process management device characterized by:
3. 3. The process management device according to claim 2, a second acquisition unit configured to acquire learning data in which the likelihood function and the classification class indicated by the determination result are associated with each other; a learning unit configured to learn the relationship between the likelihood function and the classification class using a machine learning model based on the learning data; a storage unit configured to store the trained machine learning model constructed by the learning unit; Equipped with The classification unit reads the trained machine learning model from the storage unit and performs calculations on the trained machine learning model. A process management device characterized by:
4. A process management method for managing a process in which a first thread including one thread and a second thread including multiple threads are executed, comprising: a first acquisition step of acquiring, as observation data, the number of times that fault information has been notified to each of the plurality of threads included in the second thread; a setting step of setting, based on the observation data, a probability that the fault information will be notified in each of the plurality of threads included in the second thread under a condition that a fault has occurred in the first thread, as a likelihood function of a Bayesian estimation model; a determining step of determining whether a fault has occurred in the first thread based on the set value of the likelihood function; a presentation step of presenting the determination result in the determination step; A process management method comprising:
5. 5. The process management method according to claim 4, further comprising a classification step of providing the likelihood function as an unknown input to a trained machine learning model, performing an operation on the trained machine learning model, and classifying the data into classification classes including a first classification class indicating that a fault has occurred in the first thread and a second classification class indicating that a fault has occurred in the second thread, The presentation step presents the classification result obtained in the classification step. A process management method comprising:
6. 6. The process management method according to claim 5, a second acquisition step of acquiring learning data in which the likelihood function is associated with the classification class indicated by the determination result; a learning step of learning the relationship between the likelihood function and the classification class using a machine learning model based on the learning data; a storage step of storing the trained machine learning model constructed in the learning step in a storage unit; Equipped with The classification step reads out the trained machine learning model from the storage unit and performs a calculation on the trained machine learning model. A process management method comprising:
Citation Information
Patent Citations
Computer system, process and method for monitoring thread
JP2014182561A