WO2014171002A1 - メモリ管理方法、計算機及び記録媒体 - Google Patents

メモリ管理方法、計算機及び記録媒体 Download PDF

Info

Publication number
WO2014171002A1
WO2014171002A1 PCT/JP2013/061567 JP2013061567W WO2014171002A1 WO 2014171002 A1 WO2014171002 A1 WO 2014171002A1 JP 2013061567 W JP2013061567 W JP 2013061567W WO 2014171002 A1 WO2014171002 A1 WO 2014171002A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
attribute information
source attribute
memory
program
Prior art date
Application number
PCT/JP2013/061567
Other languages
English (en)
French (fr)
Inventor
健一 井手上
元樹 小幡
博泰 西山
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2013/061567 priority Critical patent/WO2014171002A1/ja
Priority to US14/424,052 priority patent/US20150242312A1/en
Publication of WO2014171002A1 publication Critical patent/WO2014171002A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection

Definitions

  • the present invention relates to a memory management method, a computer, and a recording medium.
  • Application servers are generally Java (registered trademark),.
  • NET registered trademark
  • the memory usage in the execution environment is an important monitoring item. Therefore, the person in charge of the system constantly monitors the memory usage of the object, and performs measures such as memory tuning and system performance degradation or system down due to the memory usage as part of the operation work.
  • Japanese Patent Application Laid-Open No. 2004-151820 discloses a method for classifying generated objects for each application by calculating which application a shared object referenced by a plurality of applications belongs, and calculating a memory usage for each application. Is described.
  • a computer that generates data by executing a program from a storage device that stores a plurality of pieces of generation attribute information related to data and identification information included in the data in association with the generation source For each attribute information, the corresponding data is specified, the step of calculating the memory usage of the specified data, and the step of outputting the calculated memory usage to the interface are executed.
  • the memory usage to be used can be calculated for each of a plurality of generation source attribute information related to data.
  • FIG. It is a flowchart which shows the flow of the production
  • FIG. It is a figure which shows an example which provided the example of the program 113 in 1st Embodiment, and the origin attribute information ID storage area at the end of the data area of the program 113.
  • generation source attribute information total data 116 in 1st Embodiment is shown. It is a figure which shows the example of a screen display of the origin attribute information analysis data 117 in 1st Embodiment. It is a flowchart which shows the flow of the production
  • FIG. 1 is a schematic diagram showing an outline of an embodiment to which the present invention is applied, and shows an example of a method for storing an object and generation attribute information of the object.
  • a computer that executes a Java program in an object-oriented language will be described as an example. Therefore, a Java object will be described as an example.
  • object-oriented languages such as C # may be used. Is also applicable.
  • the present invention is not limited to the object language, but can be similarly applied to a computer that executes a program described in a script language such as JRRuby or Python, and a generated object is one of data.
  • the memory usage of an object generated for each application to be used can be grasped by using an application ID that is one of the generation source attribute information.
  • This is realized by storing source attribute information such as request related information, user related information, and source information related to object generation in a Java object.
  • the Java object includes a mark area 2, a klass area 3, and a data area 4.
  • the header area refers to the mark area 2 and the klass area 3.
  • the data area refers to the data area 4.
  • identification information for managing a plurality of generation source attribute information is inserted into an object generated during the operation of the program 113 operating on the Java virtual machine 104. As a result, the memory usage amount used by each source attribute information is calculated.
  • FIG. 2 shows a configuration of the computer 101 according to the first embodiment to which the present invention is applied.
  • the computer 101 has a CPU 102 and a memory 103.
  • a Java virtual machine (Java VM) 104 is executed on the CPU 102.
  • the Java virtual machine 104 executes the program (application) 113 on the memory, thereby inserting the program reading unit 105, the program execution unit 106, the object generation unit 107, the generation source attribute information ID generation unit 108, and the generation source attribute information ID.
  • a unit 109, a generation source attribute information recording unit 110, a generation source attribute information analysis unit 111, and a generation source attribute information output unit 112 are realized.
  • the memory 103 includes a program 113, a buffer 114, and a heap 118 stored on the memory 103.
  • the program reading unit 105 reads a program 113 stored on the memory 103.
  • the program execution unit 106 executes the read program 113.
  • the object generation unit 107 generates an object necessary for executing the program 113 in the heap 118.
  • the generation source attribute information ID generation unit 108 manages generation source attribute information such as request-related information, user-related information, and program-related information obtained during execution of the program 113 with a unique ID, and a generation source attribute information ID list 115 is registered.
  • the generation source attribute information ID insertion unit 109 inserts the generation source attribute information ID into the object.
  • the generation source attribute information recording unit 110 acquires the generation source attribute information ID from the object, and records it in the generation source attribute information totaling data 116 together with event occurrence time information such as the event occurrence time and the number of simultaneous user connections, and stores it in the buffer 114. Deploy.
  • the generation source attribute information analysis unit 111 performs an analysis process on the generation source attribute information aggregation data.
  • the generation source attribute information output unit 112 outputs generation source attribute information total data 116 and generation source attribute information analysis data 117.
  • the buffer 114 is a storage area for storing a generation source attribute information ID list 115, generation source attribute information aggregation data 116, and generation source attribute information analysis data 117.
  • the generation source attribute information ID list 115 is a table for managing generation source attribute information for each object.
  • FIG. 3 shows an example of the generation source attribute information ID list 115.
  • the generation source attribute information ID list 115 is configured by associating the generation source attribute information ID 301 with a request ID 302, a user ID 303, a service ID 304, an application ID 305, and a generation source class name 306.
  • the request ID 302 is a unique ID given to a request that the user requests from the Java virtual machine 104.
  • the user ID 303 is a unique ID assigned to a user who uses the program 113 operating on the Java virtual machine 104.
  • the service ID 304 is an ID uniquely assigned to a service operating on the Java virtual machine 104.
  • a service is a group of applications that realize a predetermined purpose.
  • the application ID 305 is an ID that is uniquely assigned to the program 113 operating on the Java virtual machine 104.
  • the generation source class name 306 is a class name corresponding to the generation source of the generated object. Note that session information, company (organization) information, object generation method information, source code information, object generation route information, and the like that are not described in the generation source attribute information ID list 115 may also be managed.
  • the generation source attribute information summary data 116 is a table for storing generation source attribute information.
  • FIG. 4 shows an example of the generation source attribute information total data 116.
  • the generation source attribute information aggregation data 116 is composed of various information such as request information, user information, event information, and program information.
  • the generation source attribute information summary data 116 includes the generation source attribute information ID 400, the event occurrence time 401, the event ID 402, the thread ID 403, the user concurrent execution number 404, the object class name 405, and the generation source attribute information ID list.
  • the request ID 406, the user ID 407, the service ID 408, the application ID 409, the generation source class name 410, and the data size 411 recorded in 115 are assumed to be included.
  • the event occurrence time 401 indicates the time when the event occurred.
  • the event refers to, for example, occurrence of GC, excessive user access, and large memory consumption.
  • the event ID 402 is an event ID converted according to the type of event that has occurred.
  • the thread ID 403 is the thread ID of the thread that generated the recording target object.
  • the concurrent user execution number 404 is the number of accesses to the Java virtual machine 104 when an event occurs.
  • the object class name 405 is the class name of the recording target object.
  • the data size 411 indicates the size of each object.
  • the source attribute information ID 400, request ID 406, user ID 407, service ID 408, application ID 409, and source class name 410 are the same as the contents recorded in the source attribute information ID list 115.
  • the generation source attribute information analysis data 117 is a table indicating data obtained by analyzing the generation source attribute information. Details will be described later with reference to FIGS.
  • the heap 118 is an area for storing arbitrary data dynamically secured when the program 113 is executed.
  • the heaps 118 used in the present embodiment is a Java heap that is used when the Java virtual machine 104 is executed.
  • the Java virtual machine 104 corresponding to generational garbage collection will be described.
  • the present invention can also be executed by the Java virtual machine 104 performing another memory management method such as garbage-first (G1) garbage collection.
  • G1 garbage collection garbage-first
  • the Java heap 118 is divided into three areas: a New generation area (New area), an Old generation area (Old area), and a Permanent area (Perm area). Manage. Further, the New area is divided into two areas, an Eden area and a Survivor area, and managed. In this way, by dividing the Java heap 118, garbage collection can be executed without affecting the response performance.
  • New area New generation area
  • Old area Old generation area
  • Perm area Permanent area
  • the New area is divided into two areas, an Eden area and a Survivor area, and managed. In this way, by dividing the Java heap 118, garbage collection can be executed without affecting the response performance.
  • the program 113, the generation source attribute information ID list 115, the generation source attribute information aggregation data 116, and the generation source attribute information analysis data 117 may be stored not in the memory 103 but in an external storage device 119 such as a hard disk or storage. Good.
  • the computer 101 is connected to the external input / output device 120.
  • the external input / output device 120 refers to a mouse and keyboard for receiving input from a user, a display for outputting an analysis result, and the like.
  • FIG. 5 describes the overall flow of processing of the computer 101 in this embodiment.
  • the program reading unit 105 reads the program 113 stored on the memory 103.
  • the program execution unit 106 executes the read program 113.
  • the object generation unit 107 generates an object necessary for executing the program 113 in the heap 118.
  • the source attribute information ID generation unit 108 converts the source attribute information such as request related information, user related information, program related information, and source information obtained during the execution of the program 113 to ID, Register in the information ID list 115.
  • step S505 the generation source attribute information ID insertion unit 109 inserts the generated generation source attribute information ID into the object.
  • the generation source attribute information recording unit 110 acquires the generation source attribute information ID from the object when an event occurs such as when an object promotion process occurs, and from the generation source attribute information ID list 115 using the acquired ID as a key, Get the corresponding generation source attribute information.
  • event occurrence time information such as the event occurrence time and the number of simultaneous user connections is added as additional information and stored in the generation source attribute information aggregation data 116. Then, the stored information is arranged in the buffer 114.
  • the generation attribute information analysis unit 111 analyzes the generation attribute information aggregation processing data 116 generated in the generation attribute information recording process (S506) using statistical processing or mathematical optimization technology. In order to determine, it is determined whether or not analysis processing is to be performed. When the analysis process is performed (S507: Yes), the generator attribute information summary data 116 is used as the original data in the generator attribute information analysis process (S508), and the statistical process or the mathematical optimization process according to the purpose of the analysis is performed. The analysis result is stored in the buffer 114 as the generation source attribute information analysis data 117. When the analysis process is not performed (S507: No), the process proceeds to the generation attribute information output process (S509). Finally, in S509, the generation source attribute information output processing unit 112 outputs the generation source attribute information total data 116 and the generation source attribute information analysis data 117.
  • the generation source attribute information ID generation process (S504) will be described with reference to FIG.
  • a unique ID is assigned to the generation source attribute information obtained by executing the program 113 and registered in the generation source attribute information ID list 115.
  • the generation source attribute information ID generation unit 108 acquires generation source attribute information obtained by executing the program 113 from the computer 101.
  • step S602 a unique source attribute information ID is assigned to the acquired source attribute information.
  • step S603 the source attribute information acquired in step S601 and the source attribute information ID assigned in step S602 are associated with each other and stored in the buffer 114 as the source attribute information ID list 115.
  • the generation source attribute information ID insertion process (S505) will be described with reference to FIG.
  • the generated generation source attribute information ID is inserted into an empty area of the object.
  • the insertion place is not limited to the data area, and may be anywhere within the object.
  • the header area of an object is secured at a fixed size depending on the execution environment, there are cases where a free area cannot be secured.
  • the data area of the object is larger than the normal header area and further variable in size, and therefore may be suitable for inserting the generation source attribute information ID.
  • step S ⁇ b> 701 the generation source attribute information ID insertion unit 109 checks the size of the free area of the target object.
  • step S ⁇ b> 702 the generation source attribute information ID insertion unit 109 determines whether there is a free area in the data area of the target object. If there is no free area (S702: No), a source attribute information ID storage area is added to the target object in S703. If there is an empty area in the data area (S702: Yes), the process proceeds to S704.
  • step S704 the generation source attribute information ID insertion unit 109 inserts the generation source attribute information ID in the free area. Note that the upper limit value of the size of the generation source attribute information ID to be inserted may be determined from the size of the free area of the object.
  • the alignment unit is 8 bytes, and variables are arranged at memory addresses in byte units from the beginning of the data area.
  • a memory has a boundary for each determined number of bytes due to physical specifications such as a processor and a cache line, and it is necessary to arrange data along the boundary. Arranging data along this boundary is called “alignment”. If data arrangement is performed contrary to the alignment, adverse effects such as inability to execute the program or a significant decrease in the execution efficiency of the program occur.
  • the class of the program 113 in FIG. 8A includes fields of a reference type 801, a double type 802, a short type 803, and a byte type 804, and 4 bytes, 8 bytes, 2 bytes, and 1 byte are sequentially assigned.
  • FIG. 8C shows an example in which the generation source attribute information IDs 807 and 808 are inserted into the empty areas 805 and 806 in FIG. 8B.
  • the generation source attribute information ID is divided and stored, if the inserted address is recorded, the generation source attribute information ID can be taken out when necessary.
  • the empty area can be used without any gap, the use efficiency of the memory inside the object is improved.
  • the free area in the data area may be discrete on the memory 103 as shown in FIG. 8B, or the data placement order of the fields held by the class object is changed so that the free area becomes continuous, and the generation attribute There is also a method of inserting an information ID.
  • the generation source attribute information ID is inserted into the continuous area, the data reference process for the free area is omitted, so that the process of combining the discrete data in the free area becomes unnecessary, and the processing load for accessing the generation attribute information Can be reduced.
  • the position of the empty area in the data area is determined by the data arrangement order stored in the class object that is the prototype of the object. Therefore, the information about where the generation source attribute information is arranged in the object can calculate the free area when the class object is loaded in the program execution process (S502), and the class object itself has the arrangement position information. It is also possible to give it to another data structure.
  • the program shown in FIG. 9A includes fields of a reference type 901, a reference type 902, and a double type 903, and 4 bytes, 4 bytes, and 8 bytes are assigned in order as shown in FIG. 9B. If there is no empty area in the data area as shown in FIG. 9B, there is also a method of providing a generation attribute information ID storage area 904 at the end of the data area as shown in FIG. 9C.
  • the generation attribute information ID storage area may be provided anywhere in the area.
  • the size of the free area of the object is checked in the program execution process (S502).
  • the generation source attribute information ID can be inserted without increasing the object size.
  • the maximum value of the generation source attribute information ID that can be numbered from the maximum free area size, it is possible to assign the generation source attribute information ID without increasing the object size.
  • the generation source attribute information recording unit 110 determines whether or not the recording process has occurred, and confirms whether generation source attribute information needs to be recorded.
  • the occurrence timing of the recording process may be when an event occurs, such as when an object promotion process occurs, garbage collection (GC) occurs, or when the memory usage exceeds a preset threshold.
  • GC garbage collection
  • S1001: Yes the generation source attribute information ID is acquired from the object to be recorded in S1002. If it is not an occurrence trigger (S1001: No), the process is terminated.
  • the generation source attribute information recording unit 110 acquires information from the generation source attribute information ID list using the acquired generation source attribute information ID.
  • the generation source attribute information recording unit 110 acquires event occurrence time information related to the object generation source attribute information to be recorded.
  • the event occurrence time information here refers to information such as the occurrence time of an event to be recorded, the number of simultaneous user connections and the number of threads at the time of occurrence of the event to be recorded.
  • whether or not the object is a recording target can be determined using the reference flag of the object, but other methods may be used.
  • the acquired generation source attribute information and event occurrence time information are totaled and stored in the buffer 114 as generation source attribute information total data 116.
  • the information about the inflow amount of objects and the surviving amount of objects in the areas (Survivor area, Old area, etc.) constituting the heap 118 may be totaled.
  • FIG. 11 describes the flow of the generation source attribute information analysis process (S508).
  • the generation attribute information analysis process the generation attribute information summary data 116 is analyzed by statistical and mathematical optimization techniques, and generation attribute information analysis data 117 that can be used for prediction and pattern analysis is generated.
  • step S ⁇ b> 1101 the generation source attribute information analysis unit 111 acquires the generation source attribute information total data 116 from the buffer 114.
  • step S1102 the generation source attribute information analysis unit 111 performs analysis processing such as statistical processing and mathematical optimization processing on the acquired generation source attribute information aggregation data 116.
  • analysis processing include prediction of memory usage after a certain period of time using probability analysis theory, abnormal usage pattern analysis of program specific memory usage by discriminant analysis method, analysis of user operation tendency by cluster analysis, etc. There are various analysis methods.
  • the generated data is stored in the buffer 114 as the generation source attribute information analysis data 117.
  • FIG. 12 shows an example of data extracted from the generation source attribute information summary data 116.
  • Data 1200 indicates data extracted from the generation attribute information of the application ID as an analysis condition, and indicates a result of extracting a request whose application ID 1201 is “10” from the generation attribute information total data 116.
  • the method for extracting data can be freely specified by the user.
  • the application ID 1201 is used as an analysis condition, and the user ID 1202 and the memory usage 1203 are extracted. It can be extracted as an analysis condition, or a plurality of generation source attribute information can be extracted simultaneously.
  • FIG. 13 shows an example of a display screen 1300 displaying the source attribute information analysis data 119 obtained by performing the source attribute information analysis processing from the data 1200 of FIG.
  • the display screen 1300 displays an analysis condition designation tag 1301 for designating which generation source attribute information is used to analyze the object.
  • the user can freely select the generation source attribute information as the analysis condition by using the analysis condition designation tag 1301.
  • the generation source attribute information analysis data 119 includes information such as a normal memory usage 1302, a minimum memory usage 1303, a maximum memory usage 1304, and a mode memory usage 1305, for example.
  • the display screen 1300 allows the user to grasp the memory usage necessary for executing the application.
  • the normal memory usage of an application is the average value of the memory usage for each request.
  • FIG. 14 describes the flow of the generation source attribute information output process (S509).
  • the generation source attribute information output process the generation source attribute information aggregation data 116 and the generation source attribute information analysis data 117 are output to the external input / output device 120.
  • the output data may be data obtained by processing the source attribute information total data 116 and the source attribute information analysis data 117.
  • step S ⁇ b> 1401 the generation source attribute information output unit acquires the generation source attribute information aggregation data 116 and the generation source attribute information analysis data 117 from the buffer 114.
  • step S1402 it is determined whether to process the acquired data. If the acquired data is to be processed (S1402: Yes), the process proceeds to S1403. If not (S1402: No), the process proceeds to S1404.
  • step S ⁇ b> 1403 output data is generated from the generation source attribute information aggregation data 116 and the generation source attribute information analysis data 117. Data processing in this processing is mainly format conversion for screen output and file output. Note that the analysis process (S1102) of FIG. 11 may be performed in this process.
  • step S ⁇ b> 1404 the output data is output to the external input / output device 120.
  • step S1405 it is determined whether to output the output data to the external storage device 119.
  • data is output to the external storage device 119 in S1406.
  • S1405: No When not outputting (S1405: No), a process is complete
  • FIG. 15 shows a display screen 1500 that displays an example of output data.
  • a tag 1501 for designating analysis conditions and output data 1502 are displayed.
  • the output data 1502 includes, for example, an event occurrence time 1503, a user concurrent execution number 1504, and a memory usage 1505. Other generation source attribute information may be displayed.
  • the output data 1502 displays the concurrent user execution number 1504 and the memory usage 1505 to the Java virtual machine 104 for each GC execution.
  • the memory usage 1505 is displayed for any usage amount such as the inflow amount of objects into the Old area of the heap 118, the object survival amount in the Old area of the heap 118, and the object generation amount in the New area of the heap 118. Good.
  • the memory usage status may be output to the external storage device 119 in the form of a CSV file (Comma-Separated Values file) or the like.
  • CSV file Common-Separated Values file
  • FIG. 16 is a display screen 1600 that displays an example of output data as in FIG.
  • a tag 1601 for designating analysis conditions and output data 1602 are displayed.
  • the output data 1602 displays the memory usage status for each application running on the Java virtual machine 104.
  • a legend 1603 of a graph to be displayed and a boundary line 1604 indicating a threshold value of the memory usage amount are displayed.
  • other information can be displayed on the screen.
  • the user can recognize the system abnormality of the application 3 used by Company C from the sudden increase 1605 in the memory usage on the display screen 1600. When the memory usage exceeds a predetermined threshold, an alert may be displayed on the display screen 1600 to notify the user of the abnormality.
  • the second embodiment is an embodiment in which control such as server blockage and request migration are executed from acquired source attribute information in an environment where there are a plurality of computers 1701.
  • FIG. 17 shows the overall configuration of a computer 1701 in the second embodiment. A configuration different from FIG. 2 showing the overall configuration diagram of the first embodiment will be described below.
  • a system control processing unit 121 and a load management unit 122 are provided on the Java virtual machine 104, and system control data 123 is provided on the buffer 114, respectively.
  • a system configuration in which a plurality of computers 1701 are connected is depicted, and each of the computers 1701 is drawn as having a load management unit 122.
  • any computer 1701 that constitutes the system uses the load management unit 122. It is also possible to newly provide a load management computer that can communicate with the computer 1701.
  • FIG. 18 shows an outline of processing in the second embodiment. Note that the processing from S201 to S209 in FIG. 18 is the same as that in FIG. In the system control process of S1801, which is a new process step, the blocking process and the request resuming process of the computer 1701 in which a problem has occurred are performed.
  • S1901 in order to minimize the influence range of the problem, a system blocking process for performing a request stop process and a blocking process of the computer 1701 in which the problem has occurred is performed.
  • S1902 in order to normally process the request migrated from the computer 1701 in which the problem has occurred, the request stopped in the system blocking process (S1901) is re-executed, and the process ends.
  • the flow of the system blocking process (S1901) will be described.
  • the system blocking process when a problem related to the memory usage occurs, the memory usage for each request, the memory usage for each application, the memory usage for each user, and the memory usage for each service, which are aggregated in the generation attribute information recording process (S206).
  • the generation attribute information recording process (S206).
  • the request in which the problem has occurred is stopped and the computer 1701 itself is closed.
  • the system control processing unit 121 confirms whether or not the generation timing of the control processing is a trigger. When it is a generation timing of the control process (S2001: Yes), the process proceeds to S2002, and the program execution process corresponding to the request that causes the generation timing is stopped. If it is not a trigger for the generation of the control process (S2001: No), the process is terminated.
  • the occurrence timing of the control processing is when FullGC occurs, when the memory usage of the request exceeds a preset threshold, or when the usage of the heap 118 exceeds a preset threshold.
  • the system control processing unit 121 checks whether the memory usage of the program processing corresponding to the request exceeds a preset threshold. This is to check whether the memory usage of the request for which the program execution process is stopped is an abnormal value. If the threshold is not exceeded (S2003: No), in order to make a re-execution request to another computer 1701 on the system, the session information of the stopped request is transmitted to the load management unit 122 in S2004. If it is exceeded (S2003: Yes), the request is regarded as an abnormal request, so that the process proceeds to S2005, and a blockage request for the computer 1701 in which a problem has occurred is transmitted to the load management unit 122.
  • the system control processing unit 121 acquires problem occurrence information in order to record the problem occurrence situation.
  • the system control processing unit 121 collects the acquired problem occurrence information and the handling history and records them as system control data 123 in order to record information when the problem occurs.
  • the system control processing unit 121 performs recovery processing such as restart or garbage collection processing on the computer 1701 in which the problem has occurred.
  • FIG. 21 shows an example of a display screen 2100 that displays an example of the system control data 123.
  • FIG. 21 displays the system control data 123 as a system control report, and displays the time of each event and the contents of the event.
  • the output information is not limited to this, and request information, user information, and the like may be displayed.
  • the system control data 123 may be output in a file format such as a CSV file.
  • step S ⁇ b> 2201 the system control processing unit 121 confirms whether a request for resuming a stopped session has arrived from the load management unit 122. If it has arrived (S2201: Yes), session information is acquired from the load management unit 122 in S2202. Note that the session information may be acquired directly from the computer 1701 where the problem has occurred, not from the load management unit 122. If not arrived (S2201: No), the process is terminated.
  • step S2203 the system control processing unit 121 re-executes the program processing corresponding to the stopped request in order to return a result for the request, and ends the processing.
  • the session and the request are migrated to another computer 1701 operating normally.
  • the scale-out process is performed on another computer 1701 in the hot standby state, and the scaled-out computer 1701 is transferred to the scaled-out computer 1701. Sessions and requests may be migrated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 ユーザ情報やリクエスト情報等のデータの生成に関連する情報である複数の生成元属性情報毎に、夫々が使用するメモリ使用量を算出することができる。プログラムを実行してデータを生成する計算機が、データに関する複数の生成元属性情報と、データが有する識別情報とを対応付けて保持する記憶装置から、生成元属性情報毎に、対応するデータを特定し、特定したデータのメモリ使用量を算出するステップと、算出したメモリ使用量をインタフェースに出力するステップとを実行する。また、データのデータ構造は、データの制御に関する情報を格納する制御領域とデータ領域とを有し、計算機は、識別情報をデータ領域に挿入する。

