Information processing program, information processing method, and information processing device.

The information processing program optimizes HPC startup times by identifying and managing memory fragmentation through a rehearsal process, allowing parallel execution of non-fragmenting processes, thereby reducing startup duration.

JP2026096883APending Publication Date: 2026-06-15FUJITSU LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
FUJITSU LTD
Filing Date
2024-12-03
Publication Date
2026-06-15

AI Technical Summary

Technical Problem

Conventional High Performance Computing (HPC) systems face performance degradation due to memory fragmentation, leading to prolonged startup times, especially when separating system and user job resources, which limits available resources and extends startup duration.

Method used

An information processing program that identifies which processes cause memory fragmentation by performing a rehearsal to determine optimal NUMA node allocation, allowing parallel execution of processes that do not cause fragmentation and reserving resources for those that do, thereby optimizing startup time.

🎯Benefits of technology

This approach reduces startup time by enabling parallel execution of processes that do not cause memory fragmentation, while managing resources effectively to minimize memory fragmentation, thus shortening the overall startup process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026096883000001_ABST
    Figure 2026096883000001_ABST
Patent Text Reader

Abstract

To reduce the startup time of computers. [Solution] The computer executes the startup process based on configuration information that sets the resources available for the startup process to start the system. The computer determines the resources available for the startup process based on the amount of memory used before the startup process is executed and the amount of memory used after the startup process is executed. The computer updates the configuration information based on the determination result.
Need to check novelty before this filing date? Find Prior Art

Description