Description

メモリ管理方法、計算機及び記録媒体
 本発明は、メモリを管理する方法、計算機及び記録媒体に関する。
 企業の業務が業務システムとしてIT化された社会において、システムの構成要素であるアプリケーションサーバは必要不可欠な要素である。アプリケーションサーバは一般に、Java(登録商標)や、.NET(登録商標)等の実行環境によって実現され、アプリケーションサーバを運用する際には、実行環境におけるメモリ使用量が重要な監視項目となっている。そのため、システムの運用担当者は、オブジェクトのメモリ使用量を常時監視し、メモリチューニングやメモリ使用量に起因するシステムの性能低下やシステムダウン等の対策を運用業務の一環として行っている。
  特許文献1には、複数のアプリケーションによって参照される共有オブジェクトが、いずれのアプリケーションに属するかを特定することで、生成されたオブジェクトをアプリケーション毎に分類し、アプリケーション毎のメモリ使用量を算出する方法が記載されている。
特開2012-221147号公報
 しかし、特許文献1に記載の方法は、複数のユーザがアプリケーションを実行する場合や、一つの仮想マシン上で多数のアプリケーションが実行されるようなシステムでは、アプリケーション毎あるいはユーザ情報等のオブジェクトの生成元に関連する情報(以下、「生成元属性情報」という。)毎にメモリ使用量を算出するには適さない。特許文献1に記載の方法では、実行環境によって固定的なサイズであるヘッダ領域にデータを格納するため、管理できるアプリケーションの数あるいは生成元属性情報の数が制限される。
 本発明の代表的な一形態は、プログラムを実行してデータを生成する計算機が、データに関する複数の生成元属性情報と、データが有する識別情報とを対応付けて保持する記憶装置から、生成元属性情報毎に、対応するデータを特定し、特定したデータのメモリ使用量を算出するステップと、算出したメモリ使用量をインタフェースに出力するステップとを実行する。
 本発明の一側面によれば、データに関する複数の生成元属性情報毎に、使用するメモリ使用量を算出することができる。
本発明を適用した第1実施形態の概要を示す図である。 第1実施形態における計算機101の全体構成を示す図である。 第1実施形態における生成元属性情報IDリスト115の一例を示す図である。 第1実施形態における生成元属性情報集計データ116の一例を示す図である。 第1実施形態における計算機101の処理の全体の流れを示すフロー図である。 第1実施形態における生成元属性情報ID生成処理の流れを示すフロー図である。 第1実施形態における生成元属性情報ID挿入処理の流れを示すフロー図である。 第1実施形態におけるプログラム113の一例及び該プログラム113のデータ領域の空き領域に生成元属性情報IDを挿入した一例を示す図である。 第1実施形態におけるプログラム113の一例及び該プログラム113のデータ領域の末尾に生成元属性情報ID格納領域を設けた一例を示す図である。 第1実施形態における生成元属性情報記録処理の流れを示すフロー図である。 第1実施形態における生成元属性情報解析処理の流れを示すフロー図である。 第1実施形態における生成元属性情報集計データ116から抽出されるデータの一例を示す。 第1実施形態における生成元属性情報解析データ117の画面表示例を示す図である。 第1実施形態における生成元属性情報出力処理の流れを示すフロー図である。 第1実施形態におけるアプリケーションのメモリ使用状況の表示画面の一例を示す。 第1実施形態におけるアプリケーション毎のメモリ使用状況の表示画面の一例を示す。 本発明を適用した第2実施形態である計算機1701の全体構成を示す図である。 第2実施形態における計算機1701の処理の全体の流れを示すフロー図である。 第2実施形態におけるシステム制御処理の流れを示すフロー図である。 第2実施形態におけるシステム閉塞処理の流れを示すフロー図である。 第2実施形態におけるシステム制御データ123の表示画面2100の一例を示す図である。 第2実施形態におけるリクエスト再開処理の流れを示すフロー図である。
 図1は、本発明を適用した一実施の形態の概要を示す概要図、オブジェクト及びオブジェクトの生成元属性情報の格納方法の一例を示す。なお、本発明の実施形態では、オブジェクト指向言語の中で特にJavaによるプログラムを実行する計算機を例に説明するため、Javaオブジェクトを例に説明するが、その他、C#のようなオブジェクト指向言語にも適用できる。また、オブジェクト言語に限定されず、JRubyやJythonなどのスクリプト言語で記載されたプログラムを実行する計算機にも同様に適用でき、生成されるオブジェクトはデータの一つである。
 本実施形態では、表示画面1に示すように、例えば、生成元属性情報の一つであるアプリケーションIDを用いて、使用するアプリケーション毎に生成したオブジェクトのメモリ使用量を把握することができる。これは、Javaオブジェクトに、オブジェクトの生成に関連するリクエスト関連情報、ユーザ関連情報及び生成元情報等の生成元属性情報を格納することにより実現される。
  Javaオブジェクトは、mark領域2、klass領域3及びdata領域4からなる。一般に、ヘッダ領域とは、mark領域2及びklass領域3をいう。また、データ領域とは、data領域4のことをいう。
 [第1の実施形態]
  次いで、本発明を適用した計算機101の第1の実施形態について、図を用いて説明する。本実施形態では、Java仮想マシン104上で動作するプログラム113の動作時に生成するオブジェクトに複数の生成元属性情報を管理するための識別情報を挿入する。これにより、生成元属性情報毎に夫々が使用するメモリ使用量を算出する。
 図2は、本発明を適用した第1の実施形態である計算機101の構成を示す。
  計算機101は、CPU102及びメモリ103を有する。CPU102上ではJava仮想マシン(JavaVM)104が実行される。Java仮想マシン104は、メモリ上のプログラム(アプリケーション)113を実行することで、プログラム読込部105、プログラム実行部106、オブジェクト生成部107、生成元属性情報ID生成部108、生成元属性情報ID挿入部109、生成元属性情報記録部110、生成元属性情報解析部111及び生成元属性情報出力部112を実現する。
  メモリ103は、メモリ103上に格納されるプログラム113、バッファ114及びヒープ118を有する。
 プログラム読込部105は、メモリ103上に格納されているプログラム113を読み込む。
  プログラム実行部106は、読み込んだプログラム113を実行する。
  オブジェクト生成部107は、プログラム113の実行に必要なオブジェクトをヒープ118に生成する。
  生成元属性情報ID生成部108は、プログラム113の実行中に得た、リクエスト関連情報、ユーザ関連情報及びプログラム関連情報等の生成元属性情報を一意のIDで管理し、生成元属性情報IDリスト115に登録する。
 生成元属性情報ID挿入部109は、オブジェクトに生成元属性情報IDを挿入する。
  生成元属性情報記録部110は、オブジェクトから生成元属性情報IDを取得し、さらにイベント発生時刻及びユーザ同時接続数等のイベント発生時情報とともに生成元属性情報集計データ116に記録し、バッファ114に配置する。
  生成元属性情報解析部111は、生成元属性情報集計データに対して解析処理を行う。
  生成元属性情報出力部112は、生成元属性情報集計データ116及び生成元属性情報解析データ117を出力する。
 バッファ114は、生成元属性情報IDリスト115、生成元属性情報集計データ116及び生成元属性情報解析データ117を格納する記憶領域である。
  生成元属性情報IDリスト115は、オブジェクト毎の生成元属性情報を管理するテーブルである。図3に、生成元属性情報IDリスト115の一例を示す。生成元属性情報IDリスト115は、生成元属性情報ID301に対してリクエストID302、ユーザID303、サービスID304、アプリケーションID305及び生成元クラス名306が対応づけられて構成される。
  リクエストID302は、ユーザがJava仮想マシン104に要求するリクエストに対して付与した一意のIDである。
  ユーザID303は、Java仮想マシン104上で動作するプログラム113を利用するユーザに対して割り振られた一意のIDである。
 サービスID304は、Java仮想マシン104上で動作するサービスに対して、一意に割り振られたIDである。サービスとは、事前に定めた目的を実現するアプリケーション群のことである。
  アプリケーションID305は、Java仮想マシン104上で動作するプログラム113に対して一意に割り振られたIDである。
  生成元クラス名306は、生成されたオブジェクトの生成元に対応するクラス名である。
  なお、生成元属性情報IDリスト115に記載されていないセッション情報、会社(組織)情報、オブジェクトの生成メソッド情報、ソースコード情報及びオブジェクトの生成経路情報等も管理してもよい。
 生成元属性情報集計データ116は、生成元属性情報を格納するテーブルである。図4に、生成元属性情報集計データ116の一例を示す。生成元属性情報集計データ116は、リクエスト情報、ユーザ情報、イベント情報及びプログラム情報等の種々の情報から構成される。本実施形態では、生成元属性情報集計データ116は、生成元属性情報ID400、イベント発生時刻401、イベントID402、スレッドID403、ユーザ同時実行数404及びオブジェクトクラス名405の他、生成元属性情報IDリスト115で記録したリクエストID406、ユーザID407、サービスID408、アプリケーションID409、生成元クラス名410及びデータサイズ411から構成されるものとする。
 イベント発生時刻401は、イベントが発生した時刻を示す。イベントとは、例えばGC発生、ユーザアクセス過多及びメモリ大量消費等をいう。
  イベントID402は発生したイベントの種類でイベントをID化したものである。
  スレッドID403は、記録対象オブジェクトを生成したスレッドのスレッドIDである。
  ユーザ同時実行数404は、イベント発生時のJava仮想マシン104へのアクセス数である。
  オブジェクトクラス名405は、記録対象オブジェクトのクラス名である。
 データサイズ411は、各オブジェクトのサイズを示す。
  生成元属性情報ID400、リクエストID406、ユーザID407、サービスID408、アプリケーションID409及び生成元クラス名410は、生成元属性情報IDリスト115に記録されている内容と同様である。
 生成元属性情報解析データ117は、生成元属性情報を解析したデータを示すテーブルである。詳細は、図12及び図13を用いて後述する。
 ヒープ118は、プログラム113の実行時に動的に確保した任意のデータを格納する領域である。本実施形態で用いるヒープ118の中にはJava仮想マシン104実行時に使用するJavaヒープがある。本実施形態では、世代別ガベージコレクションに対応したJava仮想マシン104について説明するが、Garbage-First(G1)ガベージコレクション等の他のメモリ管理方法を行っているJava仮想マシン104でも実行可能である。
 Java仮想マシン104が、世代別ガベージコレクションに対応している場合、Javaヒープ118は、New世代領域(New領域)、Old世代領域(Old領域)、Permanent領域(Perm領域)の3つに分割して管理する。さらに、New領域はEden領域とSurvivor領域の2つの領域に分割して管理する。このように、Javaヒープ118内部を分割することによって、応答性能への影響を与えずに、ガベージコレクションを実行することができる。
 なお、プログラム113、生成元属性情報IDリスト115、生成元属性情報集計データ116及び生成元属性情報解析データ117は、メモリ103上ではなく、ハードディスクやストレージ等の外部記憶装置119に格納してもよい。また、計算機101は、外部入出力装置120と接続される。外部入出力装置120は、ユーザからの入力を受け付けるためのマウスやキーボード、解析した結果を出力するためのディスプレイ等をいう。
 図5に、本実施形態における計算機101の処理の全体の流れについて説明する。
  S501で、プログラム読込部105が、メモリ103上に格納されているプログラム113を読み込む。
  S502で、プログラム実行部106が、読み込んだプログラム113を実行する。
  S503で、オブジェクト生成部107が、プログラム113の実行に必要なオブジェクトを、ヒープ118に生成する。
  S504で、生成元属性情報ID生成部108が、プログラム113の実行中に得た、リクエスト関連情報、ユーザ関連情報、プログラム関連情報及び生成元情報等の生成元属性情報をID化し、生成元属性情報IDリスト115に登録する。
 S505で、生成元属性情報ID挿入部109が、生成した生成元属性情報IDを、オブジェクトに挿入する。
  S506で、生成元属性情報記録部110が、オブジェクトのプロモーション処理発生時等のイベント発生時に、オブジェクトから生成元属性情報IDを取得し、取得したIDをキーとして生成元属性情報IDリスト115から、対応する生成元属性情報を取得する。このとき、イベント発生時刻及びユーザ同時接続数等のイベント発生時情報を追加情報として付加して生成元属性情報集計データ116に格納する。そして、格納した情報をバッファ114に配置する。
 S507で、生成元属性情報解析部111が、生成元属性情報記録処理(S506)で生成した生成元属性情報集計処理データ116を統計処理あるいは数理最適化技術を用いて解析する用途であるかを判別するために、解析処理を実施するかどうか判断する。解析処理を行なう場合(S507:Yes)、生成元属性情報解析処理(S508)で生成元属性情報集計データ116を元データとして、解析の目的に応じた統計処理あるいは数理最適化処理を実施し、その解析結果を生成元属性情報解析データ117としてバッファ114に格納する。解析処理を行わない場合(S507:No)、生成元属性情報出力処理(S509)に進む。
  最後に、S509で、生成元属性情報出力処理部112が、生成元属性情報集計データ116及び生成元属性情報解析データ117を出力する。
 以下、図5に示した各処理について、より詳細に説明する。
  図6で、生成元属性情報ID生成処理(S504)の流れについて説明する。生成元属性情報ID生成処理では、プログラム113を実行することで得た生成元属性情報に一意のIDを割り振り、生成元属性情報IDリスト115に登録する。
  最初に、S601で、生成元属性情報ID生成部108が、プログラム113を実行することで得た生成元属性情報を計算機101から取得する。
 次に、S602で、取得した生成元属性情報に一意の生成元属性情報IDを付与する。
  次いで、S603で、S601で取得した生成元属性情報とS602で付与した生成元属性情報IDを対応付けて、生成元属性情報IDリスト115として、バッファ114に格納する。
 図7で、生成元属性情報ID挿入処理(S505)の流れについて説明する。生成元属性情報ID挿入処理では、生成した生成元属性情報IDをオブジェクトの空き領域に挿入する。本実施形態では、オブジェクトのデータ領域に生成元属性情報IDを挿入する例を示すが、挿入する場所はデータ領域に限定されず、オブジェクト内であればどこであってもよい。一般的に、オブジェクトのヘッダ領域は、実行環境によって固定的なサイズで確保されているため、空き領域が確保できない場合がある。一方、オブジェクトのデータ領域は、通常ヘッダ領域よりもサイズが大きく、さらにサイズが可変であるため、生成元属性情報IDを挿入するのに適する場合がある。
  まず、S701で、生成元属性情報ID挿入部109が、対象オブジェクトの空き領域のサイズを調査する。
  次いで、S702で、生成元属性情報ID挿入部109が、対象のオブジェクトのデータ領域に空き領域があるかどうかを判定する。空き領域がない場合(S702:No)、S703で対象オブジェクトに生成元属性情報ID格納用領域を追加する。データ領域に空き領域がある場合(S702:Yes)、S704に進む。
  最後に、S704で、生成元属性情報ID挿入部109が、空き領域に生成元属性情報IDを挿入する。なお、挿入する生成元属性情報IDのサイズの上限値を、オブジェクトの空き領域のサイズから決めてもよい。
 図8A、図8B及び図8Cを用いて、データ領域の空き領域への生成元属性情報IDの挿入例を図示する。
  本実施形態では、アライメントの単位を8byteとして、データ領域の先頭からbyte単位のメモリアドレスで変数が配置される。一般に、メモリは、プロセッサやキャッシュラインといった物理的な仕様により、決められたバイト数ごとに境界があり、境界に沿ってデータを配置する必要がある。この境界に沿ってデータを配置することを「アライメント」という。アラインメントに反したデータ配置を行うと、プログラムの実行ができないあるいはプログラムの実行効率が著しく低下する等の悪影響が生じる。
 図8Aのプログラム113のクラスが、参照型801、double型802、short型803及びbyte型804のフィールドからなり、順に4byte、8byte、2byte及び1byteが割り当てられているとする。8byteアライメントを考慮すると、プログラム113のオブジェクトは、図8Bに示す配置となり、空き領域805及び空き領域806が存在することになる。従って、オブジェクト全体の空き領域は「4byte+5byte=9byte」になる。
 図8Cに、図8Bの空き領域805及び空き領域806の空き領域に生成元属性情報ID807及び808を挿入した例を示す。生成元属性情報IDを分割して格納する場合、挿入したアドレスを記録しておけば、必要な時に生成元属性情報IDを取り出すことができる。また、空き領域を隙間なく利用することができるため、オブジェクト内部のメモリの使用効率がよくなる。
 データ領域中の空き領域は、図8Bのようにメモリ103上で離散的でもよいし、空き領域が連続的になるようにクラスオブジェクトが保持するフィールドのデータ配置順序を変更して、生成元属性情報IDを挿入する方法もある。連続領域に生成元属性情報IDを挿入する場合、空き領域に対するデータの参照処理が省略されるため、空き領域中の離散的なデータの結合処理が不要となり、生成元属性情報にアクセスする処理負荷が低減できる。
 なお、Javaの場合、データ領域の空き領域の位置は、オブジェクトの原型となるクラスオブジェクトが記憶するデータ配置順序によって決まる。よって、生成元属性情報をオブジェクトのどこに配置するのかという情報は、プログラム実行処理(S502)に伴うクラスオブジェクトロード時に空き領域を計算することが可能であり、配置位置の情報をクラスオブジェクト自体に持たせたることや、別のデータ構造に持たせることも可能である。
 図9A、図9B及び図9Cを用いて、データ領域に空き領域がない場合の生成元属性情報IDの挿入方法について説明する。図9Aに示すプログラムは、参照型901、参照型902及びdouble型903のフィールドからなり、図9Bに示すように、順に4byte、4byte及び8byteを割り当てられているとする。図9Bに示すようにデータ領域に空き領域がない場合、図9Cのようにデータ領域の末尾に生成元属性情報ID格納領域904を設ける方法もある。なお、生成元属性情報ID格納用領域は、領域中であればどこに設けてもよい。
 本実施形態では、プログラム実行処理(S502)でオブジェクトの空き領域のサイズを調査するものとするが、アプリケーションで利用するクラスオブジェクトの情報を事前に調査し、最大空き領域サイズを把握することもできる。事前に調査することによって、オブジェクトサイズを増やさずに生成元属性情報IDを挿入することができる。また、最大空き領域サイズから採番できる生成元属性情報IDの最大値を求めることにより、オブジェクトサイズを増やさずに生成元属性情報IDを振ることも可能である。
 図10で、生成元属性情報記録処理(S506)の流れについて説明する。生成元属性情報記録処理では、生成元属性情報の記録処理が必要なオブジェクトを集計し、生成元属性情報集計データ116として記録する。
  最初に、S1001で、生成元属性情報記録部110が、記録処理の発生契機かどうかを判定し、生成元属性情報を記録する必要があるかを確認する。記録処理の発生契機は、オブジェクトのプロモーション処理発生時、ガベージコレクション(GC)発生時及びメモリ使用量が事前に設定した閾値を超過した時等のイベント発生時が考えられる。記録処理の発生契機である場合(S1001:Yes)、S1002で記録対象のオブジェクトから生成元属性情報IDを取得する。発生契機でない場合(S1001:No)、処理を終了する。
 次に、S1003で、生成元属性情報記録部110が、取得した生成元属性情報IDを用いて生成元属性情報IDリストから情報を取得する。
  次いで、S1004で、生成元属性情報記録部110が、記録対象のオブジェクト生成元属性情報と関連するイベント発生時情報を取得する。ここでいうイベント発生時情報とは、記録対象となるイベントの発生時刻、記録対象となるイベント発生時のユーザ同時接続数やスレッド数等の情報を指す。ここで、記録対象のオブジェクトであるか否かは、オブジェクトが有する参照フラグを用いて判断することができるが、他の手法を用いても良い。
  最後に、S1005で、取得した生成元属性情報及びイベント発生時情報を集計して、生成元属性情報集計データ116としてバッファ114に格納する。
 なお、生成元属性情報の集計処理時に、ヒープ118を構成する領域(Survivor領域やOld領域等)のオブジェクト流入量状況やオブジェクトの生存量の情報を集計しても良い。
 図11は、生成元属性情報解析処理(S508)の流れについて説明する。生成元属性情報解析処理では、生成元属性情報集計データ116を統計及び数理最適化技術で解析し、予測やパターン分析に利用可能な生成元属性情報解析データ117を生成する。
  最初に、S1101で、生成元属性情報解析部111が、バッファ114から生成元属性情報集計データ116を取得する。
 次に、S1102で、生成元属性情報解析部111が、取得した生成元属性情報集計データ116に対して統計処理や数理最適化処理等の解析処理を実施する。解析処理の具体例としては、確率解析理論を用いた一定時間経過後のメモリ使用量の予測、判別分析法によるプログラム固有のメモリ使用量の異常使用パターン分析及びクラスター分析によるユーザの操作傾向分析等の種々の解析方法がある。
  最後に、S1103で、生成したデータを生成元属性情報解析データ117として、バッファ114に格納する。
 ここでは、解析処理の一つとして、メモリのサイジング方法を例示する。
  S1101で取得した生成元属性情報集計データ116から、アプリケーションID、リクエストID及びリクエストIDに対応するリクエスト毎のメモリ使用量を抽出する。図12は、生成元属性情報集計データ116から抽出したデータの一例を示す。データ1200は、アプリケーションIDの生成元属性情報を解析条件として抽出したデータを示し、生成元属性情報集計データ116から、アプリケーションID1201が「10」であるリクエストを抽出した結果を示している。データの抽出の方法は、ユーザが自由に指定でき、本実施形態では、アプリケーションID1201を解析条件として、ユーザID1202及びメモリ使用量1203を抽出した例を示しているが、他の生成元属性情報を解析条件として抽出することもできるし、複数の生成元属性情報を同時に抽出することもできる。
 図13は、図12のデータ1200から生成元属性情報解析処理を行った生成元属性情報解析データ119を表示した表示画面1300の一例を示す。表示画面1300には、オブジェクトをいずれの生成元属性情報を条件として解析するかを指定する解析条件指定タグ1301が表示される。ユーザは、解析条件指定タグ1301により、自由に解析条件とする生成元属性情報を選択することができる。生成元属性情報解析データ119は、例えば、通常メモリ使用量1302、最小メモリ使用量1303、最大メモリ使用量1304及び最頻メモリ使用量1305等の情報で構成される。ユーザは、表示画面1300により、アプリケーションを実行する上で必要なメモリ使用量を把握することが可能になる。なお、本実施形態では、あるアプリケーションの通常メモリ使用量を、リクエスト毎のメモリ使用量の平均値としている。
 図14で、生成元属性情報出力処理(S509)の流れについて説明する。生成元属性情報出力処理では、生成元属性情報集計データ116及び生成元属性情報解析データ117を、外部入出力装置120に出力する。なお、出力するデータは生成元属性情報集計データ116及び生成元属性情報解析データ117を加工したものであってもよい。
 最初に、S1401で、生成元属性情報出力部が、生成元属性情報集計データ116及び生成元属性情報解析データ117をバッファ114から取得する。
  次に、S1402で、取得したデータを加工するか判断する。取得したデータを加工する場合(S1402:Yes)、S1403に進む、そうでない場合(S1402:Nо)、S1404に進む。
  次に、S1403で、生成元属性情報集計データ116及び生成元属性情報解析データ117から出力用データを生成する。なお、この処理でのデータ加工は、画面出力やファイル出力時向けの形式変換が主である。なお、図11の分析処理(S1102)を、本処理で行うのでもよい。
 次に、S1404で、出力用データを外部入出力装置120に出力する。
  次に、S1405で、出力用データを外部記憶装置119にファイル出力するかどうかを判定する。ファイル出力する場合(S1405:Yes)、S1406で外部記憶装置119にデータを出力する。出力しない場合(S1405:No)、処理を終了する。
 図15は、出力用データの一例を表示した表示画面1500を示す。表示画面1500には、解析条件を指定するタグ1501及び出力用データ1502が表示される。出力用データ1502は、例えば、イベント発生時刻1503、ユーザ同時実行数1504及びメモリ使用量1505で構成される。他の生成元属性情報を表示しても構わない。
  出力用データ1502はGC実行毎のJava仮想マシン104へのユーザ同時実行数1504及びメモリ使用量1505を表示している。メモリ使用量1505は、ヒープ118のOld領域へのオブジェクトの流入量、ヒープ118のOld領域でのオブジェクト生存量、ヒープ118のNew領域へのオブジェクト生成量等の、どの使用量について表示してもよい。また、メモリ使用状況は、CSVファイル(Comma-Separated Valuesファイル)などの形式で外部記憶装置119に出力してもよい。
 図16は、図15と同様に出力用データの一例を表示した表示画面1600である。表示画面1600には、解析条件を指定するタグ1601及び出力用データ1602が表示される。出力用データ1602は、Java仮想マシン104上で動作するアプリケーション毎のメモリ使用状況を表示している。画面中には、表示するグラフの凡例1603及びメモリ使用量の閾値を示す境界線1604を表示しているが、これら以外の情報を画面上に表示することできる。ユーザは、表示画面1600のメモリ使用量の急上昇1605から、CompanyCの使用するアプリケーション3のシステム異常を認識することができる。なお、メモリ使用量が所定の閾値を超えた場合に、表示画面1600上にアラートを表示してユーザへ異常を通知するようにしても良い。
  このように、本発明を適用することで、アプリケーションサーバの使用状況を種々の解析条件を用いて把握することができる。
 [第2の実施形態]
  次に、本発明を適用した計算機1701の第2の実施形態について説明する。第2の実施形態は、計算機1701が複数台ある環境下で、取得した生成元属性情報から、サーバの閉塞等の制御及びリクエストのマイグレーションを実行する実施形態である。
 図17に第2の実施形態における計算機1701の全体構成を示す。第1の実施形態の全体構成図を示す図2と異なる構成について、以降では説明する。
  本実施形態では、Java仮想マシン104上にシステム制御処理部121及び負荷管理部122を、バッファ114にシステム制御データ123を夫々設ける。
 本実施形態では、計算機1701を複数台接続したシステム構成とし、計算機1701の各々が負荷管理部122を有するものとして描画しているが、システムを構成する何れかの計算機1701が負荷管理部122を有するものとしても、計算機1701に通信可能な負荷管理計算機を新たに設けるものとしてもよい。
 図18に第2の実施形態における処理の概要を示す。なお、図18のS201からS209までの処理は、図2と同様の処理であるため説明を省略する。
  新たな処理ステップであるS1801のシステム制御処理では、問題が発生した計算機1701の閉塞処理及びリクエスト再開処理を実施する。
 図19で、システム制御処理(S1801)の流れについて説明する。
  最初に、S1901で、問題の影響範囲を最小化するために、問題が発生した計算機1701のリクエストの停止処理及び閉塞処理をするシステム閉塞処理を行う。
  次に、S1902で、問題が発生した計算機1701からマイグレーションされたリクエストを正常に処理するために、システム閉塞処理(S1901)で停止させたリクエストの再実行を行い、処理を終了する。
 図20で、システム閉塞処理(S1901)の流れについて説明する。システム閉塞処理では、メモリ使用量に関する問題発生時において、生成元属性情報記録処理(S206)で集計したリクエスト毎のメモリ使用量、アプリケーション毎のメモリ使用量、ユーザ毎のメモリ使用量及びサービス毎のメモリ使用量等を用いて、問題が発生したリクエストを停止し、計算機1701自体の閉塞処理を行う。
 最初に、S2001において、システム制御処理部121が、制御処理の発生契機かどうか確認する。制御処理の発生契機であった場合(S2001:Yes)、S2002に進み、発生契機の原因となったリクエストに対応するプログラム実行処理を停止する。制御処理の発生契機でない場合(S2001:No)、処理を終了する。制御処理の発生契機とは、FullGCの発生時、リクエストのメモリ使用量が事前に設定した閾値を超過した時及びヒープ118の使用量が事前に設定した閾値を超過した時等をいう。
 次に、S2003で、システム制御処理部121が、リクエストに対応するプログラム処理のメモリ使用量が事前に設定した閾値を超過したかを確認する。これは、プログラム実行処理を停止したリクエストのメモリ使用量が異常値であるかどうかを確認するためである。閾値を超過していない場合(S2003:No)、システム上にある他の計算機1701に再実行依頼を行うために、S2004で、停止させたリクエストのセッション情報を負荷管理部122に送信する。超過している場合(S2003:Yes)、異常リクエストとみなすため、S2005に進み、問題が発生した計算機1701の閉塞依頼を負荷管理部122に送信する。
 次に、S2006で、システム制御処理部121が、問題発生状況を記録するために、問題発生時情報を取得する。
  次いで、S2007で、システム制御処理部121が、問題発生時の情報を記録するために、取得した問題発生時情報と対処履歴を集約してシステム制御データ123として記録する。
  最後に、S2008で、システム制御処理部121が、問題が発生した計算機1701に対して、再起動やガベージコレクション処理などの回復処置を実施する。
 図21に、システム制御データ123の一例を表示した表示画面2100の一例を示す。図21は、システム制御データ123をシステム制御レポートとして表示しており、各イベントの時刻とイベントの内容を表示している。なお、出力する情報はこれに限られず、リクエスト情報やユーザ情報等を表示するようにしてもよい。また、システム制御データ123は、CSVファイル等によりファイル形式で出力してもよい。
 図22で、リクエスト再開処理(S1902)の流れについて説明する。リクエスト再開処理では、システム制御処理で停止させられた正常なリクエストを別の計算機1701で再実行する処理である。
  最初に、S2201で、システム制御処理部121が、停止したセッションの再開依頼が負荷管理部122から到着したかを確認する。到着している場合(S2201:Yes)、S2202で、負荷管理部122からセッション情報を取得する。なお、セッション情報は負荷管理部122からではなく、問題が発生した計算機1701から直接取得してもよい。到着していない場合(S2201:No)、処理を終了する。
 次に、S2203で、システム制御処理部121が、リクエストに対する結果を返すために、停止したリクエストに対応するプログラム処理を再実行して処理を終了する。
  なお、本実施形態では、セッション及びリクエストを、正常に動作している別の計算機1701にマイグレーションしたが、ホットスタンバイ状態の別の計算機1701に対してスケールアウト処理を行い、スケールアウトした計算機1701にセッション及びリクエストをマイグレーションしてもよい。
 上記の処理を実施することによって、計算機1701のメモリ使用量に異常が発生した場合においても、システムをダウンさせることなくリクエストに対して結果を返すことが可能となる。
 以上、本発明を実施するための形態を説明したが、本発明はこれらの例に限定されるものではなく、その趣旨を逸脱しない範囲で、種々の構成や動作を適用可能である。
  また、実施形態における各機能部は、プログラムとCPUとの協働によって実現する例について説明したが、これらの一部や全部をハードウェアとして実現することも可能である。
  さらに、実施形態において各種テーブル形式で示して管理する情報は、テーブル形式に限られるものではない。また、各種情報をクライアントの操作画面に表示してもよい。
  なお、実施形態において各機能部を実現するためのプログラムは、電気・電子及び/又は磁気的な非一時的な記録媒体に格納可能である。