【Technical Field】 【0001】 The present invention relates to an information processing program and the like. 【Background Art】 【0002】 In the world of HPC (High Performance Computing), it is important to process user jobs at high speed. For this reason, factors leading to performance degradation should be eliminated as much as possible. One factor leading to performance degradation is memory fragmentation. 【0003】 For example, a CPU (Central Processing Unit) stores virtual-to-physical address translation information in a TLB (Translation Lookaside Buffer). When there is no information in the TLB, such information needs to be reread from memory. The process of rereading from memory is an extra process and leads to performance degradation of jobs. Therefore, by using a large page function that treats a memory of a size larger than a normal page as one page and increasing the range of addresses included in the TLB, performance degradation is prevented. 【0004】 Here, if the memory becomes fragmented during operation, large pages cannot be acquired, leading to performance degradation. Some of the services started by a system such as an OS (Operating System) are factors causing memory fragmentation. 【0005】 As a conventional technique for avoiding the problem of memory fragmentation, there is a technique of softly adopting a special NUMA (Non-Uniform Memory Access) configuration. Before explaining the special NUMA configuration, the general NUMA configuration will be explained. 【0006】 Figure 25 is a diagram illustrating a typical NUMA configuration. As shown in Figure 25, computer 10 has multiple NUMA nodes 11a, 11b, 11c, and 11d. Computer 10 is an HPC, etc. NUMA nodes 11a to 11d are collectively referred to as NUMA node 11. NUMA node 11 is a cluster of CPU and memory. 【0007】 In a typical NUMA configuration, various services and user jobs necessary to operate the system are shared on the NUMA node 11, and the memory of the NUMA node 11 stores data used by the system and data used by user jobs. 【0008】 Next, a special NUMA configuration will be described. Figure 26 is a diagram illustrating a special NUMA configuration. As shown in Figure 26, computer 12 has multiple NUMA nodes 11a, 11b, 11c, and 11d, similar to computer 10 shown in Figure 25. Computer 12 is an HPC, etc. 【0009】 In a special NUMA configuration, multiple NUMA nodes 11a, 11b, 11c, and 11d are separated into NUMA node 11a used by the system and NUMA nodes 11b to 11d used by user jobs. NUMA node 11a for the system performs various processes necessary to operate the system. NUMA nodes 11b to 11d for user jobs execute user jobs. Because memory deallocation is performed when user jobs finish, memory fragmentation is less likely to occur in NUMA nodes 11b to 11d. [Prior art documents] [Patent Documents] 【0010】 [Patent Document 1] Japanese Patent Application Publication No. 9-282288 [Patent Document 2] Japanese Patent Publication No. 2000-29848 [Patent Document 3] Japanese Patent Application Publication No. 9-114673 [Overview of the Initiative] [Problems that the invention aims to solve] 【0011】 However, the conventional technology described above separates computer resources into system resources and user job resources, which limits the resources available to the system when the computer starts up, resulting in a problem where the computer takes a long time to start up. 【0012】 For example, in HPC, there is a need to shorten the startup time of computers for reasons such as the high cost of simply installing them, the desire to minimize maintenance work in order to ensure uptime, and the fact that restart time accounts for a large portion of maintenance work. 【0013】 In one aspect, the present invention aims to provide an information processing program, an information processing method, and an information processing device that can shorten the startup time of a computer. [Means for solving the problem] 【0014】 In the first proposal, the information processing program instructs the computer to perform the following processes: The computer executes the startup process based on configuration information that sets the resources available for the startup process to start the system. The computer determines the resources available for the startup process based on the amount of memory used before the startup process is executed and the amount of memory used after the startup process is executed. The computer updates the configuration information based on the determination result. [Effects of the Invention] 【0015】 This can shorten the computer's startup time. [Brief explanation of the drawing] 【0016】 [Figure 1] Figure 1 is a diagram illustrating the basic idea of ​​the information processing device according to this embodiment 1. [Figure 2] Figure 2 shows the system according to this embodiment 1. [Figure 3] FIG. 3 is a diagram for explaining the rehearsal of the computer according to the first embodiment. [Figure 4] FIG. 4 is a diagram showing an example of the data structure of the startup process list table. [Figure 5] FIG. 5 is a diagram showing an example of the data structure of the memory usage record table. [Figure 6] FIG. 6 is a diagram showing an example of the data structure of the startup process list table after rehearsal. [Figure 7] FIG. 7 is a diagram (1) for supplementary explanation of the processing of the computer according to the first embodiment. [Figure 8] FIG. 8 is a diagram (2) for supplementary explanation of the processing of the computer according to the first embodiment. [Figure 9] FIG. 9 is a diagram (3) for supplementary explanation of the processing of the computer according to the first embodiment. [Figure 10] FIG. 10 is a diagram for explaining the processing procedure of the entire system. [Figure 11] FIG. 11 is a functional block diagram showing the configuration of the computer according to the first embodiment. [Figure 12] FIG. 1 is a flowchart showing the processing procedure of the computer according to the first embodiment. [Figure 13] FIG. 13 is a flowchart showing the processing procedure of the update process. [Figure 14] FIG. 14 is a diagram showing the NUMA configuration of the computer according to the second embodiment. [Figure 15] FIG. 15 is a diagram showing the system according to the second embodiment. [Figure 16] FIG. 16 is a diagram for explaining the rehearsal of the computer according to the second embodiment. [Figure 17] FIG. 17 is a diagram showing an example of the data structure of the service group table. [Figure 18] FIG. 18 is a functional block diagram showing the configuration of the computer according to the second embodiment. [Figure 19] FIG. 19 is a flowchart showing the processing procedure of the computer according to the second embodiment. [Figure 20] Figure 20 is a flowchart showing the pre-processing steps performed by rehearsal.service. [Figure 21] Figure 21 is a flowchart showing the processing steps for rewriting the configuration file using rehearsal.service. [Figure 22] Figure 22 is Figure (1), which shows an example of the output of a configuration file for a certain service. [Figure 23] Figure 23 is Figure (2), which shows an example of the output of a configuration file for a certain service. [Figure 24] Figure 24 shows an example of a computer hardware configuration that achieves similar functions to the computer in this embodiment. [Figure 25] Figure 25 is a diagram illustrating a typical NUMA configuration. [Figure 26] Figure 26 is a diagram illustrating a special NUMA configuration. [Modes for carrying out the invention] 【0017】 The following describes in detail, with reference to the drawings, embodiments of the information processing program, information processing method, and information processing apparatus disclosed in this application. However, this invention is not limited by these embodiments. [Examples] 【0018】 First, the basic idea of ​​the information processing device according to this embodiment 1 will be explained in comparison with the prior art. Figure 1 is a diagram illustrating the basic idea of ​​the information processing device according to this embodiment 1. For example, it is assumed that the following processes are executed before the OS starts up: OS startup process (1), OS startup process (2), OS startup process (3), OS startup process (4), OS startup process (5), and OS startup process (6). 【0019】 In this case, in the conventional computer 12, the NUMA node 11 available to the system becomes NUMA node 11a. Therefore, computer 12 uses NUMA node 11a to sequentially execute the OS startup processes (1) to (6). As a result, the OS startup time for computer 12 becomes T1. 【0020】 On the other hand, the computer 100 according to this embodiment 1 undergoes a test run (rehearsal) in advance to identify which processes among the OS startup processes (1) to (6) cause memory fragmentation and which do not. For example, the computer 100 includes multiple NUMA nodes 13a, 13b, 13c, and 13d. NUMA nodes 13a to 13d are collectively referred to as NUMA node 13. 【0021】 Computer 100 allocates NUMA nodes 13a to 13b for OS boot processes that do not cause memory fragmentation. Computer 100 allocates only NUMA node 13a for OS boot processes that do cause memory fragmentation. 【0022】 For example, OS startup processes (1) to (3) and (5) are designed to not cause memory fragmentation, while OS startup processes (4) and (6) are designed to cause memory fragmentation. Furthermore, OS startup process (4) is made executable after OS startup process (3) has finished, and OS startup process (6) is made executable after OS startup process (5) has finished. 【0023】 In this case, first, computer 100 assigns OS startup processes (1), (2), and (3) to NUMA nodes 13b, 13c, and 13d, and has them execute the processes. Next, computer 100 assigns OS startup process (4) to NUMA node 13a, and has it execute the processes. Next, computer 100 assigns OS startup process (5) to NUMA node 13b, and has it execute the processes. Next, computer 100 assigns OS startup process (6) to NUMA node 13a, and has it execute the processes. 【0024】 As a result, the OS startup time for computer 100 becomes T2. Because computer 100 can execute the OS startup process in parallel using the NUMA node 13, it can shorten the startup time compared to the startup time T1 of computer 12. 【0025】 As described above, the computer 100 can reduce the startup time of the computer 100 while suppressing memory fragmentation by limiting the available NUMA nodes 13 for OS startup processes that cause memory fragmentation, and not limiting the available NUMA nodes 13 for OS startup processes that do not cause memory fragmentation. 【0026】 Next, an example of the system according to this embodiment 1 will be described. Figure 2 is a diagram showing the system according to this embodiment 1. As shown in Figure 2, this system 5 has computers 100, 101, 102, and 103. Computers 100 to 103 are connected by a network 6 such as a LAN (Local Area Network). Computers 100 to 103 are an example of an "information processing device". 【0027】 Computers 100-103 have the NUMA node 13 described in Figure 1. For example, among computers 100-103, computer 100 performs the rehearsal described below to identify which processes in the series of OS startup processes cause memory fragmentation and which do not. Note that other computers besides computer 100 may also perform the rehearsal. 【0028】 Figure 3 is a diagram illustrating a rehearsal of the computer related to the present implementation 1. For example, computer 100 has a startup process list table 141 and a memory usage record table 142. Computer 100 also has a startup processing unit 151, a test execution unit 152, and an update unit 153. 【0029】 The startup process list table 141 is a table that holds information about startup processes. Figure 4 shows an example of the data structure of the startup process list table. As shown in Figure 4, the startup process list table 141 contains the process name, the command to kick the process, dependencies, and resources used. 【0030】 The process name is the name of the process to be initiated. The command to kick the process indicates how to execute the process. Dependencies indicate dependencies with other processes. Resources used indicate the resources available to the initiated process. 【0031】 For example, if the resource used is "System NUMA," the startup process can use NUMA node 13a as shown in Figure 1. If the resource used is "System NUMA + Job NUMA," the startup process can use NUMA nodes 13a to 13d as shown in Figure 1. The initial value of the resource used is "System NUMA." 【0032】 Here, the command to kick off the process named "AAA" is " / SOMEWHERE / AAA.sh start". The process named "AAA" has no dependencies, and the resource used is "System NUMA". 【0033】 The command to start the process named "BBB" is " / SOMEWHERE / BBB.sh start". The process named "BBB" has no dependencies, and the resource used is "System NUMA". 【0034】 The command to start the process named "CCC" is " / SOMEWHERE / CCC.sh start". The dependency for the process named "CCC" is "start after BBB", and the resource used is "system NUMA". 【0035】 The memory usage record table 142 is a table that records information about memory usage due to startup processes. Figure 5 shows an example of the data structure of the memory usage record table. As shown in Figure 5, the memory usage record table 142 contains the process name, the sum of memory usage, and the type of memory usage. 【0036】 The process name is the name of the startup process. The total memory usage is the total memory usage in kernel space. The type of memory usage indicates whether it is before or after the process execution. 【0037】 For example, the total memory usage before executing the process named "AAA" is "42 MiB," and the total memory usage after execution is "59 MiB," indicating an increase in memory usage. The process named "AAA," which causes an increase in memory usage, is likely to cause memory fragmentation. 【0038】 On the other hand, the total memory usage before executing the process named "BBB" was "59 MiB," and the total memory usage after execution was also "59 MiB," indicating that memory usage did not increase. The process named "BBB," which does not increase memory usage, is unlikely to cause memory fragmentation. 【0039】 Returning to the explanation of Figure 3, the startup processing unit 151, test execution unit 152, and update unit 153 of the computer 100 execute the processes in steps S10 to S17 during the rehearsal. 【0040】 The startup processing unit 151 retrieves one startup process from the startup process list table 141 (step S10). The startup processing unit 151 notifies the test execution unit 152 that the startup process has not yet been executed (step S11). 【0041】 The test execution unit 152 measures the total amount of memory used before processing and writes the measurement result to the memory usage record table 142 (step S12). 【0042】 The startup processing unit 151 executes the startup process and notifies the test execution unit 152 that the startup process has been completed (step S13). The startup processing unit 151 executes the startup process using the resources set in the startup process list table 141. 【0043】 The test execution unit 152 measures the total amount of memory used after processing and writes the measurement result to the memory usage record table 142 (step S14). 【0044】 The test execution unit 152 compares the total memory usage before and after processing to determine the resources used by the startup process (step S15). For example, if the total memory usage after processing is greater than before processing, the test execution unit 152 determines the resources used by the startup process to be "system NUMA". On the other hand, if the total memory usage after processing is not greater than before processing, the test execution unit 152 determines the resources used by the startup process to be "system NUMA + job NUMA". 【0045】 The test execution unit 152 notifies the generation processing unit 153 of the determination result (step S16). The update unit 153 updates the startup process list table 141 based on the determination result (step S17). 【0046】 The startup processing unit 151, test execution unit 152, and update unit 153 of the computer 100 repeatedly execute the above process for each startup process recorded in the startup process list table 141. 【0047】 Figure 6 shows an example of the data structure of the startup process list table after rehearsal. For example, the resource used for process name "AAA" is "System NUMA". The resource used for process name "BBB" is "System NUMA + Job NUMA". 【0048】 For example, as explained in Figure 5, the total memory usage before executing the process named "AAA" was "42 MiB," and the total memory usage after execution was "59 MiB," indicating an increase in memory usage. The process named "AAA," which increases memory usage, is highly likely to cause memory fragmentation. Therefore, in Figure 6, the resource used by the process named "AAA" is "System NUMA." 【0049】 As explained in Figure 5, the total memory usage before executing the process named "BBB" is "59 MiB," and the total memory usage after execution is also "59 MiB," indicating that memory usage has not increased. The process named "BBB," which does not increase memory usage, is unlikely to cause memory fragmentation. Therefore, in Figure 6, the resources used by the process named "BBB" are "System NUMA + Job NUMA." 【0050】 Next, we will provide a supplementary explanation of the processing performed by the computer 100 according to this embodiment 1. Figures 7, 8, and 9 are diagrams that provide a supplementary explanation of the processing performed by the computer according to this embodiment 1. 【0051】 Let's explain Figure 7. For example, when the OS starts up before a rehearsal is performed, the startup processing unit 151 reads the startup processes 30 one by one from the startup process list table 141 and executes the startup processes 30 in order. The startup process 30 includes elements 30a, 30b, and 30c. 【0052】 Element 30a is the script or binary to be executed. Element 30b is a configuration file indicating the startup order. Element 30c is a configuration file indicating the resources used by the startup process 30. The startup processing unit 151 selects the NUMA node on which to execute the startup process 30 based on element 30c. The configuration file for element 30c corresponds to the resource usage information shown in the startup process list table 141 in Figure 4. 【0053】 Let's explain Figure 8. Computer 100 updates element 30c of startup process 30 by performing the rehearsal described in Figure 3, and reflects it in the startup process list table 141. For example, computer 100 leaves the configuration file for element 30c of startup process 30, which causes memory fragmentation, as "System NUMA". On the other hand, computer 100 updates the configuration file for element 30c of startup process 30, which does not cause memory fragmentation, to "System NUMA + Job NUMA". 【0054】 Let's explain Figure 9. When the OS starts up after the rehearsal, the boot processing unit 151 executes the boot process 30 according to the configuration file updated during the rehearsal. For boot processes 30 that do not cause memory fragmentation, the boot processing unit 151 assigns one of the NUMA nodes 13a, 13b, 13c, or 13d. Parallel execution is possible for each boot process that does not cause memory fragmentation, thus shortening the boot time. 【0055】 Next, the overall processing procedure of System 5 will be described. Figure 10 is a diagram illustrating the overall processing procedure of the system. Computer 100 has a startup process list table 141. Computer 101 has a startup process list table 141-1. Computer 102 has a startup process list table 141-2. Computer 103 has a startup process list table 141-3. Before the rehearsal, the contents of the data in startup process list tables 141, 141-1 to 141-3 are identical. All configuration files corresponding to the startup processes in startup process list tables 141, 141-1 to 141-3 are named "System NUMA". 【0056】 Computer 100 performs a rehearsal and updates the startup process list table 141 (step S20). Based on the updated startup process list table 141, computer 100 distributes the startup process configuration files to computers 101 to 103 (step S21). 【0057】 Computers 101 to 103 update the startup process list tables 141-1 to 141-3 respectively (step S22). 【0058】 Computers 101-103 perform startup processes based on the updated startup process list tables 141-1-141-3. This allows for parallel execution of startup processes that do not cause memory fragmentation, thereby reducing startup time. 【0059】 Next, an example of the configuration of the computer 100 according to this embodiment 1 will be described. Figure 11 is a functional block diagram showing the configuration of the computer according to this embodiment 1. As shown in Figure 11, this computer 100 has a communication unit 110, an input unit 120, a display unit 130, a storage unit 140, a control unit 150, and NUMA nodes 160a, 160b, and 160c. 【0060】 The communication unit 110 performs data communication with computers 101 to 103 via the network 6. 【0061】 The input unit 120 is an input device for inputting various types of information into the computer 100. 【0062】 The display unit 130 is a display device that displays the processing results of the control unit 150, etc. 【0063】 The storage unit 140 has a startup process list table 141 and a memory usage record table 142. The storage unit 140 is memory, etc. The storage unit 140 may be the memory of a NUMA node. 【0064】 The startup process list table 141 is a table that holds information about startup processes. The explanation of the startup process list table 141 is the same as the explanation given in Figure 4. 【0065】 The memory usage record table 142 is a table that records information about memory usage during the startup process. The explanation of the memory usage record table 142 is the same as the explanation given in Figure 5. 【0066】 The control unit 150 includes a startup processing unit 151, a test execution unit 152, an update unit 153, and a distribution unit 154. The control unit 150 is a CPU, etc. The control unit 150 may be the CPU of a NUMA node. 【0067】 The startup processing unit 151 reads the startup processes recorded in the startup process list table 141 and executes them. Based on the startup process configuration file, the startup processing unit 151 selects the NUMA node to be used and executes the startup process. Further details regarding the startup processing unit 151 are the same as those described in Figure 3. 【0068】 The test execution unit 152 records the memory usage before the startup process is executed and the memory usage after the startup process is executed in the memory usage record table 142. Based on the memory usage before the startup process is executed and the memory usage after the startup process is executed, the test execution unit 152 determines the resources used by the startup process. Further explanations regarding the test execution unit 152 are the same as those described in Figure 3. 【0069】 The update unit 153 updates the configuration file for the startup process in the startup process list table 141 based on the determination result by the test execution unit 152. The configuration file for the startup process in the startup process list table 141 corresponds to the resource usage information in the startup process list table 141. Further explanation of the update unit 153 is the same as the explanation of the update unit 153 in Figure 3. 【0070】 The distribution unit 154 distributes the updated information from the startup process list table 141 after the rehearsal to computers 101 to 103. 【0071】 NUMA nodes 160a, 160b, and 160c are nodes that include multiple CPUs and memory. For example, the control unit 150 and storage unit 140 described above correspond to NUMA node 13a shown in Figure 1, and NUMA nodes 160a, 160b, and 160c correspond to NUMA nodes 13b, 13c, and 13d. 【0072】 Next, an example of the processing procedure of the computer 100 according to this embodiment 1 will be described. Figure 12 is a flowchart of the processing procedure of the computer according to this embodiment 1. As shown in Figure 12, the computer 100 starts up with the minimum processing necessary for startup (step S101). 【0073】 The startup processing unit 151 of computer 100 terminates the rehearsal if there are no unexecuted startup processes in the startup process list table 141 (step S102, No). On the other hand, if there are unexecuted startup processes in the startup process list table 141 (step S102, Yes), the startup processing unit 151 proceeds to step S103. 【0074】 The test execution unit 152 of the computer 100 measures the memory usage of the kernel and records the measurement result in the memory usage record table 142 (step S103). 【0075】 The startup processing unit 151 executes one unit of startup processing (step S104). The computer 100 executes update processing (step S105) and proceeds to step S102. 【0076】 Next, the processing procedure for the update process shown in step S105 of Figure 12 will be described. Figure 13 is a flowchart of the processing procedure for the update process. As shown in Figure 13, the test execution unit 152 of the computer 100 measures the memory usage of the kernel and compares the memory usage before and after the execution of the startup process (step S201). 【0077】 If the memory usage increases (step S202, Yes), the test execution unit 152 proceeds to step S203. The update unit 153 of the computer 100 updates the startup process configuration file to "System NUMA" (step S203). 【0078】 If the test execution unit 152 does not see an increase in memory usage (step S202, No), it proceeds to step S204. The update unit 153 of the computer 100 updates the startup process configuration file to "System NUMA + Job NUMA" (step S204). 【0079】 Next, the effects of the computer 100 according to this embodiment 1 will be described. The computer 100 executes the startup process in the startup process list table 141, compares the memory usage before executing the startup process with the memory usage after executing the startup process, determines the available resources for the startup process, and updates the startup process configuration file based on the determination result. 【0080】 For example, computer 100 allows the use of system NUMA and job NUMA for startup processes that do not cause memory fragmentation. On the other hand, computer 100 allows the use of system NUMA for startup processes that do cause memory fragmentation. 【0081】 As a result, when computer 100 is started after a rehearsal, each startup process that does not cause memory fragmentation can be executed in parallel, thereby reducing the startup time. [Examples] 【0082】 Example 2 describes the case where the "systemd" mechanism is applied to the computer described in Example 1. The computer related to Example 2 will be referred to as "computer 200". For example, it is assumed that the rehearsal service (rehearsal.service) is installed in the OS of computer 200. 【0083】 As an example, the NUMA configuration of computer 200 is shown in Figure 14. Figure 14 is a diagram showing the NUMA configuration of the computer according to this embodiment 2. As shown in Figure 14, computer 200 has NUMA nodes 14a, 14b, 14c, 14d, 14e, 14f, 14g, and 14h. 【0084】 NUMA node 14a has CPUn0 and memory 15a. NUMA node 14b has CPUn1 and memory 15b. NUMA node 14c has CPUn2 and memory 15c. NUMA node 14d has CPUn3 and memory 15d. 【0085】 NUMA node 14e has CPUs n12-n23 and memory 15e. NUMA node 14f has CPUs n24-n35 and memory 15f. NUMA node 14g has CPUs n36-n47 and memory 15g. NUMA node 14h has CPUs n48-n59 and memory 15h. 【0086】 In the following explanation, NUMA nodes 14a, 14b, 14c, 14d, 14e, 14f, 14g, and 14h will be collectively referred to as NUMA node 14. 【0087】 Figure 15 shows the system according to this second embodiment. As shown in Figure 15, this system 7 has computers 200, 201, 202, and 203. Computers 200 to 203 are connected by a network 8 such as a LAN. Computers 200 to 203 are examples of "information processing devices". 【0088】 Computers 200-203 have NUMA nodes 14 as described in Figure 15. For example, among computers 200-203, computer 200 performs the rehearsal described below to identify which of several services cause memory fragmentation and which do not. Note that other computers besides computer 200 may also perform the rehearsal. 【0089】 An example of a rehearsal performed by computer 200 will be described. Figure 16 is a diagram illustrating the computer rehearsal according to this embodiment 2. For example, computer 200 has a service group table 241 and a rehearsal service execution unit 251. 【0090】 The service group table 241 is a table that holds information about services. Figure 17 shows an example of the data structure of the service group table. As shown in Figure 17, the service group table 241 includes the service name, data for starting the service, and configuration files. 【0091】 The service name is the name of the service. The data required to start the service is information such as "$ systemctl start xxx.service". The configuration file indicates the resources available to the service. For example, if the service's configuration file is "local", it indicates that the service can use CPUn0 to n3 out of the CPUn0 to n59 included in the NUMA node. If the service's configuration file is "default", it indicates that the service can use CPUn0 to n59 included in the NUMA node. 【0092】 The explanation in Figure 17 is for illustrative purposes only; for example, the configuration file for a service "xxx service" might be located at " / etc / systemd / system / xxx.service", etc. 【0093】 Returning to the explanation of Figure 16, the system administrator operates computer 200 to add and enable the rehearsal service to the minimum set of services required for OS startup, thereby starting the OS in rescue mode. As a result, the rehearsal service execution unit 251 starts the following process. 【0094】 The rehearsal service execution unit 251 retrieves one service from the service group table 241, allocates resources based on the service's configuration file, and executes the service. The rehearsal service execution unit 251 compares the memory usage before executing the service with the memory usage after executing the service, and updates the service's configuration file based on the comparison result. 【0095】 For example, the rehearsal service execution unit 251 sets the service configuration file to "local" if the total memory usage after the service is greater than before the service is executed. On the other hand, the rehearsal service execution unit 251 sets the service configuration file to "default" if the total memory usage after the service is executed is not greater than before the service is executed. 【0096】 The rehearsal service execution unit 251 of the computer 200 repeatedly executes the above process for each service recorded in the service group table 241. 【0097】 Once the system administrator confirms that the rehearsal service execution unit 251 has finished processing, they operate the computer 200 to disable the rehearsal service (rehearsal.service) and restart the OS in normal mode. 【0098】 During a reboot, services that do not contribute to memory fragmentation for the OS can be started without resource limitations, resulting in faster boot times. 【0099】 Since the hardware and software configurations of computers 200-203 included in System 7 shown in Figure 15 are the same, computer 200 distributes the results of service configuration file updates to computers 201-203. As a result, even when other computers 201-203 are started, services that do not lead to memory fragmentation can be started without resource limitations, thus speeding up startup times. 【0100】 Next, an example of the configuration of the computer 200 according to this embodiment 2 will be described. Figure 18 is a functional block diagram showing the configuration of the computer according to this embodiment 1. As shown in Figure 18, this computer 200 has a communication unit 210, an input unit 220, a display unit 230, a storage unit 240, a control unit 250, and NUMA nodes 260a, 260b, 260c, 260d, 260e, 260f, and 260g. 【0101】 The communication unit 210 performs data communication with computers 201-203 via the network 8. 【0102】 The input unit 220 is an input device for inputting various types of information into the computer 200. The system administrator operates the input unit 220 to perform tasks such as installing the rehearsal service, restarting in rescue mode, and restarting after disabling the rehearsal service. 【0103】 The display unit 230 is a display device that displays the processing results of the control unit 250, etc. 【0104】 The storage unit 240 has a service group table 241. The storage unit 240 is memory, etc. The storage unit 240 may also be the memory of a NUMA node. 【0105】 The service group table 241 is a table that holds information about services. The description of the service group table 241 is the same as the description given in Figure 17. 【0106】 The control unit 250 includes a rehearsal service execution unit 251 and a distribution unit 252. The control unit 250 is a CPU, etc. The control unit 250 may be the CPU of a NUMA node. 【0107】 The rehearsal service execution unit 251 retrieves one service from the service group table 241, allocates resources based on the service's configuration file, and executes the service. The rehearsal service execution unit 251 compares the memory usage before executing the service with the memory usage after executing the service, and updates the service's configuration file based on the comparison result. The rehearsal service execution unit 251 repeatedly performs the above process for each service recorded in the service group table 241. 【0108】 Further explanation of the rehearsal service execution unit 251 is the same as the explanation given in Figure 16. The rehearsal service execution unit 251 corresponds to the startup processing unit, the test execution unit, and the update unit. 【0109】 The distribution unit 252 distributes the updated information from the service group table 241 after the rehearsal to computers 201 to 203. 【0110】 NUMA nodes 260a, 260b, 260c, 260d, 260e, 260f, and 260g are nodes that include multiple CPUs and memory. For example, the control unit 250 and storage unit 240 described above correspond to NUMA node 14a shown in Figure 14, and NUMA nodes 260a, 260b, 260c, 260d, 260e, 260f, and 260g correspond to NUMA nodes 14b, 14c, 14d, 14e, 14f, 14g, and 14h. 【0111】 Next, an example of the processing procedure of the computer 200 according to this embodiment 2 will be described. Figure 19 is a flowchart showing the processing procedure of the computer according to this embodiment 2. As shown in Figure 19, the computer 200 starts the minimum necessary services with rescue.target (step S301). 【0112】 The rehearsal service execution unit 251 of computer 200 terminates processing if there are no services remaining to be started by multi-user.target (step S302, No). For example, the presence of services remaining to be started by multi-user.target is equivalent to having unexecuted services remaining in the service group table 241. 【0113】 Meanwhile, if there are still services to be started by multi-user.target (step S302, Yes), the rehearsal service execution unit 251 proceeds to step S303. The rehearsal service execution unit 251 performs preprocessing using rehearsal.service (step S303). 【0114】 The rehearsal service execution unit 251 starts the service (step S304). For example, when the rehearsal service execution unit 251 starts a service, it executes "$ systemctl start xxx.service". 【0115】 The rehearsal service execution unit 251 executes the configuration file rewriting process using rehearsal.service (step S305) and then proceeds to step S302. 【0116】 Next, an example of the pre-processing procedure by rehearsal.service, as shown in step S303 of Figure 19, will be described. Figure 20 is a flowchart of the pre-processing procedure by rehearsal.service. As shown in Figure 20, the rehearsal service execution unit 251 of the computer 200 prepares to measure the kernel's memory usage (step S401). 【0117】 The process in step S401 is supplemented. The rehearsal service execution unit 251 creates a folder to output memory usage and registers its own process ID. By registering its process ID, the rehearsal service execution unit 251 becomes the target of memory usage measurement. For example, when the rehearsal service execution unit 251 executes the process in step S401, it will write "$ mkdir / sys / fs / cgroup / memory / kmem_accounting.slice Execute "$ echo $$ >> / sys / fs / cgroup / memory / kmem_accounting.slice / cgroup.procs". 【0118】 The rehearsal service execution unit 251 obtains the memory usage before starting the service (step S402). 【0119】 The process in step S402 is supplemented. When the rehearsal service execution unit 251 executes the process in step S402, the memory usage before the service is started is registered in MEM_USAGE_BEFORE. For example, when the rehearsal service execution unit 251 executes the process in step S401, it executes "$MEM_USAGE_BEFORE = `cat / sys / fs / cgroup / memory / kmem_accounting.slice / memory.kmem.usage_in_bytes`". 【0120】 Next, an example of the processing procedure for rewriting the configuration file by rehearsal.service, as shown in step S303 of Figure 19, will be described. Figure 21 is a flowchart showing the processing procedure for rewriting the configuration file by rehearsal.service. As shown in Figure 21, if the rehearsal service execution unit 251 of computer 200 has not finished starting the service (step S501, No), it proceeds back to step S501. On the other hand, if the rehearsal service execution unit 251 has finished starting the service (step S501, Yes), it proceeds to step S502. For example, if the rehearsal service execution unit 251 checks that the service has started, it executes "$ systemctl is active xxx.service". 【0121】 The rehearsal service execution unit 251 obtains the memory usage after the service has been started (step S502). 【0122】 The process in step S502 is explained below. When the rehearsal service execution unit 251 executes the process in step S502, the memory usage after the service has started is registered in MEM_USAGE_AFTER. For example, when the rehearsal service execution unit 251 executes the process in step S502, it executes "$ MEM_USAGE_AFTER = ` cat / sys / fs / cgroup / memory / kmem_accounting.slice / memory.kmem.usage_in_bytes`". 【0123】 If the memory usage has not increased (step S503, No), the rehearsal service execution unit 251 proceeds to step S504. On the other hand, if the memory usage has increased (step S503, Yes), the rehearsal service execution unit 251 proceeds to step S505. For example, the rehearsal service execution unit 251 determines whether or not the memory usage has increased by comparing the value of MEM_USAGE_BEFORE with the value of MEM_USAGE_AFTER. 【0124】 Step S504 will now be explained. The rehearsal service execution unit 251 sets the service configuration file to "default" (step S504) and proceeds to step S506. 【0125】 Step S505 is explained below. The rehearsal service execution unit 251 sets the service configuration file to "local" (step S505). The rehearsal service execution unit 251 deletes the cgroup prepared for counting memory usage (step S506). For example, when the rehearsal service execution unit 251 deletes a cgroup, it executes "$ rm -rf / sys / fs / cgroup / memory / kmem_accounting.slice". 【0126】 Next, we will explain an example of the output of a configuration file for a certain service. Figures 22 and 23 show examples of the output of a configuration file for a certain service. 【0127】 Let's explain Figure 22. The configuration file 40 in Figure 22 is the configuration file before the rehearsal is executed. When the rehearsal service execution unit 251 executes the service and the service does not cause memory fragmentation, the configuration file 40 is updated to the configuration file 41. 【0128】 In area 41a of configuration file 41, "NUMAPolicy=default" and "CPUAffinity=0-59" are set. This indicates that the resources available to the service are "CPUn0~n59 included in the NUMA node in Figure 14". 【0129】 Let's explain Figure 23. The configuration file 42 in Figure 23 is the configuration file before the rehearsal is executed. When the rehearsal service execution unit 251 executes a service and that service is one that causes memory fragmentation, the configuration file 42 is updated to the configuration file 43. 【0130】 In area 41a of configuration file 41, "NUMAPolicy=local" and "CPUAffinity=0-3" are set. This indicates that the resources available to the service are "CPUn0~n3 included in the NUMA node in Figure 14". 【0131】 Next, the effects of the computer 200 according to this embodiment 2 will be described. The computer 200 retrieves a service, allocates resources based on the service configuration file, and executes the service. The computer 200 compares the memory usage before executing the service with the memory usage after executing the service, and updates the service configuration file based on the comparison result. 【0132】 For example, computer 200 allows the use of CPUs n0 to n59 included in the NUMA node for services that do not cause memory fragmentation. On the other hand, computer 200 allows the use of CPUs n0 to n3 included in the NUMA node shown in Figure 14 for services that do cause memory fragmentation. 【0133】 This allows computer 200 to start services in parallel after a rehearsal, provided that each service does not cause memory fragmentation, thereby reducing startup time. 【0134】 Next, an example of a computer hardware configuration that achieves the same functions as the computer 100 (200) described above will be explained. Figure 24 is a diagram showing an example of a computer hardware configuration that achieves the same functions as the computer in this embodiment. 【0135】 As shown in Figure 24, the computer 300 includes a CPU 301 that performs various calculations, an input device 302 that receives data input from the user, and a display 303. The computer 300 also includes a communication device 304 and an interface device 305 that exchange data with other computers via a wired or wireless network. Furthermore, the computer 300 includes a RAM 306 for temporarily storing various information, a hard disk drive 307, and a NUMA node group 308. Each of these devices 301 to 308 is connected to a bus 309. 【0136】 For example, NUMA node group 308 consists of NUMA nodes 160a to 160c shown in Figure 11. 【0137】 The hard disk drive 307 contains a startup control program 307a, a test execution program 307b, an update program 307c, and a distribution program 307d. The CPU 301 reads each of the programs 307a to 307d and loads them into the RAM 306. 【0138】 The startup control program 307a functions as the startup control process 306a. The test execution program 307b functions as the test execution process 306b. The update program 307c functions as the update process 306c. The distribution program 307d functions as the distribution process 306d. 【0139】 The processing of the startup control process 306a corresponds to the processing of the startup processing unit 151. The processing of the test execution process 306b corresponds to the processing of the test execution unit 152. The processing of the update process 306c corresponds to the processing of the update unit 153. The processing of the distribution process 306d corresponds to the processing of the distribution unit 154. 【0140】 Furthermore, programs 307a to 307d do not necessarily have to be stored in the hard disk drive 307 from the beginning. For example, each program could be stored in a "portable physical medium" such as a flexible disk (FD), CD-ROM, DVD, magneto-optical disk, or IC card inserted into the computer 300. Then, the computer 300 could read and execute each program 307a to 307d. [Explanation of symbols] 【0141】 100,101,102,103 calculator 110,110 Communications Department 120,220 Input section 130,230 Display section 140,240 storage section 141 Startup Process List Table 142 Memory Usage Log Table 150,250 Control Unit 160a,160b,160c,260a,260b,260c,260d,260e,260f,260g NUMA node 251 Rehearsal Service Execution Department 252 Distribution Department