101・1701…計算機、102…CPU、103…メモリ、104…Java仮想マシン、105…プログラム読込部、106…プログラム実行部、107…オブジェクト生成部、108…生成元属性情報ID生成部、109…生成元属性情報ID挿入部、110…生成元属性情報記録部、111…生成元属性情報解析部、112…生成元属性情報出力部、113…プログラム、114…バッファ、115…生成元属性情報IDリスト、116…生成元属性情報集計データ、117…生成元属性情報解析データ、118…ヒープ、119…外部記憶装置、120…外部入出力装置、121…システム制御処理部、122…負荷管理部、123…システム制御データ

Claims (11)

  1.  プログラムを実行してデータを生成する計算機が、
     前記データに関する複数の生成元属性情報と、前記データが有する識別情報とを対応付けて保持する記憶装置から、前記生成元属性情報毎に、対応するデータを特定し、特定したデータのメモリ使用量を算出するステップと、
     算出したメモリ使用量をインタフェースに出力するステップと
    を実行することを特徴とするメモリ管理方法。
  2.  請求項1に記載のメモリ管理方法であって、
     前記データのデータ構造は、前記データの制御に関する情報を格納する制御領域とデータ領域とを有し、
     前記計算機が、前記識別情報を前記データ領域に挿入するステップ
    を実行することを特徴とするメモリ管理方法。
  3.  請求項2に記載のメモリ管理方法であって、
     前記生成元属性情報は、前記データの定義を示すプログラム情報、前記データの生成に関するリクエスト情報、前記プログラムを実行するユーザ情報又は前記プログラムによって指示されるイベント情報の少なくともいずれか一つを含む
    ことを特徴とするメモリ管理方法。
  4.  請求項3に記載のメモリ管理方法であって、
     前記メモリは、複数の領域から構成され、
     前記計算機は、前記データが前記プログラムの実行により生成されたこと、前記メモリの解放を指示するガベージコレクションの発生に応じて、前記データを解放が指示された領域とは異なるメモリ領域へ移動すること又は前記メモリ使用量が閾値以上であること、の少なくともいずれか一つを契機として前記メモリ使用量を算出する
    ことを特徴とするメモリ管理方法。
  5.  請求項3に記載のメモリ管理方法であって、
     前記計算機は、
     前記メモリ使用量を用いて前記メモリ使用量に関する統計処理あるいは最適化処理を行うステップと、
     前記統計処理あるいは最適化処理を行った結果を前記インタフェースに出力するステップと
    を実行することを特徴とするメモリ管理方法。
  6.  プログラムを実行してデータを生成する計算機は、
     前記データが有する識別情報を前記データのデータ構造に挿入する挿入部と、
     前記データに関する複数の生成元属性情報と前記識別情報とを対応付けて保持する記憶部と、
     前記識別情報により前記生成元属性情報毎に対応するデータを特定して、特定したデータのメモリ使用量を算出する解析部と、
     前記メモリ使用量を出力する出力部と
    を有することを特徴とする計算機。
  7.  請求項6に記載の計算機であって、
     前記データのデータ構造は、前記データの制御に関する情報を格納する制御領域とデータ領域とを有し、
     前記挿入部は、前記識別情報を前記データ領域に挿入する
    ことを特徴とする計算機。
  8.  請求項7に記載の計算機であって、
     前記生成元属性情報は、前記データの定義を示すプログラム情報、前記データの生成に関するリクエスト情報、前記プログラムを実行するユーザ情報又は前記プログラムによって指示されるイベント情報の少なくともいずれか一つを含む
    ことを特徴とする計算機。
  9.  請求項8に記載の計算機であって、
     前記メモリは、複数の領域から構成され、
     前記解析部は、前記データが前記プログラムの実行により生成されたこと、前記メモリの解放を指示するガベージコレクションの発生に応じて、前記データを解放が指示された領域とは異なるメモリ領域へ移動すること又は前記メモリ使用量が閾値以上であることの少なくともいずれか一つを契機として前記メモリ使用量を算出する
    ことを特徴とする計算機。
  10.  請求項8に記載の計算機であって、
     前記解析部は、さらに前記メモリ使用量を用いて前記メモリ使用量に関する統計処理あるいは最適化処理を行い、
     前記出力部は、前記統計処理あるいは最適化処理を行った結果を出力する
    ことを実行することを特徴とする計算機。
  11.  プログラムを実行してデータを生成する計算機に、
     前記データに関する複数の生成元属性情報と、前記データが有する識別情報とを対応付けて保持させるステップと、
     前記生成元属性情報毎に、対応するデータを特定させ、特定させてデータのメモリ使用量を算出させるステップと、
     算出した前記メモリ使用量を表示させるステップと
    を実行させるプログラムを格納するコンピュータ読取可能な非一時的な記録媒体。