Claims

[Claim 1] The startup process for starting the system executes the startup process based on configuration information that sets the available resources. Based on the amount of memory used before the startup process is executed and the amount of memory used after the startup process is executed, the startup process determines the resources available to it. The settings information is updated based on the judgment result. An information processing program characterized by having a computer perform the processing. [Claim 2] The information processing program according to claim 1, characterized in that the determination process determines the startup process as a first startup process if the amount of memory used after the startup process is executed is greater than the amount of memory used before the startup process is executed, and the update process sets in the configuration information that the resources available to the startup process classified as a first startup process are more limited than the resources available to the startup process classified as a second startup process. [Claim 3] The information processing program according to claim 2, characterized in that the determination process determines the startup process to be the second startup process if the amount of memory used before the startup process is executed is the same as the amount of memory used after the startup process is executed. [Claim 4] The information processing program according to claim 1, characterized in that it executes a service based on configuration information that sets the resources available to the service for starting the system, determines the resources available to the service based on the amount of memory used before the service is executed and the amount of memory used after the service is executed, and further causes the computer to execute a process to update the configuration information based on the determination result. [Claim 5] The startup process for starting the system executes the startup process based on configuration information that sets the available resources. Based on the amount of memory used before the startup process is executed and the amount of memory used after the startup process is executed, the startup process determines the resources available to it. The settings information is updated based on the judgment result. An information processing method characterized by having a computer perform the processing. [Claim 6] A startup processing unit that executes the startup process based on configuration information that sets the resources available for the startup process to start the system, A test execution unit determines the available resources for the startup process based on the amount of memory used before the startup process is executed and the amount of memory used after the startup process is executed. Based on the judgment result, an update unit updates the aforementioned setting information. An information processing device characterized by having the following features.