PCT/JP2013/061567 2013-04-19 2013-04-19 メモリ管理方法、計算機及び記録媒体 WO2014171002A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2013/061567 WO2014171002A1 (ja) 2013-04-19 2013-04-19 メモリ管理方法、計算機及び記録媒体
US14/424,052 US20150242312A1 (en) 2013-04-19 2013-04-19 Method of managing memory, computer, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/061567 WO2014171002A1 (ja) 2013-04-19 2013-04-19 メモリ管理方法、計算機及び記録媒体

Publications (1)

Publication Number Publication Date
WO2014171002A1 true WO2014171002A1 (ja) 2014-10-23

Family

ID=51730971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/061567 WO2014171002A1 (ja) 2013-04-19 2013-04-19 メモリ管理方法、計算機及び記録媒体

Country Status (2)

Country Link
US (1) US20150242312A1 (ja)
WO (1) WO2014171002A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5867633B1 (ja) * 2015-01-21 2016-02-24 日本電気株式会社 情報処理装置、制御方法及びプログラム
US11061572B2 (en) 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800629B2 (en) * 2014-09-29 2017-10-24 Ricoh Company, Ltd. Apparatus, system, and method of controlling transmission of data
US9727406B2 (en) * 2015-10-09 2017-08-08 New Relic, Inc. Mitigating crashes of an application server executing a monitoring agent

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005612A (ja) * 2002-04-26 2004-01-08 Ricoh Co Ltd リソース情報を取得する装置及び方法
JP2010204955A (ja) * 2009-03-03 2010-09-16 Internatl Business Mach Corp <Ibm> プログラム中のオブジェクトの割り付け場所を追跡する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
JP2011085985A (ja) * 2009-10-13 2011-04-28 Hitachi Ltd メモリ管理方法、メモリ管理プログラム、及び、情報処理装置
JP2011133919A (ja) * 2009-12-22 2011-07-07 Internatl Business Mach Corp <Ibm> オブジェクト生成地点記録方法およびプログラム
JP2011242890A (ja) * 2010-05-14 2011-12-01 Hitachi Ltd リクエスト処理方法、リクエスト処理プログラム、および、リクエスト処理装置
WO2012172641A1 (ja) * 2011-06-14 2012-12-20 株式会社日立製作所 計算機、リソース使用量計算方法及びリソース使用量計算プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
JP3526688B2 (ja) * 1996-03-29 2004-05-17 富士通株式会社 コネクションレスな通信における従量制課金システムおよび方法
US6763376B1 (en) * 1997-09-26 2004-07-13 Mci Communications Corporation Integrated customer interface system for communications network management
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US20020103811A1 (en) * 2001-01-26 2002-08-01 Fankhauser Karl Erich Method and apparatus for locating and exchanging clinical information
JP2003208501A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd ビジネスプロセス定義表示方法およびプログラム
US20030218765A1 (en) * 2002-04-26 2003-11-27 Tsutomu Ohishi Apparatus for controlling launch of application and method
US7747659B2 (en) * 2004-01-05 2010-06-29 International Business Machines Corporation Garbage collector with eager read barrier
US7636918B2 (en) * 2004-04-14 2009-12-22 International Business Machines Corporation Method and system for tracking memory usage by software agents
US20060036579A1 (en) * 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for associating resources using a time based algorithm
US20060059118A1 (en) * 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US7739312B2 (en) * 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US8533256B2 (en) * 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
JP5153539B2 (ja) * 2008-09-22 2013-02-27 株式会社日立製作所 メモリ管理方法およびその方法を用いるコンピュータ
US20100274947A1 (en) * 2009-04-27 2010-10-28 Hitachi, Ltd. Memory management method, memory management program, and memory management device
JP5391422B2 (ja) * 2009-09-01 2014-01-15 株式会社日立製作所 メモリ管理方法、計算機システム及びプログラム
US8707091B2 (en) * 2010-03-15 2014-04-22 Cleversafe, Inc. Failsafe directory file system in a dispersed storage network
US8484568B2 (en) * 2010-08-25 2013-07-09 Verizon Patent And Licensing Inc. Data usage monitoring per application
JP5713629B2 (ja) * 2010-11-05 2015-05-07 キヤノン株式会社 画像形成装置及び履歴管理方法
JP5618796B2 (ja) * 2010-12-02 2014-11-05 株式会社日立製作所 計算機、計算機の制御方法及びプログラム
US8694752B2 (en) * 2011-02-01 2014-04-08 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US9027006B2 (en) * 2012-08-09 2015-05-05 Apple Inc. Value profiling for code optimization
JP6180866B2 (ja) * 2013-09-24 2017-08-16 株式会社東芝 スケジューリング装置、システム、装置、方法およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005612A (ja) * 2002-04-26 2004-01-08 Ricoh Co Ltd リソース情報を取得する装置及び方法
JP2010204955A (ja) * 2009-03-03 2010-09-16 Internatl Business Mach Corp <Ibm> プログラム中のオブジェクトの割り付け場所を追跡する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
JP2011085985A (ja) * 2009-10-13 2011-04-28 Hitachi Ltd メモリ管理方法、メモリ管理プログラム、及び、情報処理装置
JP2011133919A (ja) * 2009-12-22 2011-07-07 Internatl Business Mach Corp <Ibm> オブジェクト生成地点記録方法およびプログラム
JP2011242890A (ja) * 2010-05-14 2011-12-01 Hitachi Ltd リクエスト処理方法、リクエスト処理プログラム、および、リクエスト処理装置
WO2012172641A1 (ja) * 2011-06-14 2012-12-20 株式会社日立製作所 計算機、リソース使用量計算方法及びリソース使用量計算プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5867633B1 (ja) * 2015-01-21 2016-02-24 日本電気株式会社 情報処理装置、制御方法及びプログラム
JP2016134057A (ja) * 2015-01-21 2016-07-25 日本電気株式会社 情報処理装置、制御方法及びプログラム
US11061572B2 (en) 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system

Also Published As

Publication number Publication date
US20150242312A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
Yang et al. Implementation of a big data accessing and processing platform for medical records in cloud
Condie et al. Online aggregation and continuous query support in mapreduce
CA2898054C (en) Efficient query processing using histograms in a columnar database
Li et al. SparkBench: a spark benchmarking suite characterizing large-scale in-memory data analytics
US9390006B2 (en) Garbage collection of an object
CN104981770A (zh) 资源的注释
WO2014171002A1 (ja) メモリ管理方法、計算機及び記録媒体
US9189529B2 (en) Queue monitoring and visualization
US11016937B2 (en) Updateable distributed file framework
Tengku Asmawi et al. Cloud failure prediction based on traditional machine learning and deep learning
CN104603779A (zh) 文本挖掘设备、文本挖掘方法和计算机可读记录介质
Mohamed et al. Distributed media indexing based on MPI and MapReduce
Huang et al. Performance evaluation of enabling logistic regression for big data with R
Totaro et al. ISODAC: A high performance solution for indexing and searching heterogeneous data
Savaris et al. Evaluating a row-store data model for full-content DICOM management
CN109684094B (zh) 云平台环境下海量文献并行挖掘的负载分配方法及系统
EP4113313A1 (en) Control method, information processing device, and control program
JP2016170453A (ja) データ格納制御装置、データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム
JP6680897B2 (ja) 計算機システム及び分析ソースデータ管理方法
Mershad et al. AUDIT: approving and tracking updates with dependencies in collaborative databases
US20140089611A1 (en) Memory management control system, memory management control method, and storage medium storing memory management control program
Mishra et al. Ldm: lineage-aware data management in multi-tier storage systems
US10402452B1 (en) Distributed hash table based logging service
Pearce Highly asynchronous visitor queue graph toolkit
Eassa et al. An Architecture for Metadata Extractor of Big Data in Cloud Systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13882218

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14424052

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13882218

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP