WO2017022233A1 - 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 - Google Patents

情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 Download PDF

Info

Publication number
WO2017022233A1
WO2017022233A1 PCT/JP2016/003540 JP2016003540W WO2017022233A1 WO 2017022233 A1 WO2017022233 A1 WO 2017022233A1 JP 2016003540 W JP2016003540 W JP 2016003540W WO 2017022233 A1 WO2017022233 A1 WO 2017022233A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
response time
configuration change
processing
unit
Prior art date
Application number
PCT/JP2016/003540
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 JP2017532378A priority Critical patent/JPWO2017022233A1/ja
Publication of WO2017022233A1 publication Critical patent/WO2017022233A1/ja

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to an information processing apparatus, a request processing delay control method, and a program.
  • the present invention relates to an information processing apparatus that receives and processes a request from another apparatus, a request processing delay control method, and a program.
  • FIG. 1 of Patent Document 1 discloses an example of a system (request processing delay control system) that distributes the load of a communication server.
  • the system shown in FIG. 1 of Patent Document 1 includes a communication server (reference numeral 19), a LAN (Local Area Network; reference numeral 9), and a communication line (host connection line; reference numeral 10).
  • the communication server includes a communication server computer main body (reference numeral 1), a server information database (reference numeral 16), a definition file (reference numeral 17), a LAN control apparatus (reference numeral 7), and a line control apparatus (reference numeral 8).
  • the communication server computer main body is composed of a management utility (reference numeral 14), a time measurement / load monitoring program (reference numeral 13), a client control program (reference numeral 4), a server control program (reference numeral 12), and an OS (Operating System; reference numeral 2).
  • the OS is composed of a LAN control program (reference 5) and a line control program (reference 6).
  • the client control program, the communication control program, the LAN control program, and the line control program each include time information collection means (reference numeral 15).
  • the system having the above configuration generally operates as follows.
  • the communication processing speed is measured using the time information collecting means provided in each program.
  • the communication processing speed is measured as follows.
  • each program records the passing time by the time information collecting means.
  • the difference in passage time is set as the communication processing speed. For example, when a request passes from the client control program to the LAN control program, the time when the client control program passes the request to the LAN control program is recorded, and then the LAN control program indicates the time when the request is transmitted to the LAN control device. Record. Then, the time consumed by the LAN control program is obtained by calculating the difference between them.
  • the said communication processing speed is compared with the upper limit of the preset load.
  • an alternative server that replaces the function of the communication server is selected and operated from other servers on the LAN according to a predetermined order. In this way, when processing requests from a large number of clients occur at the same time and an overload is likely to occur in the communication server, this is prevented in advance, improving the throughput and processing capacity of the entire system and improving the scale of the system. It can flexibly handle expansion / reduction.
  • Patent Document 2 discloses a load balancer that uses the response time of a server. Patent Document 2 describes that a response time monitored from captured data related to a packet from a server is compared with a set response time to detect a delay in the response time (paragraph [0024]). ).
  • Patent Document 2 discloses a technique related to a load balancer (load balancer), which is different from the technique of Patent Document 1 in which the load of the apparatus (for example, a communication server) is observed and the load is distributed. Is. That is, Patent Document 2 observes the load of another device (communication server) viewed from the load distribution device, but Patent Document 1 observes the load of the communication server itself. Therefore, the technique disclosed in Patent Document 2 cannot be applied to the technique disclosed in Patent Document 1.
  • load balancer load balancer
  • an object of the present invention is to provide an information processing device, a request processing delay control method, and a program that can reduce the load on the device itself.
  • a transmission / reception unit that receives a request from a client and transmits a processing result for the request to the client, and a process from when the request is received to when the processing result is transmitted.
  • a measurement unit that measures response time; a determination unit that determines whether or not the response time exceeds a threshold; and a CPU (Central Processing Unit) for a process that is processing a request whose response time exceeds the threshold Processing Unit)
  • a delay insertion unit that instructs the CPU scheduler to stop resource allocation for a predetermined period, and a response of a process that is processing the request whose response time exceeds the threshold during the predetermined period
  • an information processing apparatus comprising an execution unit that executes a configuration change function that is a predetermined process for shortening time Is done.
  • a step of receiving a request from a client and transmitting a processing result for the request to the client, and a response from when the request is received to when the processing result is transmitted A step of measuring time, a step of determining whether or not the response time exceeds a threshold, and a CPU (Central Processing Unit) for a process that is processing a request whose response time exceeds the threshold Instructing the CPU scheduler to stop resource allocation for a predetermined period, and for reducing the response time of a process that is processing a request whose response time exceeds the threshold during the predetermined period Executing a configuration change function, which is a predetermined process, and a request processing delay system.
  • a method is provided.
  • a process for receiving a request from a client and transmitting a processing result for the request to the client, and a response until the processing result is transmitted after the request is received.
  • CPU Central Processing Unit
  • Processing for instructing the CPU scheduler to stop resource allocation for a predetermined period, and for shortening the response time of a process that is processing a request whose response time exceeds the threshold during the predetermined period
  • Causing a computer mounted on the information processing apparatus to execute a process for executing a configuration change function, which is a predetermined process. Program is provided.
  • This program can be recorded on a computer-readable storage medium.
  • the storage medium can be non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium, or the like.
  • the present invention can also be embodied as a computer program product.
  • an information processing apparatus a request processing delay control method, and a program that contribute to reducing the load on the own apparatus.
  • the information processing apparatus 200 includes a transmission / reception unit 201, a measurement unit 202, a determination unit 203, a delay insertion unit 204, and an execution unit 205.
  • the transmission / reception unit 201 receives a request from the client and transmits a processing result for the request to the client.
  • the measuring unit 202 measures the response time from when the request is received until the processing result is transmitted.
  • the determination unit 203 determines whether or not the response time exceeds a threshold value.
  • the delay insertion unit 204 instructs the CPU scheduler to stop allocation of CPU (Central Processing Unit) resources for a process that is processing a request whose response time exceeds a threshold.
  • the execution unit 205 executes a configuration change function, which is a predetermined process for shortening the response time of a process that is processing a request whose response time exceeds the threshold during a predetermined period.
  • the information processing apparatus 200 executes a configuration change function, which is a process for reducing the load, when, for example, many communication requests arrive at the apparatus and the load increases.
  • a configuration change function which is a process for reducing the load, when, for example, many communication requests arrive at the apparatus and the load increases.
  • the configuration change function itself requires CPU resources
  • the information processing apparatus 200 stops allocation of CPU resources to processes (applications) whose load is increasing in order to create room for execution of the configuration change function. .
  • the information processing apparatus 200 temporarily stops the request processing, thereby securing CPU resources necessary for the configuration change and reducing the load on the own apparatus (information processing apparatus 200).
  • FIG. 2 is a diagram illustrating an example of an internal configuration of the information processing apparatus 1 according to the first embodiment.
  • the information processing apparatus 1 includes a CPU 10, a storage device 20 including an HDD (Hard Disk Drive), a network interface 30, and an input / output interface 40.
  • Each unit included in the information processing apparatus 1 is connected by an internal bus and configured to be able to communicate with each other.
  • the CPU 10 controls the entire information processing apparatus 1 and realizes a system control unit 100 that provides basic functions used by applications.
  • the system control unit 100 corresponds to an operating system (OS), and an application is executed on the operating system.
  • OS operating system
  • the information processing apparatus 1 is assumed to be operated as a communication server that provides various network services, and the following description will be given. .
  • the network interface 30 is an interface for a network connected to the information processing apparatus 1 and corresponds to a network interface card (NIC) or the like.
  • the input / output interface 40 is an interface to an input / output device (for example, a keyboard or a display).
  • FIG. 3 is a diagram illustrating an example of an internal configuration of the system control unit 100.
  • the system control unit 100 includes a request transmission / reception unit 101, a request response time measurement unit 102, a threshold excess determination unit 103, a processing delay control unit 104, a CPU scheduler 105, and a configuration change function execution unit. 106 and a configuration change function group 107.
  • the processing delay control unit 104 includes a processing delay insertion unit 111 and a configuration change function selection unit 112.
  • the configuration change function group 107 includes N configuration change functions 107-1 to 107-N (where N is a positive integer and the maximum number of configuration change functions).
  • Each unit such as the processing delay control unit 104 is configured to be able to access the application information 121, the configuration change function list 122, and the protocol timeout table 123.
  • the application information 121, the configuration change function list 122, and the protocol timeout table 123 shown in FIG. 3 are information stored in the storage device 20, but are shown in FIG. 3 for easy understanding.
  • each module and processing means constituting the system control unit 100 operate as follows.
  • the request transmission / reception unit 101 is a means for transmitting / receiving a request. That is, the request transmission / reception unit 101 receives a packet related to a request from the client, and transmits a packet including a processing result for the request to the client. More specifically, the request transmission / reception unit 101 delivers the received request to the corresponding application. Or the request transmission / reception part 101 transmits the result processed by the application toward a client. Further, the request transmission / reception unit 101 delivers the received request to the request response time measurement unit 102 or instructs the request response time measurement unit 102 to measure the response time before transmitting the result processed by the application to the client. .
  • the request includes a request that a user who wants to use the service provided by the server process transmits using the network. More specifically, a WEB (web) request, a SIP (Session Initiation Protocol) request, or the like is applicable.
  • the WEB request indicates that, when a user wants to browse a web page provided by a server on the Internet, the user requests the WEB server to transmit information on the web page.
  • SIP is a protocol mainly used for voice call start processing. For example, when a user (sending user) wants to start a voice call with another user (receiving user), the transmitting user sends a SIP request to the SIP server. The sending user confirms the content of the received SIP request and notifies the receiving user that there is a call request to the sending user.
  • the request response time measuring unit 102 is a means for measuring a response time from when a request is received until a processing result is transmitted to the client. That is, the request response time measurement unit 102 transmits the processing result of the request to the user from the time when the server process (an application that implements the server function) receives the request as the request response time (send from the server). Measure the time to complete). For example, if it is a WEB request, the time from when the WEB server (the WEB server realized by the information processing apparatus 1) receives the WEB request until the web page information is completely transmitted to the user corresponds to the response time of the request. To do.
  • the time from when the SIP server receives a SIP request from the sending user to when the request is sent to the receiving user corresponds to the response time of the request.
  • the reception request and result transmission are not always executed in the same order.
  • the server sends out the results in order from the received request that has been processed. For example, even if requests arrive in the order of A, B, C, D, and E, the results may be sent in the order of C, B, A, E, and D depending on the contents of each process. Therefore, it is necessary to recognize which reception request is paired with which transmission result (which reception request corresponds to which transmission result).
  • Such recognition association between a request and a result
  • FIG. 4 is a diagram illustrating an example of an internal configuration of the request response time measurement unit 102.
  • the request response time measurement unit 102 includes a request recording unit 131 and a response time calculation unit 132.
  • the request recording unit 131 is configured to be accessible to the processing list 133 stored in the storage device 20.
  • the request recording unit 131 creates a unique identifier (hereinafter referred to as a request ID (Identifier)) for each received request and records it in the processing list 133 together with the arrival time of the request. It is. That is, the request recording unit 131 generates a request ID for identifying a request from the request received from the client, associates the request ID with the arrival time of the request received from the client, and registers the request ID in the processing list.
  • a request ID Identifier
  • FIG. 5 is a diagram for explaining a request ID creation method.
  • FIG. 5A shows SIP protocol header information.
  • the Call-ID and Cseq in the SIP header are uniquely set for each request.
  • the same Call-ID and Cseq are added to the response of the processing result in the SIP header information.
  • the request ID as shown in FIG. 5B is created by using the information related to the Call-ID and Cseq, so that a pair (correspondence) between the reception request and the transmission result can be identified. It becomes possible.
  • the Call ID is generated by concatenating Call-ID and Cseq.
  • the request recording unit 131 generates a request ID from the received request. Furthermore, since the request ID is held in the processing list 133 until the processing result of the request is transmitted to the requesting user, the request recording unit 131 calculates the response time of the request from the difference between the reception time and the transmission time. .
  • the processing list 133 is a list in which a list of incoming requests is described.
  • FIG. 6 is a diagram illustrating an example of the processing list 133. As shown in FIG. 6, the processing list 133 has a configuration (structure) consisting of a port number table 141 and a request table 142 (in FIG. 6, the request tables 142-1 and 142-2 are shown).
  • the port number table 141 is a list having a combination of the port number 143 and the request table number 144 as an entry.
  • a combination of a request ID 145 (indicated in FIG. 6 with request IDs 145-1 and 145-2) and an arrival time 146 (in FIG. 6 with arrival times 146-1 and 146-2) is entered.
  • the request being processed is stored for each port number 143. For example, for a request arriving at the port number “5060”, the request recording unit 131 first creates a request ID 145.
  • the method for creating the request ID 145 is as described above.
  • the request recording unit 131 searches the port number table 141 and searches for the request table number 144 that is paired with the same port number 143.
  • the request table 142 paired with the port number “5060” is the request table 1.
  • the request recording unit 131 stores the request ID 145 and the arrival time 146 already created in the request table 142 in pairs.
  • the processing details 133 (request ID, arrival time) are managed for each port number by the processing list 133.
  • the response time calculator 132 shown in FIG. 4 is a means for calculating the response time of a request. Specifically, the response time calculation unit 132 calculates the response time based on the arrival time registered in the processing list 133 and the time when the processing result is transmitted to the client.
  • the request transmission / reception unit 101 performs some processing on the arrived request (after being processed by the application), and then returns the result to the transmission source of the request.
  • the request transmission / reception unit 101 calls the response time calculation unit 132 (requests the request response time measurement unit 102) before transmitting the processing result of the request to calculate the response time of the request.
  • the response time calculation unit 132 When calculating the response time, the current time is recorded as the transmission time of the request processing result.
  • the response time calculation unit 132 generates a request ID of the request. Thereafter, the response time calculation unit 132 searches for a request ID 145 that is the same as the created request ID in the request being processed.
  • the response time calculation unit 132 acquires the arrival time 146 paired with the request ID 145, subtracts the arrival time 146 from the time previously recorded as the transmission time, and the subtraction result Is the response time.
  • the response time calculation unit 132 deletes the entry corresponding to the request ID 145 from the request table 142 after completing the calculation of the response time. Then, the response time calculation unit 132 outputs the response time calculation result to the threshold value excess determination unit 103.
  • the threshold value excess determination unit 103 requests the processing delay control unit 104 to stop processing of the application used for the request processing.
  • the threshold excess determination unit 103 passes the corresponding port number to the processing delay control unit 104 as input information. Note that the threshold used by the threshold excess determination unit 103 is acquired from the application information 121.
  • Application information 121 is a list (table information) that describes information related to applications that execute request processing.
  • FIG. 7 is a diagram illustrating an example of the application information 121. As illustrated in FIG. 7, the application information 121 includes a port number 151, an application name 152, a process ID 153, a use protocol 154, and a threshold value 155.
  • the port number 151 indicates a port number used by the application used for the request processing.
  • the process ID 153 indicates a process number constituting the application.
  • the process number is composed of one or more.
  • the used protocol 154 indicates a protocol used by the application to transmit / receive a request.
  • the threshold value 155 is information referred to by the threshold value excess determination unit 103 as described above.
  • the application of the entry is a web server called “Apache”, and the application has a port number “80”. To send and receive requests.
  • the application is composed of three processes “2210, 2011, and 2122,” and uses “HTTP (Hyper Text Transfer Protocol) / TCP (Transmission Control Protocol)” as a protocol.
  • HTTP / TCP indicates two types of protocols called HTTP protocol and TCP protocol.
  • the configuration change function list 122 is a list in which information on the configuration change function is described.
  • FIG. 8 is a diagram illustrating an example of the configuration change function list 122. As illustrated in FIG. 8, the configuration change function list 122 includes a configuration change function number 161, a configuration change function name 162, and a configuration change execution time 163.
  • the configuration change function number 161 is a numerical value uniquely assigned to each configuration change function.
  • the configuration change function name 162 indicates the name of the configuration change function.
  • the configuration change execution time 163 indicates the time required for the configuration change. For example, it takes 20 milliseconds to complete the execution of the process related to “CPU affinity” having the configuration change function number 1. As the configuration change execution time 163, a numerical value measured in advance may be used first, or may be replaced with execution time information obtained during the execution of the present embodiment.
  • the protocol timeout table 123 is a list in which default values (initial values) of timeout for each protocol are described.
  • FIG. 9 is a diagram illustrating an example of a protocol timeout table. As shown in FIG. 9, the protocol timeout table 123 includes a protocol name 171 and a timeout value 172 (default timeout value).
  • each protocol standard timeout value described in RFC (Request for Comments) or the like can be used. However, if there is no numerical value defined in the protocol or there is no normally used default timeout value, the default timeout value 172 of the protocol is “0”.
  • the processing delay control unit 104 shown in FIG. 3 mainly executes the following two processes. As a first process, the process delay control unit 104 stops physical CPU allocation (allocation of CPU resources) to an application used for request processing for a certain period of time. As a second process, the process delay control unit 104 selects a configuration change function that can be executed while the application is stopped, and instructs the configuration change function execution unit 106 to execute the selected configuration change function.
  • the processing delay control unit 104 is executed (operates) in accordance with a request from the threshold excess determination unit 103.
  • the CPU resource allocation stoppage and configuration change function selection by the processing delay control unit 104 are executed using various information in the application information 121, the configuration change function list 122, and the protocol timeout table 123.
  • the processing delay control unit 104 includes a processing delay insertion unit 111 and a configuration change function selection unit 112. Of the above two processes, the processing delay insertion unit 111 executes the first process, and the configuration change function The selection unit 112 executes the second process.
  • the processing delay insertion unit 111 included in the processing delay control unit 104 instructs the CPU scheduler 105 to stop allocation of CPU resources to a process that is processing a request whose response time exceeds the threshold for a predetermined period. Means. That is, the processing delay insertion unit 111 stops allocation of CPU resources to an application used for request processing (an application that processes a request from a client) for a certain period of time.
  • the processing delay insertion unit 111 acquires the process ID 153 constituting the application from the application information 121 based on the port number sent from the threshold excess determination unit 103. For example, when the port number 80 is transmitted from the threshold excess determination unit 103, the processing delay control unit 104 (processing delay insertion unit 111) acquires “2210, 2011, 2122” as the process ID from the application information 121 ( (See the entry on the first line in FIG. 7). Further, the processing delay insertion unit 111 acquires the use protocol 154 from the application information 121. In the above example, “HTTP / TCP” is acquired.
  • the processing delay insertion unit 111 acquires the timeout value 172 corresponding to the protocol acquired earlier from the protocol timeout table 123.
  • the processing delay insertion unit 111 selects the smaller timeout value 172. In the above example, the timeout value “189000” is selected.
  • the processing delay insertion unit 111 inputs the acquired timeout value 172 to the configuration change function selection unit 112.
  • the processing delay insertion unit 111 instructs the CPU scheduler 105 to stop scheduling of a process related to a request whose threshold has been exceeded for a period corresponding to the acquired timeout value 172.
  • the process with the process ID “2210, 2011, 2122,” corresponds to the related process, and the CPU resource to the process is “189000 milliseconds”, which is the timeout value 172 of the used protocol “TCP”.
  • the CPU scheduler 105 is instructed to stop the allocation.
  • the configuration change function selection unit 112 causes the configuration change function execution unit 106 to execute the configuration change function from among the plurality of configuration change functions 107-1 to 107-N based on the timeout value 172 acquired from the processing delay insertion unit 111. Is a means for selecting. Specifically, the configuration change function selection unit 112 selects a configuration change function that can be executed within the timeout value 172 based on the acquired timeout value 172 and the information stored in the configuration change function list 122. To do. More specifically, the configuration change function selection unit 112 selects a configuration change function that can be executed within the timeout value 172 acquired from the processing delay insertion unit 111 from the configuration change function list 122. For example, in the example of FIG.
  • the configuration change function selection unit 112 selects the one with the longest configuration change execution time 163. That is, in the example of FIG. 8, “Migrate Task” whose configuration change function number 161 is “5” is selected. Thereafter, the configuration change function selection unit 112 instructs the configuration change function execution unit 106 to execute the selected configuration change function. As described above, the configuration change function selection unit 112 included in the processing delay control unit 104 selects and executes a configuration change function that can be executed while the application is stopped.
  • the processing delay control unit 104 uses the processing delay insertion unit 111 and the configuration change function selection unit 112 to process the process (application) for which the response time notified by the threshold excess determination unit 103 exceeds a predetermined threshold. Derive the timeout value for the protocol used. Next, the processing delay control unit 104 selects a configuration change function that can be changed within the timeout value, and a CPU resource for the process that has caused the response delay for a period corresponding to the timeout value of the protocol. Stop assigning
  • the CPU scheduler 105 shown in FIG. 3 is a means for executing each process on the CPU 10 by dividing time. When an application is executed, execution time is assigned to the process. Each process can proceed for a given execution time.
  • the CPU scheduler 105 manages the execution time of the currently executing thread, and the CPU scheduler 105 operates so as not to allocate the CPU time to the corresponding process only for the time sent from the processing delay insertion unit 111. For example, in the above example, the CPU time is not allocated for the process having the process ID 153 of “2210, 2011, 2122,” for “189000” milliseconds (protocol TCP timeout value 172).
  • the configuration change function execution unit 106 is a means for executing the configuration change function selected by the configuration change function selection unit 112. From the configuration change function selection unit 112, the configuration change function number 161 or the configuration change function name 162 is sent. The configuration change function execution unit 106 selects and executes a corresponding configuration change function from the configuration change function group 107 using the information.
  • the configuration change function group 107 is a set of a plurality of configuration change functions (function blocks).
  • the configuration change function is a predetermined process for shortening the response time of the process using the application to be controlled and the CPU resource as described above.
  • the configuration change function group 107 includes the configuration change function 107-1 to the configuration change function 107-N.
  • N is the maximum number of configuration change functions and matches the number of entries in the configuration change function list 122. It is assumed that the configuration change function is an executable program.
  • Each of the modules (processing means) described above starts operation when the response time of request processing exceeds the threshold value 155, and delays execution of an application that processes a request that exceeds the threshold value 155.
  • the insertion unit 111 is used to pause. Then, by selecting / executing a configuration change function that can be executed within the pause time, the configuration change is executed without causing a request timeout.
  • the time-out value of each process is used as the time for the processing delay insertion unit 111 to stop allocating CPU resources to the process, but actually, the time-out value is slightly shorter than the time-out value. It is desirable to instruct the CPU scheduler 105 to stop the allocation of CPU resources to each process for a certain period of time to avoid a timeout due to the application to be controlled.
  • FIG. 10 is a flowchart showing an example of the overall operation of the system according to the first embodiment.
  • step S01 the response time of the request is measured.
  • the request response time measurement unit 102 is used for the measurement (the request response time measurement unit 102 operates).
  • step S02 it is determined whether or not the response time of the request has exceeded the threshold value 155. For this determination, the threshold excess determination unit 103 is used.
  • step S03 If the request response time exceeds the threshold 155 (step S03, Yes branch), the processing delay control unit 104 acquires the timeout value of the request from the application information 121 and the protocol timeout table 123 (step S04). If the request response time does not exceed the threshold value 155 (step S03, No branch), the processing after step S01 is continued (return to request response time measurement).
  • a configuration change function that can be executed within the timeout time is selected from the configuration change function list 122 (step S05), and the allocation of CPU resources to the process causing the response time delay is acquired in step S04.
  • the configuration change function selected in step S05 is executed by the configuration change function execution unit 106 while being suspended for the timeout value period (step S06).
  • FIG. 11 is a flowchart showing an example of the operation of the request recording unit 131 which is a component of the request response time measuring unit 102.
  • the request received by the request transmission / reception unit 101 is passed to the request response time measurement unit 102 before the operation of the request recording unit 131.
  • step S101 the request recording unit 131 acquires the port number of the received request. Specifically, since the port number is described in the received request, the request recording unit 131 extracts the described port number.
  • step S102 the request recording unit 131 generates a request ID 145 related to the received request.
  • the generation of the request ID 145 is as described above.
  • step S 103 the request recording unit 131 acquires the corresponding request table number 144 from the port number 143 of the port number table 141 included in the processing list 133. That is, the request recording unit 131 acquires the request table number 144 by checking the port number table 141 in the processing list 133.
  • step S104 the request recording unit 131 registers the request ID 145 and the arrival time 146 of the request in the request table 142.
  • FIG. 12 is a flowchart illustrating an example of operations of the response time calculation unit 132 and the threshold excess determination unit 103.
  • the response time calculation unit 132 is executed (operates) when the application completes the request processing and returns the processing result to the client. That is, the response time calculation unit 132 starts execution by receiving a processing result transmitted from now on to the client.
  • step S201 the response time calculation unit 132 acquires the port number of the processing result (request) to be transmitted. Since the port number of the request to be transmitted is described in the request, the described port number is used.
  • step S202 the response time calculation unit 132 generates a request ID of the request to be transmitted.
  • the method for generating the request ID is as described above.
  • step S203 the response time calculation unit 132 searches the request table 142 for a port number that matches the previously acquired port number.
  • the response time calculation unit 132 searches the port number table 141 in the processing list 133 for an entry in which the acquired port number matches the port number 143, searches the request table number 144, and requests having the request table number 144 Table 142 is obtained.
  • step S204 the response time calculation unit 132 checks whether or not the request table 142 has the same request ID 145 as the created request ID 145.
  • the response time is calculated by subtracting the arrival time 146 from the current time (Step S206).
  • step S205 If the request ID 145 that is the same as the request ID 145 of the request to be sent does not exist in the request table 142 (step S205, No branch), the process ends.
  • step S207 the response time calculation unit 132 deletes the entry with the same request ID 145 from the request table 142.
  • step S ⁇ b> 208 the response time calculation unit 132 notifies the response time to the threshold excess determination unit 103.
  • the threshold value excess determining unit 103 starts executing the processing delay control unit 104 (step S210) when it is determined that the transmitted response time exceeds the threshold value 155 (step S209, Yes branch). Thereafter, the threshold excess determination unit 103 stops the threshold excess determination (step S211).
  • the threshold value excess determination unit 103 ends the process. Thereafter, the response time calculation unit 132 and the threshold value excess determination unit 103 continue to monitor whether or not the response time for other applications exceeds the threshold value 155.
  • FIG. 13 is a flowchart showing an example of the operation of the processing delay control unit 104.
  • step S301 the processing delay control unit 104 acquires a timeout value (timeout time) of the request from the port number 143 of the request that exceeds the threshold.
  • step S302 the processing delay control unit 104 selects a configuration change function that can be executed within the timeout value and has the longest configuration change execution time.
  • the method for obtaining the timeout value 172 and the method for selecting the configuration change function are as described above.
  • step S303 If there is a configuration change function that meets the above conditions (step S303, Yes branch), the processing delay control unit 104 acquires the process ID 153 from the application information 121 (step S304), and sets the timeout value acquired in step S301. CPU resource allocation to the process is stopped for a corresponding period (step S305). If there are a plurality of process IDs 153 included in the application information 121, step S304 and step S305 are repeated by the number of process IDs 153.
  • the processing delay control unit 104 waits for a predetermined time (step S306). Note that the standby time at that time is calculated by the configuration change function execution unit 106 from the request response time measurement unit 102 on the basis of twice the response time of the application in normal times.
  • the system control unit 100 has a configuration in which execution of an application that processes a request that exceeds the threshold value 155 is temporarily stopped using the processing delay insertion unit 111. Therefore, it is possible to secure resources necessary for executing the configuration change even when the server is heavily loaded.
  • the system disclosed in Patent Document 1 has a problem that a request may be dropped (request is discarded) while a server is added. This is because a request timeout occurs depending on the protocol used by the request. A certain amount of time is required for the above configuration change.
  • a numerical value called “timeout” is defined in the communication protocol used for the request. As described above, the timeout refers to a waiting time for determining an operation when there is no response to a communication request. For example, assume that the timeout when a communication request is transmitted from the client to the server is 10 seconds. In this case, if the client does not receive a response from the server for a timeout of 10 seconds or longer, the client executes some action.
  • the action there are two types of the action, one is retransmission, and the other is a request error termination. That is, it takes time to change the configuration, and if the timeout of the request is exceeded, the request is retransmitted or the request ends in error. If the request ends in error due to a timeout, the request will not be accepted normally.
  • the configuration change is not executed in consideration of the time required for the request timeout, and the request change is required because the configuration change requires more time than expected. It is assumed that error termination due to timeout will increase.
  • the system control unit 100 of the information processing apparatus 1 according to the first embodiment is configured to select a configuration change function that can be executed before a timeout of a protocol used by a request occurs. Configuration changes can be performed without causing a request timeout. That is, the information processing apparatus 1 according to the first embodiment can provide a request processing delay control system that can execute the configuration change function without dropping a request (without causing an error).
  • FIG. 14 is a diagram illustrating an example of an internal configuration of the system control unit 100a according to the second embodiment.
  • the difference between the system control unit 100 according to the first embodiment and the system control unit 100a according to the second embodiment is that the protocol timeout table 123 does not exist (the information is not referred to).
  • the application information 121 has a different structure and has a protocol analysis unit 108.
  • the application information 121 has a structure including a field related to a timeout value 156 instead of the field of the use protocol 154.
  • the reason for adopting such a structure is to record the timeout value 156 used in the current request instead of using the specified timeout value (default timeout value 172) of the usage protocol 154.
  • the protocol changes the timeout according to the environment in which the protocol is used. Usually, in an unstable network, a communication delay may become large, so the timeout value 156 may be increased. Further, since a communication delay hardly occurs in a stable network, the real-time property of communication can be improved by reducing the timeout value 156.
  • the time-out value 156 of the changed protocol is described as setting information (setting information inside the OS) in the system control unit 100a and when it is described in a sent request (packet related to the request) Therefore, the confirmation location of the timeout value 156 changes depending on the protocol.
  • the protocol analysis unit 108 is a means for acquiring a protocol timeout value 156.
  • protocol timeout value 156 there are two types: a case where it is described as setting information in the system control unit 100a and a case where it is described in a predetermined area of a packet relating to a request sent.
  • a timeout value 156 is described as setting information in the system control unit 100a. Therefore, the protocol analysis unit 108 checks what is being used as the protocol in the transmitted request. As a result, if the protocol used is TCP, the protocol analysis unit 108 confirms the setting information in the system control unit 100a, and acquires the timeout value 156 of the protocol.
  • the setting information acquisition method in the system control unit 100a differs depending on the operating system, and a setting information acquisition method suitable for each operating system is used.
  • the timeout value 156 is described in the transmitted request. Therefore, when the protocol used in the request is SIP, the protocol analysis unit 108 transmits The timeout value 156 is acquired from the received request. The acquired timeout value 156 is stored in the application information 121.
  • FIG. 16 is a flowchart showing an example of the operation of the protocol analysis unit 108.
  • the protocol analysis unit 108 analyzes the timeout value 156 of the protocol used for the request (step S402). The specific analysis indicates, for example, that the protocol used for the request is confirmed and the current timeout value 156 is obtained from a different place for each protocol. Finally, the protocol analysis unit 108 stores a timeout value 156 for each port number in the application information 121 (step S403).
  • a timeout value 156 of a currently used protocol is acquired by the protocol analysis unit 108 without using a timeout value that is standardly defined for each protocol.
  • the configuration change function to be used can be changed according to the change of the protocol timeout value.
  • FIG. 17 is a diagram illustrating an example of an internal configuration of the system control unit 100b according to the third embodiment.
  • the difference between the system control unit 100 according to the first embodiment and the system control unit 100b according to the third embodiment is that a feedback control unit 109 is added and a request response time measurement unit. 102 and operation of the processing delay control unit 104 are changed.
  • the feedback control unit 109 is means for controlling repetitive execution of the configuration change function while the response time of the request exceeds the threshold value 155.
  • the configuration change function having the longest execution time is selected within the range of the timeout value 172 defined by the protocol used by the request.
  • the configuration change function is executed in order from the shortest execution time to the configuration change function, while the response time is the threshold value. Check if 155 is exceeded as appropriate. If the response time of the request does not exceed the threshold value 155 due to the execution of the configuration change function, the execution (process) according to the third embodiment is terminated.
  • the CPU time allocation to the application is repeatedly stopped and restarted. That is, the operation of stopping the CPU assignment to the application, selecting and executing the configuration change function, and restarting the CPU assignment to the application is repeated.
  • FIG. 18 is a flowchart showing an example of the operation of the request response time measurement unit 102 according to the third embodiment.
  • the same process name (step) is assigned to the same process as described in FIG. 12, and the description thereof is omitted.
  • the process of the request response time measurement unit 102 according to the third embodiment does not include a step of stopping the threshold excess determination (a step corresponding to step S211 in FIG. 12). Note that if the execution of the processing delay control unit 104 has already started, step S210 is ignored.
  • FIG. 19 is a flowchart illustrating an example of operations of the processing delay insertion unit 111, the feedback control unit 109, and the threshold excess determination unit 103 of the processing delay control unit 104.
  • the processing delay control unit 104 and the feedback control unit 109 start execution when the response time of a certain request processing exceeds the threshold value 155.
  • step S501 the processing delay insertion unit 111 acquires from the application information 121 a timeout value corresponding to the process ID 153 of the application responsible for the request processing.
  • the processing delay insertion unit 111 passes a timeout value to the feedback control unit 109, and the feedback control unit 109 determines (confirms) whether or not the current time has reached the timeout time (step S502). Specifically, the feedback control unit 109 calculates the timeout time by adding the timeout value to the time when the timeout value is acquired, and compares the calculated timeout time with the current time, thereby determining the determination. Process.
  • step S503 If it is time-out time (step S503, Yes branch), the process ends. If the time-out time has not been reached (step S503, No branch), the processing delay control unit 104 stops CPU allocation of the process (process group) (step S504).
  • the timeout time confirmation processing according to steps S502 and S503 is based on the presence of an application that has already timed out (for example, a machine control application with a short timeout) at the start of execution of the flowchart shown in FIG. For this reason, the above-described timeout time confirmation process is not required when the control target is limited to an application that allows a somewhat long timeout time.
  • the feedback control unit 109 requests the configuration change function selection unit 112 of the processing delay control unit 104 to select and execute the configuration change function (step S505).
  • the feedback control unit 109 waits for the time set in the feedback control unit 109 (step S506). It is assumed that the waiting time at that time is set in advance by the user.
  • the configuration change function selection unit 112 notifies the feedback control unit 109 that the execution of the configuration change function has ended after the execution time of the selected configuration change function has elapsed, and the feedback control unit 109 performs processing according to the notification.
  • the delay insertion unit 111 is requested to resume the CPU assignment of the process to which the CPU has been assigned (step S507).
  • the feedback control unit 109 checks whether or not the response time of the request exceeds the threshold value 155 (Step S508).
  • the step of stopping the threshold value excess determination unit 103 (step corresponding to step S211) is performed. not exist. Therefore, as long as the request has arrived, the threshold value excess determination is executed.
  • the threshold value 155 is exceeded, information indicating that the threshold value is exceeded exists in the threshold value excess determining unit 103.
  • the feedback control unit 109 checks the threshold excess information existing in the threshold excess determination unit 103 when executing step S508. If the threshold value 155 is not exceeded (step S509, No branch), the process ends. When the threshold value 155 is exceeded (step S509, Yes branch), the processing after step S501 is repeated.
  • FIG. 20 is a flowchart illustrating an example of operations of the configuration change function selection unit 112 and the configuration change function execution unit 106.
  • the configuration change function selection unit 112 acquires the timeout value of the request from the port number 143 of the request that exceeds the threshold (step S601).
  • the configuration change function selection unit 112 selects a configuration change function that can be executed within the timeout value and has the shortest configuration change execution time (step S602).
  • step S603 if a configuration change function exists (step S603, Yes branch), the configuration change function selected by the configuration change function execution unit 106 is executed (step S604).
  • step S603, No branch If the configuration change function does not exist (step S603, No branch), the process ends.
  • the processing is executed in order from the smallest execution time, and if the response time of the request falls below the threshold value 155, the point in time Ends the operation. As a result, the response time can be improved with the minimum configuration change execution time.
  • the configuration change function selection unit 112 does not select the configuration change function that has been selected once while the series of operations shown in FIG. 20 is being executed. That is, in the selection of the configuration change function according to step S602, the configuration change function selected once in the series of processing even if the configuration change function can be executed within the timeout value and has the shortest configuration change execution time. Is not selected.
  • the processing is executed in order from the smallest execution time, and when the response time falls below the threshold value 155 as a result of the configuration change execution.
  • the request processing is resumed without waiting for the timeout value.
  • Linux (Linux; registered trademark, hereinafter the same) can be used as the system control unit 100.
  • the netif_rx function 101a and the netif_tx function 101b which are Linux kernel functions, can be used.
  • the CPU scheduler 105 the schedule function 105a of the Linux kernel can be used.
  • a bash shell script 106 a can be used as the configuration change function execution unit 106.
  • the configuration change function group 107 the Linux command group 107a is configured from various Linux commands (taskset, nice, virtual migrate, etc.) related to the configuration change.
  • the configuration and operation of the system described in the first to third embodiments are examples, and various modifications can be made.
  • the process used for reducing the load has been described using the control of the CPU (configuration change function; various processes illustrated in FIG. 8), but the response time exceeding the threshold value.
  • the configuration change function not only the CPU but also memory control, disk control, network control and the like can be included in the configuration change function.
  • control related to the network is selected as the configuration change function.
  • the response time of the application to be controlled can be improved by restricting network use.
  • the processing performed by the system control unit 100 of the information processing apparatus 1 can be realized by a computer program that causes a computer mounted on the information processing apparatus 1 to execute each of the above-described processes using its hardware. That is, it is sufficient if there is a means for executing the function performed by the system control unit 100 with some hardware and / or software.
  • a request processing delay control system can be constructed in a computer by installing the above-described computer program in the storage unit of the computer. Furthermore, the request processing delay control method can be executed by a computer by causing the computer program to execute the above-described computer program.
  • the program can be downloaded via a network or updated using a storage medium storing the program.
  • the present invention is suitable for stabilizing the quality of telephone services in the field of NFV (Network Functions Virtualization) that provides telephone services with virtual machines. It is applicable to. It is also suitable for applications such as improving responsiveness related to WEB services.
  • NFV Network Functions Virtualization
  • Appendix 4 The information processing apparatus according to appendix 2 or 3, wherein the selection unit selects the configuration change function whose execution ends within the timeout value from the plurality of configuration change functions.
  • Appendix 5 The selection unit according to any one of appendices 2 to 4, wherein, among the plurality of configuration change functions, execution is completed within the timeout value and the configuration change function having the maximum execution time is selected. Information processing device.
  • appendix 7 Any one of appendices 1 to 6, further comprising a protocol analysis unit that obtains a timeout value of a protocol for processing the request by referring to a predetermined area of an operating system or referring to a predetermined area of a packet related to the request An information processing apparatus according to claim 1.
  • the measuring unit is A request recording unit that generates a request ID for identifying the request from the request received from the client, associates the request ID with the arrival time of the request received from the client, and registers the request ID in the processing list;
  • a response time calculation unit that calculates the response time based on the arrival time registered in the processing list and the time at which the processing result is transmitted to the client;
  • the information processing apparatus according to any one of appendices 1 to 7, including: [Appendix 9] This is the same as the request processing delay control method according to the second aspect described above. [Appendix 10] It is as the program which concerns on the above-mentioned 3rd viewpoint.
  • Information processing apparatus 10 CPU 20 storage device 30 network interface 40 input / output interface 100, 100a, 100b system control unit 101 request transmission / reception unit 101a netif_rx 102 Request response time measurement unit 102b netif_tx 103 threshold excess determination unit 104 processing delay control unit 105 CPU scheduler 105a schedule function 106 configuration change function execution unit 106a bush shell script 107 configuration change function group 107a Linux command groups 107-1 to 107-N configuration change function 108 protocol analysis unit 109 Feedback control unit 111 Processing delay insertion unit 112 Configuration change function selection unit 121 Application information 122 Configuration change function list 123 Protocol timeout table 131 Request recording unit 132 Response time calculation unit 133 Processing list 141 Port number tables 142, 142-1, 142 -2 Request table 143, 151 Port number 144 Request table number 145, 145-1, 145-2 Request ID 146, 146-1, 146-2 Arrival time 152 Application name 153 Process ID 154 Protocol used 155 Threshold value 156, 172 Timeout value 161 Configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

自装置の負荷軽減を可能とする情報処理装置を提供する。 情報処理装置は、送受信部と、測定部と、判定部と、遅延挿入部と、実行部と、を備える。送受信部は、クライアントからのリクエストを受信し、リクエストに対する処理結果をクライアントに送信する。測定部は、リクエストが受信されてから処理結果が送信されるまでの応答時間を測定する。判定部は、応答時間が閾値を超過しているか否かを判定する。遅延挿入部は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する。実行部は、所定期間に、応答時間が閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する。

Description

情報処理装置、リクエスト処理遅延制御方法及び記憶媒体
 本発明は、情報処理装置、リクエスト処理遅延制御方法及びプログラムに関する。特に、他装置からリクエストを受け付けて処理する情報処理装置、リクエスト処理遅延制御方法及びプログラムに関する。
 特許文献1の図1において、通信サーバの負荷を分散するシステム(リクエスト処理遅延制御システム)の一例が開示されている。特許文献1の図1に示されるシステムは、通信サーバ(符号19)とLAN(Local Area Network;符号9)と、通信回線(ホスト接続回線;符号10)から構成されている。さらに、通信サーバは、通信サーバ計算機本体(符号1)、サーバ情報データベース(符号16)、定義ファイル(符号17)、LAN制御装置(符号7)、回線制御装置(符号8)から構成される。通信サーバ計算機本体は、管理ユーティリティー(符号14)、時間計測/負荷監視プログラム(符号13)、クライアント制御プログラム(符号4)、サーバ制御プログラム(符号12)、OS(Operating System;符号2)から構成されている。さらに、OSは、LAN制御プログラム(符号5)、回線制御プログラム(符号6)から構成されている。また、クライアント制御プログラム、通信制御プログラム、LAN制御プログラム、回線制御プログラムは、時間情報採取手段(符号15)をそれぞれ備える。
 上記構成を有するシステムは、概略以下のように動作する。上記システムでは、各プログラムに備えられた時間情報採取手段を用いて通信処理速度が計測される。その際、通信処理速度は、次のように計測される。各プログラムは、リクエストが各プログラムを通過する際、時間情報採取手段によって、通過時刻を記録する。そして、プログラムから他のプログラムへリクエストが通過する際に通過時刻の差分を通信処理速度とする。例えば、クライアント制御プログラムからLAN制御プログラムへリクエストが通過する際には、クライアント制御プログラムがリクエストをLAN制御プログラムへ渡す時刻を記録し、次にLAN制御プログラムはLAN制御装置へリクエストを送信する時刻を記録する。そして、それらの差分を計算することによって、LAN制御プログラムが消費した時間が得られる。そして、当該通信処理速度が予め設定した負荷の上限と比較される。上限値を超えると、LAN上の他のサーバの内から、予め定めた順序に従って、通信サーバの機能を代替する代替サーバを選択して稼動させる。このように、多数のクライアントからの処理の要求が同時に発生し通信サーバに過負荷が発生しそうになった際にそれを未然に防ぎ、システム全体のスループット、処理能力の向上を図ると共にシステム規模の拡大/縮小に柔軟に対応可能としている。
 特許文献2には、サーバの応答時間を利用した負荷分散装置が開示されている。特許文献2には、サーバからのパケットに関するキャプチャデータからモニタされる応答時間と、設定された応答時間と、を比較し、応答時間の遅延を検出することが記載されている(段落[0024])。
特開平9-106381号公報(図1) 特開2011-197796号公報 特開2006-195709号公報 特開2000-295353号公報 特開平05-028072号公報 国際公開第2011/111230号
 なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
 特許文献1の図1に開示されたシステムには、以下の問題点が存在する。
 特許文献1のシステムでは、サーバが高負荷状態になると、構成変更に要する処理(時間計測、閾値超過判断、代替サーバ選択、代替サーバの稼働等)に必要なリソースを確保することができないという問題がある。その理由は、構成変更に必要なCPU(Central Processing Unit)リソースをリクエスト処理(クライアントからのリクエストに対応する処理)に費やしているためである。具体的には、通信サーバが、時間情報を計測し、そこから通信処理速度を計算し、さらに閾値を超過しているかどうかを判定する。閾値を超えている場合に、代替サーバを選択し稼働させるという一連の構成変更処理を実行するには、それらの処理に必要なCPU時間(プロセスへのCPUリソースの割り当て)を確保する必要がある。しかしながら、サーバが高負荷な状態だと、上記構成変更に必要なCPUリソースをリクエスト処理プログラム自身が消費することになる。よって、通信サーバでは、構成変更に必要なCPUリソースを確保することができず、構成変更が終了しないという状態になる。
 なお、特許文献2は、負荷分散装置(ロードバランサ)に関する技術を開示するものであり、装置(例えば、通信サーバ)自身の負荷を観測し、その負荷を分散する特許文献1の技術とは異なるものである。つまり、特許文献2では負荷分散装置からみた他の装置(通信サーバ)の負荷を観測しているが、特許文献1では通信サーバ自身の負荷を観測している。従って、特許文献2の開示する技術を特許文献1に開示された技術に適用することはできない。
 以上の状況を鑑み、本発明は、自装置の負荷軽減を可能とする、情報処理装置、リクエスト処理遅延制御方法及びプログラムを提供することを目的とする。
 本発明の第1の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する送受信部と、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する測定部と、前記応答時間が閾値を超過しているか否かを判定する判定部と、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する、遅延挿入部と、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、実行部と、を備える、情報処理装置が提供される。
 本発明の第2の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信するステップと、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定するステップと、前記応答時間が閾値を超過しているか否かを判定するステップと、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示するステップと、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行するステップと、を含む、リクエスト処理遅延制御方法が提供される。
 本発明の第3の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する処理と、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する処理と、前記応答時間が閾値を超過しているか否かを判定する処理と、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する処理と、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する処理と、を情報処理装置に搭載されたコンピュータに実行させるプログラムが提供される。
 なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明の各視点によれば、自装置の負荷軽減を可能とすることに寄与する情報処理装置、リクエスト処理遅延制御方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係る情報処理装置の内部構成の一例示す図である。 第1の実施形態に係るシステム制御部の内部構成の一例を示す図である。 リクエスト応答時間測定部の内部構成の一例を示す図である。 リクエストIDの作成方法を説明するための図である。 処理中リストの一例を示す図である。 アプリケーション情報の一例を示す図である。 構成変更機能リストの一例を示す図である。 プロトコルタイムアウト表の一例を示す図である。 第1の実施形態に係るシステムの全体動作の一例を示すフローチャートである。 リクエスト記録部の動作の一例を示すフローチャートである。 応答時間計算部と閾値超過判定部の動作の一例を示すフローチャートである。 処理遅延制御部の動作の一例を示すフローチャートである。 第2の実施形態に係るシステム制御部の内部構成の一例を示す図である。 第2の実施形態に係るアプリケーション情報の一例を示す図である。 第2の実施形態に係るプロトコル分析部の動作の一例を示すフローチャートである。 第3の実施形態に係るシステム制御部の内部構成の一例を示す図である。 第3の実施形態に係るリクエスト応答時間測定部の動作の一例を示すフローチャートである。 処理遅延挿入部、フィードバック制御部及び閾値超過判定部の動作の一例を示すフローチャートである。 構成変更機能選択部と構成変更機能実行部の動作の一例を示すフローチャートである。 オペレーティングシステムにLINUXを適用した場合の一構成例を示す図である。
 初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
 一実施形態に係る情報処理装置200は、送受信部201と、測定部202と、判定部203と、遅延挿入部204と、実行部205と、を備える。送受信部201は、クライアントからのリクエストを受信し、リクエストに対する処理結果をクライアントに送信する。測定部202は、リクエストが受信されてから処理結果が送信されるまでの応答時間を測定する。判定部203は、応答時間が閾値を超過しているか否かを判定する。遅延挿入部204は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する。実行部205は、所定期間に、応答時間が閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する。
 情報処理装置200は、例えば、通信リクエストが当該装置に多数到着し、その負荷が増大した場合に、負荷を低減するための処理である構成変更機能を実行する。その際、構成変更機能自身がCPUリソースを必要とするため、情報処理装置200は、構成変更機能の実行余地を作り出すため、負荷が増大しているプロセス(アプリケーション)へのCPUリソース割り当てを停止する。このように、情報処理装置200は、リクエスト処理を一時的に停止することで、構成変更に必要なCPUリソースを確保し、自装置(情報処理装置200)の負荷を低減する。
 以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施の形態]
 第1の実施形態について、図面を用いてより詳細に説明する。
[構成の説明]
 図2は、第1の実施形態に係る情報処理装置1の内部構成の一例を示す図である。図2を参照すると、情報処理装置1には、CPU10と、HDD(Hard Disk Drive)等からなる記憶装置20と、ネットワークインターフェイス30と、入出力インターフェイス40と、が含まれている。なお、情報処理装置1の内部に含まれる各部は、内部バスにより接続されており、相互に通信可能に構成されている。
 CPU10は、情報処理装置1の全体を制御し、アプリケーションが利用する基本機能を提供するシステム制御部100を実現する。システム制御部100は、オペレーティングシステム(OS;Operating System)に相当し、当該オペレーティングシステム上にてアプリケーションが実行される。なお、情報処理装置1の用途を限定する趣旨ではないが、第1の実施形態では、情報処理装置1は各種ネットワークサービスを提供する通信サーバとして運用されることを想定し、以下の説明を行う。
 ネットワークインターフェイス30は、情報処理装置1と接続されたネットワークに対するインターフェイスであり、ネットワークインターフェイスカード(NIC;Network Interface Card)等に相当する。また、入出力インターフェイス40は、入出力装置(例えば、キーボードやディスプレイ等)に対するインターフェイスである。
 図3は、システム制御部100の内部構成の一例を示す図である。図3を参照すると、システム制御部100は、リクエスト送受信部101と、リクエスト応答時間測定部102と、閾値超過判定部103と、処理遅延制御部104と、CPUスケジューラ105と、構成変更機能実行部106と、構成変更機能群107と、を備える。さらに、処理遅延制御部104は、処理遅延挿入部111と構成変更機能選択部112から構成される。構成変更機能群107は、N個の構成変更機能107-1~107-N(但し、Nは正の整数且つ構成変更機能の最大数)から構成される。また、処理遅延制御部104等の各部は、アプリケーション情報121と、構成変更機能リスト122と、プロトコルタイムアウト表123と、にアクセス可能に構成されている。なお、図3に示すアプリケーション情報121、構成変更機能リスト122及びプロトコルタイムアウト表123の各種情報は、記憶装置20に格納された情報であるが、理解の容易のため図3に図示している。
 上記の各部(システム制御部100をなす各モジュール、処理手段)は、それぞれ概略次のように動作する。
 リクエスト送受信部101は、リクエストを送受信するための手段である。即ち、リクエスト送受信部101は、クライアントからのリクエストに係るパケットを受信し、当該リクエストに対する処理結果を含むパケットをクライアントに送信する。より具体的には、リクエスト送受信部101は、受信したリクエストを、対応するアプリケーションに引き渡す。または、リクエスト送受信部101は、アプリケーションにより処理された結果をクライアントに向けて送信する。さらに、リクエスト送受信部101は、受信したリクエストをリクエスト応答時間測定部102に引き渡す、又は、アプリケーションにより処理された結果をクライアントに送信する前にリクエスト応答時間測定部102に応答時間の測定を指示する。
 なお、リクエストには、サーバプロセスが提供するサービスを利用したいユーザがネットワークを利用して送信する要求が含まれる。より具体的には、WEB(ウェブ)リクエストやSIP(Session Initiation Protocol)リクエスト等が該当する。WEBリクエストは、通常、インターネット上のサーバが提供するウェブページを閲覧したい場合に、ユーザがウェブページの情報を送信するようにWEBサーバに対して要求することを示す。また、SIPは、主に音声通話の開始処理に用いられるプロトコルである。例えば、あるユーザ(送信側ユーザ)が他のユーザ(着信側ユーザ)と音声通話を開始したい場合、送信側ユーザは、SIPリクエストをSIPサーバに送信する。送信側ユーザは受け取ったSIPリクエストの内容を確認し、着信側ユーザへ送信側ユーザに通話要求があることを通知する。
 リクエスト応答時間測定部102は、リクエストが受信されてから処理結果がクライアントに送信されるまでの応答時間を測定する手段である。つまり、リクエスト応答時間測定部102は、リクエストの応答時間として、サーバプロセス(サーバ機能を実現するアプリケーション)がリクエストを受け取った時点から、当該リクエストの処理結果がユーザに送信される(サーバからの送出が完了することを指す)までの時間を測定している。
例えば、WEBリクエストであれば、WEBサーバ(情報処理装置1により実現されるWEBサーバ)がWEBリクエストを受け取った時点から、ウェブページ情報をユーザへ送出完了するまでの時間がリクエストの応答時間に該当する。また、SIPリクエストであれば、SIPサーバが送信側ユーザからのSIPリクエストを受け取ってから当該リクエストを着信側ユーザに送出するまでの時間がリクエストの応答時間に該当する。なお、受信リクエストと結果送出は同じ順序で実行されるとは限らない。つまり、サーバは、受信したリクエストのうち、処理が終了したものから順に結果を送出する。例えば、リクエストがA、B、C、D、Eの順で到着したとしても、それぞれの処理内容によって、C、B、A、E、Dの順で結果が送出される可能性がある。よって、どの受信リクエストがどの送出結果と対になっているか(どの受信リクエストがどの送出結果と対応するか)を認識する必要がある。このような認識(リクエストと結果の関連付け)には、それぞれのプロトコルに用いられる情報を使って識別子を作ることによって実現することができる。
 図4は、リクエスト応答時間測定部102の内部構成の一例を示す図である。図4を参照すると、リクエスト応答時間測定部102は、リクエスト記録部131と、応答時間計算部132と、から構成される。なお、リクエスト記録部131は、記憶装置20に格納された処理中リスト133にアクセス可能に構成されている。
 リクエスト記録部131は、到着したリクエストに関して、リクエストそれぞれに一意な識別子(以下、リクエストID(Identifier)と表記する)を作成して、当該リクエストの到着時刻と一緒に処理中リスト133に記録する手段である。即ち、リクエスト記録部131は、クライアントから受信したリクエストから、リクエストを識別するリクエストIDを生成し、リクエストIDとクライアントから受信したリクエストの到着時刻を関連付けて、処理中リストに登録する。
 図5は、リクエストIDの作成方法を説明するための図である。図5(a)は、SIPプロトコルのヘッダ情報を表している。SIPによるリクエストには、SIPヘッダ中のCall-IDとCseqがそれぞれのリクエストごとに一意に設定される。また、処理結果の返信にもSIPヘッダ情報の中に同じCall-IDとCseqが付与される。これらを利用し、Call-IDとCseqに係る情報を用いて、図5(b)に示すようなリクエストIDを作成することにより、受信リクエストと送出結果の対(対応関係)を識別することが可能となる。なお、図5(b)の例では、Call-IDとCseqを連結させ、リクエストIDが生成されている。
 リクエスト記録部131は、受信したリクエストからリクエストIDを生成する。さらに、当該リクエストの処理結果が要求元ユーザに送出されるまで当該リクエストIDは処理中リスト133により保持されるので、リクエスト記録部131は受信時刻と送出時刻の差からリクエストの応答時間を算出する。
 処理中リスト133は、到着したリクエストの一覧を記載したリストである。図6は、処理中リスト133の一例を示す図である。図6に示すとおり、処理中リスト133は、ポート番号表141とリクエスト表142(図6には、リクエスト表142-1、142-2を表記)と、からなる構成(構造)を有する。
 ポート番号表141は、ポート番号143とリクエスト表番号144の組み合わせをエントリとして持つリストである。
 リクエスト表142は、リクエストID145(図6には、リクエストID145-1、145-2を表記)と到着時刻146(図6には、到着時刻146-1、146-2を表記)の組み合わせをエントリとして持つリストである。処理中のリクエストは、ポート番号143毎に格納される。例えば、ポート番号「5060」に到着したリクエストに関し、最初に、リクエスト記録部131はリクエストID145を作成する。なお、リクエストID145の作成方法は上述の通りである。
 また、リクエスト記録部131は、ポート番号表141を検索し、同じポート番号143と組になるリクエスト表番号144を検索する。図6の例では、ポート番号「5060」と組になるリクエスト表142は、リクエスト表1となる。その後、リクエスト記録部131は、リクエスト表142の中に既に作成したリクエストID145と到着時刻146を組にして格納する。このように、処理中リスト133により、ポート番号ごとにリクエストの詳細(リクエストID、到着時刻)が管理される。
 図4に示す応答時間計算部132は、リクエストの応答時間を計算するための手段である。具体的には、応答時間計算部132は、処理中リスト133に登録された到着時刻と、処理結果をクライアントに送信する時刻と、に基づいて、応答時間を計算する。
 リクエスト送受信部101は、到着したリクエストに対して何らかの処理が実行された後(アプリケーションにより処理された後)、その結果をリクエストの送信元に返信する。リクエスト送受信部101は、リクエストの処理結果を送信する前に応答時間計算部132を呼び出して(リクエスト応答時間測定部102に依頼して)、リクエストの応答時間を計算させる。応答時間の計算に際し、現在時刻がリクエスト処理結果の送信時刻として記録される。次に、応答時間計算部132は、当該リクエストのリクエストIDを生成する。その後、応答時間計算部132は、処理中リクエストの中に上記作成したリクエストIDと同じリクエストID145があるかどうかを検索する。同じリクエストID145があれば、応答時間計算部132は、当該リクエストID145と組になっている到着時刻146を取得し、先に送信時刻として記録された時刻から到着時刻146を減算して、減算結果を応答時間とする。応答時間計算部132は、応答時間の計算終了後に、リクエスト表142から当該リクエストID145に対応するエントリを削除する。そして、応答時間計算部132は、応答時間の計算結果を閾値超過判定部103に出力する。
 図3に示す閾値超過判定部103は、リクエストの応答時間が予め設定されている閾値を超過しているか否かを判定する手段である。閾値を超過していたら、閾値超過判定部103は、処理遅延制御部104に当該リクエスト処理に利用されているアプリケーションの処理を停止するように要求する。アプリケーションの停止に際して、閾値超過判定部103は、該当のポート番号を入力情報として処理遅延制御部104に引き渡す。なお、閾値超過判定部103が利用する閾値は、アプリケーション情報121から取得する。
 アプリケーション情報121は、リクエスト処理を実行するアプリケーションに関する情報を記載したリスト(テーブル情報)である。図7は、アプリケーション情報121の一例を示す図である。図7に示すとおり、アプリケーション情報121は、ポート番号151と、アプリケーション名152と、プロセスID153と、使用プロトコル154と、閾値155と、から構成される。
 ポート番号151は、当該リクエスト処理に使用されているアプリケーションが利用するポート番号を示す。プロセスID153は、当該アプリケーションを構成するプロセス番号を示す。なお、プロセス番号は1つ以上から構成される。使用プロトコル154は、当該アプリケーションがリクエストの送受信に利用しているプロトコルを示す。なお、閾値155は、上述のように、閾値超過判定部103が参照する情報である。
 図7のリストに示すアプリケーション情報121の最上段のエントリを例に取り、アプリケーション情報121を説明すると、当該エントリのアプリケーションは「Apache」と呼ばれるウェブサーバであり、当該アプリケーションはポート番号「80」を使ってリクエストを送受信している。また、当該アプリケーションは、プロセス「2210、2011、2212」の3つのプロセスから構成され、プロトコルとして「HTTP(Hyper Text Transfer Protocol)/TCP(Transmission Control Protocol)」を使用している。なお、「HTTP/TCP」は、HTTPプロトコルとTCPプロトコルと呼ばれる2種類のプロトコルを示す。
 構成変更機能リスト122は、構成変更機能に関する情報を記載したリストである。図8は、構成変更機能リスト122の一例を示す図である。図8に示すとおり、構成変更機能リスト122は、構成変更機能番号161と、構成変更機能名162と、構成変更実行時間163と、から構成される。
 構成変更機能番号161は、各構成変更機能に一意に付与された数値である。構成変更機能名162は、構成変更機能の名称を指す。構成変更実行時間163は、当該構成変更に要する時間を示す。例えば、構成変更機能番号1の「CPU affinity」に係る処理の実行を完了するには20ミリ秒要することになる。構成変更実行時間163は、予め測定しておいた数値を最初に利用しても良いし、その後、本実施形態の実行中に得られた実行時間情報に置き換えても良い。
 プロトコルタイムアウト表123は、各プロトコルのタイムアウトのデフォルト値(初期値)を記載したリストである。図9は、プロトコルタイムアウト表の一例を示す図である。図9に示すとおり、プロトコルタイムアウト表123は、プロトコル名171と、タイムアウト値172(デフォルトのタイムアウト値)と、から構成されている。
 タイムアウト値172は、RFC(Request for Comments)等に記載の各プロトコル標準タイムアウト値を用いることができる。但し、プロトコルに規定されている数値が存在しない、又は、通常用いられているデフォルトタイムアウト値が存在しない場合には、当該プロトコルのデフォルトタイムアウト値172は「0」となる。
 図3に示す処理遅延制御部104は、主として以下の2つの処理を実行する。第1の処理として、処理遅延制御部104は、リクエスト処理に利用されているアプリケーションへの物理CPU割り当て(CPUリソースの割り当て)を一定時間停止する。第2の処理として、処理遅延制御部104は、上記アプリケーションを停止している間に実行できる構成変更機能を選択し、当該選択した構成変更機能の実行を構成変更機能実行部106に指示する。
 処理遅延制御部104は、閾値超過判定部103からの要求に従って実行される(動作する)。処理遅延制御部104によるCPUリソースの割り当て停止と構成変更機能の選択は、アプリケーション情報121、構成変更機能リスト122、プロトコルタイムアウト表123の各種情報を用いて実行される。
 処理遅延制御部104は、処理遅延挿入部111と、構成変更機能選択部112と、から構成され、上記2つの処理のうち、処理遅延挿入部111は第1の処理を実行し、構成変更機能選択部112は第2の処理を実行する。
 処理遅延制御部104に含まれる処理遅延挿入部111は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを所定期間停止するように、CPUスケジューラ105に指示する手段である。即ち、処理遅延挿入部111は、リクエスト処理に利用されているアプリケーション(クライアントからのリクエストを処理しているアプリケーション)へのCPUリソース割り当てを一定時間停止する。
 アプリケーションへのCPUリソース割り当ての一時停止には、アプリケーション情報121とプロトコルタイムアウト表123から得られる情報が用いられる。より具体的には、処理遅延挿入部111は、閾値超過判定部103から送られてきたポート番号に基づき、アプリケーション情報121から当該アプリケーションを構成するプロセスID153を取得する。例えば、閾値超過判定部103からポート番号80番が送信されると、処理遅延制御部104(処理遅延挿入部111)は、アプリケーション情報121からプロセスIDとして「2210、2011、2212」を取得する(図7の1行目のエントリ参照)。さらに、処理遅延挿入部111は、アプリケーション情報121から使用プロトコル154を取得する。上記の例では、「HTTP/TCP」が取得される。次に、処理遅延挿入部111は、プロトコルタイムアウト表123から先ほど取得したプロトコルに対応するタイムアウト値172を取得する。上記の例では、使用プロトコル154は「HTTP」と「TCP」から構成されているので、それぞれのタイムアウト値「189000」と「300000」がプロトコルタイムアウト表123から取得される。その際、処理遅延挿入部111は、タイムアウト値172が2つ以上存在する場合は、小さい方のタイムアウト値172を選択する。上記の例では、タイムアウト値「189000」が選択される。処理遅延挿入部111は、取得したタイムアウト値172を、構成変更機能選択部112に入力する。
 また、処理遅延挿入部111は、CPUスケジューラ105に対し、閾値が超過したリクエストに関連するプロセスのスケジューリングを、上記取得したタイムアウト値172に相当する期間、停止するように指示する。上記の例では、関連するプロセスとして、プロセスID「2210、2011、2212」のプロセスが該当し、使用プロトコル「TCP」のタイムアウト値172である「189000ミリ秒」の間、上記プロセスへのCPUリソース割り当て停止がCPUスケジューラ105に指示される。
 構成変更機能選択部112は、処理遅延挿入部111から取得したタイムアウト値172に基づき、複数の構成変更機能107-1~107-Nのなかから、構成変更機能実行部106に実行させる構成変更機能を選択する手段である。具体的には、構成変更機能選択部112は、取得したタイムアウト値172と、構成変更機能リスト122に格納された情報と、に基づいて、上記タイムアウト値172以内に実行可能な構成変更機能を選択する。より詳細には、構成変更機能選択部112は、処理遅延挿入部111から取得したタイムアウト値172以内に実行できる構成変更機能を構成変更機能リスト122から選択する。例えば、図8の例では、構成変更機能選択部112に入力されたタイムアウト値172が「189000」であるので、全ての構成変更がタイムアウト値172以内に実行可能であることが分かる。この場合、構成変更機能選択部112は、構成変更実行時間163が最も大きいものを選択する。つまり、図8の例では、構成変更機能番号161が「5」である「Migrate Task」が選択される。その後、構成変更機能選択部112は、選択した構成変更機能の実行を、構成変更機能実行部106に指示する。このように、処理遅延制御部104に含まれる構成変更機能選択部112は、当該アプリケーションを停止している間に実行できる構成変更機能を選択し実行する。
 処理遅延制御部104は、処理遅延挿入部111と構成変更機能選択部112を用いて、閾値超過判定部103により通知された応答時間が所定の閾値を超えているアプリケーション(プロセス)に関し、当該プロセスの使用するプロトコルのタイムアウト値を導き出す。次に、処理遅延制御部104は、上記タイムアウト値以内に、変更処理が可能な構成変更機能を選択し、上記プロトコルのタイムアウト値に相当する期間、上記応答遅延を起こしているプロセスへのCPUリソースの割り当てを停止する。
 図3に示すCPUスケジューラ105は、各プロセスをCPU10上で時間を区切って実行する手段である。アプリケーション実行の際には、実行時間がプロセスに対して割り与えられる。各プロセスは、与えられた実行時間の間だけ処理を進めることができる。CPUスケジューラ105は、現在実行中スレッドの実行時間を管理しており、CPUスケジューラ105は、処理遅延挿入部111から送られてきた時間だけ該当プロセスにCPU時間を割り当てないように動作する。例えば、上記の例では、プロセスID153が「2210、2011、2212」のプロセスに対して「189000」ミリ秒(プロトコルTCPのタイムアウト値172)の間はCPU時間が割り当てられない。
 構成変更機能実行部106は、構成変更機能選択部112によって選択された構成変更機能を実行するための手段である。構成変更機能選択部112からは、構成変更機能番号161、又は、構成変更機能名162が送られてくる。構成変更機能実行部106は、当該情報を使って構成変更機能群107から該当する構成変更機能を選択して実行する。
 構成変更機能群107は、複数の構成変更機能(機能ブロック)の集合である。なお、構成変更機能とは、上述のとおり、制御対象のアプリケーション、CPUリソースを用いるプロセスの応答時間を短くするための予め定めた処理である。構成変更機能群107には、構成変更機能107-1~構成変更機能107-Nまで存在する。Nは構成変更機能の最大数であり、構成変更機能リスト122のエントリ数と一致する。構成変更機能はそれぞれが実行可能なプログラムであることを想定する。
 上記説明した各モジュール(処理手段)は、初めに、リクエスト処理の応答時間が閾値155を超過したときに動作を開始し、閾値155を超過したリクエストを処理しているアプリケーションの実行を、処理遅延挿入部111を用いて一時停止する。その上で、一時停止時間内に実行できる構成変更機能を選択/実行することによって、リクエストのタイムアウトを発生させることなく構成変更が実行される。
 なお、上記の説明では、処理遅延挿入部111がプロセスへのCPUリソース割り当てを停止する時間として、各プロセスのタイムアウト値を用いているが、実際には、当該タイムアウト値よりも若干短い(マージンを取った)時間、各プロセスへのCPUリソースの割り当てを停止するようにCPUスケジューラ105に指示し、制御対象のアプリケーションによるタイムアウトを回避するのが望ましい。
[動作の説明]
 次に、図10~図13を参照しつつ、第1の実施形態に係るシステムの動作について説明する。
 図10は、第1の実施形態に係るシステムの全体動作の一例を示すフローチャートである。
 ステップS01において、リクエストの応答時間が測定される。測定にはリクエスト応答時間測定部102が用いられる(リクエスト応答時間測定部102が動作する)。
 ステップS02において、当該リクエストの応答時間が閾値155を超えたか否かが判定される。当該判定には、閾値超過判定部103が用いられる。
 リクエスト応答時間が閾値155を超過していれば(ステップS03、Yes分岐)、処理遅延制御部104は、アプリケーション情報121とプロトコルタイムアウト表123から当該リクエストのタイムアウト値を取得する(ステップS04)。リクエスト応答時間が閾値155を超過していなければ(ステップS03、No分岐)、ステップS01以降の処理が継続される(リクエストの応答時間測定に戻る)。
 その後、タイムアウト時間以内に実行できる構成変更機能が構成変更機能リスト122から選択され(ステップS05)、上記応答時間の遅延を起こしているプロセスへのCPUリソースの割り当てが、ステップS04にて取得されたタイムアウト値の期間、一時停止されると共に、ステップS05にて選択された構成変更機能が構成変更機能実行部106により実行される(ステップS06)。
 図11は、リクエスト応答時間測定部102の構成要素であるリクエスト記録部131の動作の一例を示すフローチャートである。なお、ここでは、リクエスト記録部131の動作前に、リクエスト送受信部101によって受け取ったリクエストはリクエスト応答時間測定部102に渡されているものとする。
 ステップS101において、リクエスト記録部131は、受信したリクエストのポート番号を取得する。具体的には、ポート番号は、送られてきたリクエストに記載されているので、当該記載されたポート番号をリクエスト記録部131が取り出す。
 次に、ステップS102において、リクエスト記録部131は、受信したリクエストに関するリクエストID145を生成する。リクエストID145の生成は、上述の通りである。
 次に、ステップS103において、リクエスト記録部131は、処理中リスト133に含まれるポート番号表141のポート番号143から、対応するリクエスト表番号144を取得する。即ち、リクエスト記録部131は、処理中リスト133のポート番号表141を確認することによってリクエスト表番号144を取得する。
 次に、ステップS104において、リクエスト記録部131は、リクエスト表142に当該リクエストのリクエストID145と到着時刻146を登録する。
 図12は、応答時間計算部132と閾値超過判定部103の動作の一例を示すフローチャートである。なお、アプリケーションがリクエスト処理を完了し、処理結果をクライアントに返信する際に応答時間計算部132が実行される(動作する)。つまり、応答時間計算部132は、これからクライアントに対して送信される処理結果を受信することで実行を開始する。
 ステップS201において、応答時間計算部132は、送信する処理結果(リクエスト)のポート番号を取得する。送信するリクエストのポート番号は、当該リクエスト内に記載されているので、記載されたポート番号を用いる。
 次に、ステップS202において、応答時間計算部132は、送信するリクエストのリクエストIDを生成する。リクエストIDの生成方法は上述の通りである。
 次に、ステップS203において、応答時間計算部132は、先ほど取得したポート番号に一致するポート番号をリクエスト表142から検索する。応答時間計算部132は、処理中リスト133のポート番号表141から、取得したポート番号とポート番号143が一致するエントリを検索してリクエスト表番号144を検索し、当該リクエスト表番号144を有するリクエスト表142を取得する。
 次に、ステップS204において、応答時間計算部132は、当該リクエスト表142に上記作成したリクエストID145と同じリクエストID145があるかどうか確認する。
 送信予定のリクエストのリクエストID145と同じリクエストID145がリクエスト表142に存在する場合は(ステップS205、Yes分岐)、現在時刻から到着時刻146を減算して応答時間を計算する(ステップS206)。
 送信予定のリクエストのリクエストID145と同じリクエストID145がリクエスト表142に存在しない場合は(ステップS205、No分岐)、処理が終了する。
 次に、ステップS207において、応答時間計算部132は、当該リクエスト表142から同一リクエストID145のエントリを削除する。
 次に、ステップS208において、応答時間計算部132は、応答時間を閾値超過判定部103に通知する。
 閾値超過判定部103は、送られてきた応答時間が閾値155を超過していると判断した場合(ステップS209、Yes分岐)、処理遅延制御部104の実行を開始する(ステップS210)。その後、閾値超過判定部103は、閾値超過判定を停止する(ステップS211)。
 応答時間が閾値155を超過していない場合には(ステップS209、No分岐)、閾値超過判定部103は処理を終了する。その後、応答時間計算部132と閾値超過判定部103は、他のアプリケーションに関する応答時間が閾値155を超過しているか否かを監視し続ける。
 図13は、処理遅延制御部104の動作の一例を示すフローチャートである。
 ステップS301において、処理遅延制御部104は、閾値を超過したリクエストのポート番号143から当該リクエストのタイムアウト値(タイムアウト時間)を取得する。
 次に、ステップS302において、処理遅延制御部104は、タイムアウト値内に実行でき、且つ、構成変更実行時間が最も大きい構成変更機能を選択する。なお、タイムアウト値172の取得方法と構成変更機能の選択方法は上述の通りである。
 上記条件に合致する構成変更機能が存在すれば(ステップS303、Yes分岐)、処理遅延制御部104は、プロセスID153をアプリケーション情報121から取得し(ステップS304)、ステップS301にて取得したタイムアウト値に相当する期間、当該プロセスへのCPUリソース割り当てを停止する(ステップS305)。なお、アプリケーション情報121に含まれるプロセスID153が複数存在する場合は、ステップS304とステップS305をプロセスID153の数だけ繰り返すことになる。
 次に、処理遅延制御部104は、選択した構成変更機能を実行した後(構成変更機能実行部106に選択した構成変更機能の実行を指示した後)、一定時間待機する(ステップS306)。なお、その際の待機時間は当該アプリケーションの通常時の応答時間の2倍を基本として、構成変更機能実行部106がリクエスト応答時間測定部102から計算するものとする。
 その後、閾値超過判定が再開される(ステップS307)。
 以上のように、第1の実施形態に係るシステム制御部100は、閾値155を超過したリクエストを処理しているアプリケーションの実行を、処理遅延挿入部111を用いて一時停止する構成を有する。そのため、サーバが高負荷になった場合にでも、構成変更実行に必要なリソースを確保できる。
 なお、特許文献1のシステムでは、サーバを追加している間に、リクエストを落とす(リクエストが破棄される)可能性があるという問題がある。その理由は、リクエストの使用するプロトコルによっては、リクエストのタイムアウトが発生するためである。上記構成変更には一定の時間が必要である。一方、リクエストに使用されている通信プロトコルには、「タイムアウト」と呼ばれる数値が規定されている。上述のように、タイムアウトは通信リクエストに対する応答がない場合の動作を決定するための待ち時間のことを指す。例えば、クライアントからサーバへ通信リクエストを送信した時のタイムアウトが10秒であるとする。この場合、クライアントはサーバからタイムアウトの10秒以上応答がない場合、何らかのアクションを実行することになる。通常、当該アクションには2種類存在し、1つは再送であり、他の1つはリクエストのエラー終了である。即ち、構成変更に時間がかかり、当該リクエストのタイムアウトを超過すると、リクエストの再送やリクエストのエラー終了が発生する。タイムアウトによりリクエストのエラー終了が発生すると、その後、リクエストが正常に受け付けられなくなる。
 このように、特許文献1のリクエスト処理遅延制御システムでは、リクエストのタイムアウトにかかる時間を考慮して構成変更を実行しておらず、且つ、構成変更に想定以上の時間を要することにより、リクエストのタイムアウトによるエラー終了が増えることが想定される。一方、第1の実施形態に係る情報処理装置1のシステム制御部100は、リクエストの使用するプロトコルのタイムアウトが発生するまでに実行可能な構成変更機能を選択するというように構成されているため、リクエストのタイムアウトを発生させることなく、構成変更が実行できる。即ち、第1の実施形態に係る情報処理装置1は、リクエストを落とすことなく(エラーを生じさせることなく)、構成変更機能を実行できるリクエスト処理遅延制御システムを提供できる。
[第2の実施形態]
 次に、第2の実施形態について図面を参照して詳細に説明する。
 図14は、第2の実施形態に係るシステム制御部100aの内部構成の一例を示す図である。
 図14を参照すると、第1の実施形態に係るシステム制御部100と第2の実施形態に係るシステム制御部100aの相違点は、プロトコルタイムアウト表123が存在しない(当該情報を参照しない)点、アプリケーション情報121の構造が異なる点、及び、プロトコル分析部108を有する点である。
 第2の実施形態に係るアプリケーション情報121は、図15に示すように、使用プロトコル154のフィールドに代えて、タイムアウト値156に係るフィールドを備える構造を有する。このような構造を採用する理由は、使用プロトコル154の規定タイムアウト値(デフォルトタイムアウト値172)を使用する代わりに、現在のリクエストで使用されているタイムアウト値156を記録するためである。
 プロトコルは、当該プロトコルを使用する環境に応じてタイムアウトを変化させる。通常、不安定なネットワークでは、通信遅延が大きくなることがあるので、タイムアウト値156を大きくとる場合がある。また、安定したネットワークでは、通信遅延がほとんど生じないので、タイムアウト値156を小さくすることで、通信のリアルタイム性を高めることができる。変更されたプロトコルのタイムアウト値156は、システム制御部100a内の設定情報(OS内部の設定情報)として記載されている場合と、送られてくるリクエスト(リクエストに係るパケット)に記載されている場合の2種類があるので、プロトコルに応じて、タイムアウト値156の確認場所が変化する。
 プロトコル分析部108は、プロトコルのタイムアウト値156を取得するための手段である。上述の通り、プロトコルのタイムアウト値156は、システム制御部100a内の設定情報として記載されている場合と、送られてくるリクエストに係るパケットの所定領域に記載されている場合の2種類が存在する。例えば、TCPでは、システム制御部100a内の設定情報としてタイムアウト値156が記載されている。そこで、プロトコル分析部108は、送られてきたリクエストがプロトコルとして何を使用しているかを確認する。その結果、使用されているプロトコルがTCPの場合であれば、プロトコル分析部108は、システム制御部100a内の設定情報を確認し、当該プロトコルのタイムアウト値156を取得する。なお、システム制御部100a内の設定情報取得方法は、オペレーティングシステムによりそれぞれ異なり、各オペレーティングシステムに適した設定情報取得方法を用いる。
 また、例えば、SIPを例に取ると、送られてくるリクエストにタイムアウト値156が記載されているので、当該リクエストで使用されているプロトコルがSIPである場合は、プロトコル分析部108は、送られてきたリクエストからタイムアウト値156を取得する。取得したタイムアウト値156は、アプリケーション情報121に格納される。
 図16は、プロトコル分析部108の動作の一例を示すフローチャートである。
 最初に、リクエスト送受信部101がリクエストを受け取ると、当該リクエストの複製(コピー)をプロトコル分析部108に提供する(ステップS401)。次に、プロトコル分析部108は、当該リクエストに使用されているプロトコルのタイムアウト値156を分析する(ステップS402)。具体的な分析は、例えば、当該リクエストに使用されているプロトコルを確認し、プロトコル毎に異なる場所から、現在のタイムアウト値156を取得することを示す。最後に、プロトコル分析部108は、ポート番号毎にタイムアウト値156をアプリケーション情報121に格納する(ステップS403)。
 以上のように、第2の実施形態では、各プロトコルに標準的に定められたタイムアウト値を使用せず、プロトコル分析部108によって、現在使用されているプロトコルのタイムアウト値156を取得する。その結果、プロトコルのタイムアウト値変更に応じて、使用する構成変更機能が変更可能となる。
[第3の実施形態]
 次に、第3の実施形態について図面を参照して詳細に説明する。
 図17は、第3の実施形態に係るシステム制御部100bの内部構成の一例を示す図である。
 図17を参照すると、第1の実施形態に係るシステム制御部100と第3の実施形態に係るシステム制御部100bの相違点は、フィードバック制御部109が追加された点と、リクエスト応答時間測定部102と処理遅延制御部104の動作が変更されている点である。
 フィードバック制御部109は、リクエストの応答時間が閾値155を超過している間、構成変更機能の反復実行を制御するための手段である。第1の実施形態では、リクエストの使用するプロトコルで定義されているタイムアウト値172の範囲内で、最も実行時間の長い構成変更機能を選択している。第3の実施形態では、リクエストの応答時間が閾値155を超過した場合に、最も実行時間の短い構成変更機能から実行時間の短い順に構成変更機能を実行していき、その一方で応答時間が閾値155を超過しているかどうかを適宜確認する。構成変更機能の実行により、リクエストの応答時間が閾値155を超過することがなくなった場合に、第3の実施形態に係る実行(処理)を終了する。第3の実施形態では、構成変更機能の反復実行中は、当該アプリケーションへのCPU時間の割り当ての停止と再開を繰り返すことになる。つまり、当該アプリケーションへのCPU割り当てを停止し、構成変更機能を選択・実行し、当該アプリケーションへのCPU割り当てを再開するという動作が繰り返される。
 次に、図18~図20を参照しつつ、第3の実施形態の動作を説明する。
 図18は、第3の実施形態に係るリクエスト応答時間測定部102の動作の一例を示すフローチャートである。図18において、図12にて説明した処理と同じ処理には同じ工程名称(ステップ)を付し、その説明を省略する。
 図18を参照すると、第3の実施形態に係るリクエスト応答時間測定部102の処理には、閾値超過判定を停止するステップ(図12のステップS211に相当するステップ)が存在しない。なお、処理遅延制御部104の実行をすでに開始している場合は、ステップS210は無視されるものとする。
 図19は、処理遅延制御部104の処理遅延挿入部111、フィードバック制御部109及び閾値超過判定部103の動作の一例を示すフローチャートである。処理遅延制御部104とフィードバック制御部109は、あるリクエスト処理の応答時間が閾値155を超えた場合に実行を開始する。
 初めに、ステップS501において、処理遅延挿入部111により、当該リクエスト処理を担っているアプリケーションのプロセスID153と対応するタイムアウト値がアプリケーション情報121から取得される。
 その後、処理遅延挿入部111により、フィードバック制御部109にタイムアウト値が渡され、フィードバック制御部109は現在時刻がタイムアウト時刻に達しているか否かを判定(確認)する(ステップS502)。具体的には、フィードバック制御部109は、上記タイムアウト値を取得した際の時刻にタイムアウト値を加算することでタイムアウト時刻を算出し、当該算出したタイムアウト時刻と現在時刻を比較することで、上記判定処理を行う。
 タイムアウト時刻であれば(ステップS503、Yes分岐)、処理は終了する。タイムアウト時刻に達していなければ(ステップS503、No分岐)、処理遅延制御部104は、当該プロセス(プロセス群)のCPU割り当てを停止する(ステップS504)。
なお、ステップS502、S503に係るタイムアウト時刻確認処理は、図19に示すフローチャートの実行開始時に既にタイムアウトを生じているアプリケーション(例えば、タイムアウトが短い機械制御アプリケーション)の存在を前提としたものである。そのため、ある程度長いタイムアウト時間を許容するアプリケーションに限り制御対象とする場合には、上記タイムアウト時刻確認処理は不要である。
 フィードバック制御部109は、処理遅延制御部104の構成変更機能選択部112に構成変更機能の選択及び実行を要求する(ステップS505)。
 その後、フィードバック制御部109は、フィードバック制御部109に設定されている時間の間待機する(ステップS506)。なお、その際の待機時間は、予めユーザによって設定されているものとする。
 その後、構成変更機能選択部112は、選択した構成変更機能の実行時間経過後、構成変更機能の実行が終了した旨をフィードバック制御部109に通知し、当該通知に従い、フィードバック制御部109は、処理遅延挿入部111に先ほどCPU割り当てをしたプロセスのCPU割り当て再開を要求する(ステップS507)。
 次に、フィードバック制御部109は、リクエストの応答時間が閾値155を超過しているか否かを確認する(ステップS508)。ここで、第3の実施形態では、第1の実施形態とは異なり、リクエストの応答時間が閾値155を超過した際に、閾値超過判定部103を停止するというステップ(ステップS211相当のステップ)が存在しない。よって、リクエストが到着している限り、閾値超過判定が実行されており、閾値155を超過している場合は、閾値超過判定部103に閾値超過を示す情報が存在することになる。フィードバック制御部109は、ステップS508を実行する際に、閾値超過判定部103に存在する閾値超過情報を確認する。閾値155を超過していなければ(ステップS509、No分岐)、処理は終了する。閾値155を超過している場合は(ステップS509、Yes分岐)、ステップS501以降の処理が繰り返される。
 図20は、構成変更機能選択部112と構成変更機能実行部106の動作の一例を示すフローチャートである。
 最初に、構成変更機能選択部112は、閾値超過したリクエストのポート番号143から当該リクエストのタイムアウト値を取得する(ステップS601)。
 次に、構成変更機能選択部112は、タイムアウト値内に実行可能、且つ、構成変更実行時間が最も小さい構成変更機能を選択する(ステップS602)。
 その際、構成変更機能が存在すれば(ステップS603、Yes分岐)、構成変更機能実行部106により選択された構成変更機能が実行される(ステップS604)。
 構成変更機能が存在しなければ(ステップS603、No分岐)、処理は終了する。
 第3の実施形態では、第1の実施形態とは異なり、構成変更機能を選択する際、実行時間が最も小さいものから順に処理を実行し、リクエストの応答時間が閾値155を下回れば、その時点で動作を終了する。その結果、最少の構成変更実行時間で応答時間の改善が見込まれる。なお、構成変更機能選択部112は、図20に示す一連の動作を実行している間は、一度選択した構成変更機能は選択しないようにする。つまり、ステップS602に係る構成変更機能の選択において、タイムアウト値内に実行可能、且つ、構成変更実行時間が最も小さい構成変更機能であっても、一連の処理の中で一度選択された構成変更機能は選択されない。
 以上のように、第3の実施形態では、構成変更機能を選択する際に、実行時間が最も小さいものから順に処理を実行し、構成変更実行の結果、応答時間が閾値155を下回った場合に、タイムアウト値を待たずにリクエスト処理を再開する構成を有する。当該構成により、最少時間で応答時間を改善できる構成変更機能が選択可能となる。
[適用例]
 図21に示すように、システム制御部100としてLinux(リナックス;登録商標、以下同じ)を用いることができる。この場合、リクエスト送受信部101として、Linuxのカーネル関数であるnetif_rx関数101a、netif_tx関数101bを用いることができる。また、CPUスケジューラ105として、Linuxカーネルのschedule関数105aを用いることができる。さらに、構成変更機能実行部106として、bashシェルスクリプト106aを用いることができる。さらにまた、構成変更機能群107として、Linuxコマンド群107aは、構成変更に関するLinuxの各種コマンド(taskset、nice、virsh migrate等)から構成される。
 なお、第1~第3の実施形態にて説明したシステムの構成及び動作は例示であって、種々の変形が可能である。例えば、上記実施形態では、負荷の低減(応答時間の改善)に利用する処理をCPUの制御(構成変更機能;図8に例示する各種処理)を用いて説明したが、閾値を超えた応答時間を改善できるものであれば、CPUだけに限らず、メモリ制御、ディスク制御、ネットワーク制御なども構成変更機能に含むことができる。例えば、制御対象となるアプリケーションとは別のアプリケーションが大量のネットワーク通信を実行している影響により、制御対象となるアプリケーションの応答時間が閾値を超えた場合は、構成変更機能としてネットワークに関する制御を選択し、ネットワーク使用を制限することにより、制御対象となるアプリケーションの応答時間を改善することもできる。
 情報処理装置1のシステム制御部100が行う処理は、情報処理装置1に搭載されたコンピュータに、そのハードウェアを用いて、上述した各処理を実行させるコンピュータプログラムにより実現できる。つまり、システム制御部100が行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
 さらに、コンピュータの記憶部に、上述したコンピュータプログラムをインストールすることにより、コンピュータにリクエスト処理遅延制御システムを構築することができる。さらにまた、上述したコンピュータプログラムをコンピュータに実行させることにより、コンピュータによりリクエスト処理遅延制御方法を実行することができる。また、そのプログラムは、ネットワークを介してダウンロードするか、或いは、プログラムを記憶した記憶媒体を用いて、更新することができる。
 上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、電話サービスを仮想マシンで提供するNFV(Network Functions Virtualization)の分野において、電話サービスの品質安定化に好適に適用可能である。また、WEBサービスに関する応答性向上といった用途にも好適である。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
 上述の第1の視点に係る情報処理装置のとおりである。
[付記2]
 前記CPUリソースの割り当てを停止するプロセスに対応するプロトコルのタイムアウト値に基づき、複数の前記構成変更機能のなかから、前記実行部が実行する前記構成変更機能を選択する、選択部をさらに備える付記1の情報処理装置。
[付記3]
 前記遅延挿入部は、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを、前記タイムアウト値に相当する期間、停止するように前記CPUスケジューラに指示する、付記2の情報処理装置。
[付記4]
 前記選択部は、前記複数の構成変更機能のなかから前記タイムアウト値以内に実行が終了する前記構成変更機能を選択する、付記2又は3の情報処理装置。
[付記5]
 前記選択部は、前記複数の構成変更機能のうち、前記タイムアウト値以内に実行が終了し、且つ、実行時間が最大の前記構成変更機能を選択する、付記2乃至4のいずれか一に記載の情報処理装置。
[付記6]
 前記応答時間が前記閾値を超過している場合に、
 前記遅延挿入部に対し、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当ての停止を指示することと、
 前記選択部に対し、前記複数の構成変更機能のなかから実行時間が短い順に前記構成変更機能の選択及び実行を指示することと、
 前記応答時間が前記閾値を超過していたリクエストを処理していたプロセスの応答時間が、前記閾値を超過しているか否かを判定することと、
 を繰り返すフィードバック制御部をさらに備える、付記2乃至5のいずれか一に記載の情報処理装置。
[付記7]
 前記リクエストを処理するプロトコルのタイムアウト値を、オペレーティングシステムの所定領域を参照する、又は、前記リクエストに係るパケットの所定領域を参照することで取得するプロトコル分析部をさらに備える、付記1乃至6のいずれか一に記載の情報処理装置。
[付記8]
 前記測定部は、
 前記クライアントから受信したリクエストから、前記リクエストを識別するリクエストIDを生成し、前記リクエストIDと前記クライアントから受信したリクエストの到着時刻を関連付け、処理中リストに登録する、リクエスト記録部と、
 前記処理中リストに登録された前記到着時刻と、前記処理結果を前記クライアントに送信する時刻と、に基づいて、前記応答時間を計算する、応答時間計算部と、
 を含む、付記1乃至7のいずれか一に記載の情報処理装置。
[付記9]
 上述の第2の視点に係るリクエスト処理遅延制御方法のとおりである。
[付記10]
 上述の第3の視点に係るプログラムのとおりである。
[付記11]
 リクエストの応答時間を測定し、
 設定した閾値をリクエストの応答時間が超過しているか確認し、
 超過していれば、リクエスト処理に利用しているプロトコルのデフォルトタイムアウト時間を取得し、
 当該タイムアウト時間内に実行できる最も実行時間の長い構成変更機能を選択・実行すると同時に、アプリケーションの処理を構成変更機能実行中は停止する、
 ことを特徴とするリクエスト処理遅延制御方法。
[付記12]
 リクエストに利用されているプロトコルを確認し、
 プロトコルに応じて、現在設定されているタイムアウト値を取得し、
 アプリケーション情報として記録しておき、
 リクエストの応答時間を測定し、
 設定した閾値をリクエストの応答時間が超過しているか確認し、
 超過していれば、アプリケーション情報に記載されたタイムアウト時間を取得し、
 当該タイムアウト時間内に実行できる最も実行時間の長い構成変更機能を選択・実行すると同時に、アプリケーションの処理を構成変更機能実行中は停止する、
 ことを特徴とするリクエスト処理遅延制御方法。
[付記13]
 リクエストの応答時間を測定し、
 設定した閾値をリクエストの応答時間が超過しているか確認し、
 超過していれば、リクエスト処理に利用しているプロトコルのデフォルトタイムアウト時間を取得し、
 実行時間の小さいものから順に構成変更機能を選択・実行し、
 リクエストの応答時間が閾値を下回るまで、構成変更機能の選択・実行をリクエストのタイムアウト時間に到達するまで繰り返すと同時に、アプリケーションの処理を構成変更機能実行中は停止する、
 ことを特徴とするリクエスト処理遅延制御方法。
 なお、付記9の形態及び付記10の形態は、付記1の形態と同様に、付記2の形態~付記8の形態に展開することが可能である。
 なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 この出願は2015年8月6日に出願された日本出願特願2015-155982を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、200 情報処理装置
10 CPU
20 記憶装置
30 ネットワークインターフェイス
40 入出力インターフェイス
100、100a、100b システム制御部
101 リクエスト送受信部
101a netif_rx
102 リクエスト応答時間測定部
102b netif_tx
103 閾値超過判定部
104 処理遅延制御部
105 CPUスケジューラ
105a schedule関数
106 構成変更機能実行部
106a bashシェルスクリプト
107 構成変更機能群
107a Linuxコマンド群
107-1~107-N 構成変更機能
108 プロトコル分析部
109 フィードバック制御部
111 処理遅延挿入部
112 構成変更機能選択部
121 アプリケーション情報
122 構成変更機能リスト
123 プロトコルタイムアウト表
131 リクエスト記録部
132 応答時間計算部
133 処理中リスト
141 ポート番号表
142、142-1、142-2 リクエスト表
143、151 ポート番号
144 リクエスト表番号
145、145-1、145-2 リクエストID
146、146-1、146-2 到着時刻
152 アプリケーション名
153 プロセスID
154 使用プロトコル
155 閾値
156、172 タイムアウト値
161 構成変更機能番号
162 構成変更機能名
163 構成変更実行時間
171 プロトコル名
201 送受信部
202 測定部
203 判定部
204 遅延挿入部
205 実行部

Claims (10)

  1.  クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する送受信手段と、
     前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する測定手段と、
     前記応答時間が閾値を超過しているか否かを判定する判定手段と、
     前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する、遅延挿入手段と、
     前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、実行手段と、
     を備える、情報処理装置。
  2.  前記CPUリソースの割り当てを停止するプロセスに対応するプロトコルのタイムアウト値に基づき、複数の前記構成変更機能のなかから、前記実行手段が実行する前記構成変更機能を選択する、選択手段をさらに備える請求項1の情報処理装置。
  3.  前記遅延挿入手段は、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを、前記タイムアウト値に相当する期間、停止するように前記CPUスケジューラに指示する、請求項2の情報処理装置。
  4.  前記選択手段は、前記複数の構成変更機能のなかから前記タイムアウト値以内に実行が終了する前記構成変更機能を選択する、請求項2又は3の情報処理装置。
  5.  前記選択手段は、前記複数の構成変更機能のうち、前記タイムアウト値以内に実行が終了し、且つ、実行時間が最大の前記構成変更機能を選択する、請求項2乃至4のいずれか一項に記載の情報処理装置。
  6.  前記応答時間が前記閾値を超過している場合に、
     前記遅延挿入手段に対し、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当ての停止を指示することと、
     前記選択手段に対し、前記複数の構成変更機能のなかから実行時間が短い順に前記構成変更機能の選択及び実行を指示することと、
     前記応答時間が前記閾値を超過していたリクエストを処理していたプロセスの応答時間が、前記閾値を超過しているか否かを判定することと、
     を繰り返すフィードバック制御手段をさらに備える、請求項2乃至5のいずれか一項に記載の情報処理装置。
  7.  前記リクエストを処理するプロトコルのタイムアウト値を、オペレーティングシステムの所定領域を参照する、又は、前記リクエストに係るパケットの所定領域を参照することで取得するプロトコル分析手段をさらに備える、請求項1乃至6のいずれか一項に記載の情報処理装置。
  8.  前記測定手段は、
     前記クライアントから受信したリクエストから、前記リクエストを識別するリクエストIDを生成し、前記リクエストIDと前記クライアントから受信したリクエストの到着時刻を関連付け、処理中リストに登録する、リクエスト記録手段と、
     前記処理中リストに登録された前記到着時刻と、前記処理結果を前記クライアントに送信する時刻と、に基づいて、前記応答時間を計算する、応答時間計算手段と、
     を含む、請求項1乃至7のいずれか一項に記載の情報処理装置。
  9.  クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信し、
     前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定し、
     前記応答時間が閾値を超過しているか否かを判定し、
     前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示し、
     前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、
     ことを含む、リクエスト処理遅延制御方法。
  10.  クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する処理と、
     前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する処理と、
     前記応答時間が閾値を超過しているか否かを判定する処理と、
     前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する処理と、
     前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する処理と、
     を、情報処理装置に搭載されたコンピュータに実行させるプログラムを格納する記憶媒体。
PCT/JP2016/003540 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 WO2017022233A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017532378A JPWO2017022233A1 (ja) 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-155982 2015-08-06
JP2015155982 2015-08-06

Publications (1)

Publication Number Publication Date
WO2017022233A1 true WO2017022233A1 (ja) 2017-02-09

Family

ID=57942715

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/003540 WO2017022233A1 (ja) 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体

Country Status (2)

Country Link
JP (1) JPWO2017022233A1 (ja)
WO (1) WO2017022233A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197804A (ja) * 2010-03-17 2011-10-06 Fujitsu Ltd 負荷解析プログラム、負荷解析方法、および負荷解析装置
JP2013143629A (ja) * 2012-01-10 2013-07-22 Ricoh Co Ltd ネットワーク制御装置
JP2014102740A (ja) * 2012-11-21 2014-06-05 Fujitsu Ltd 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法
WO2015092873A1 (ja) * 2013-12-18 2015-06-25 株式会社日立製作所 情報処理システム及び情報処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197804A (ja) * 2010-03-17 2011-10-06 Fujitsu Ltd 負荷解析プログラム、負荷解析方法、および負荷解析装置
JP2013143629A (ja) * 2012-01-10 2013-07-22 Ricoh Co Ltd ネットワーク制御装置
JP2014102740A (ja) * 2012-11-21 2014-06-05 Fujitsu Ltd 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法
WO2015092873A1 (ja) * 2013-12-18 2015-06-25 株式会社日立製作所 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
JPWO2017022233A1 (ja) 2018-05-24

Similar Documents

Publication Publication Date Title
CN109274707B (zh) 一种负载调度方法及装置
US10025614B2 (en) Setting retransmission time of an application client during virtual machine migration
EP3255553A1 (en) Transmission control method and device for direct memory access
US8386575B2 (en) Method of realizing uniqueness assurance and method of determining message destination
FI20176152A1 (fi) Menetelmä, järjestelmä ja tietokoneohjelmatuote OPC UA palvelinkapasiteetin hallintaan
US9906581B2 (en) Information processing apparatus, control method, and storage medium
US10944683B1 (en) Hybrid queue system for request throttling
US10298693B2 (en) Virtual-machine dynamic allocation system and server
JP5757325B2 (ja) 仮想デスクトップシステム、ネットワーク処理装置、管理方法、及び管理プログラム
US20170264500A1 (en) Number-of-scales estimation apparatus, number-of-scales management system, number-of-scales estimation method, number-of-scales management method, and storage medium
CN108933829A (zh) 一种负载均衡方法及装置
US20180176289A1 (en) Information processing device, information processing system, computer-readable recording medium, and information processing method
JP7277168B2 (ja) リソースサービスシステム、及び、制御方法
US20160261526A1 (en) Communication apparatus and processor allocation method for the same
CN112104679B (zh) 处理超文本传输协议请求的方法、装置、设备和介质
EP1607880A1 (en) Decentralized processing control device, decentralized processing control method, decentralized processing control program
JP2011203810A (ja) サーバ、計算機システム及び仮想計算機管理方法
US10146584B2 (en) Weight adjusted dynamic task propagation
JP6748359B2 (ja) 接続数制御プログラム、振り分け装置および接続数制御方法
KR20170100576A (ko) 클라이언트-서버 통신
JP2015087892A (ja) 情報処理システム
WO2017022233A1 (ja) 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体
JP2015176590A (ja) 印刷制御装置及びプログラム
JP2014041404A (ja) ターミナルサービス監視装置
JP2017033234A (ja) リクエスト受付システム、リクエスト受付方法、及び、プログラム

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: 16832516

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017532378

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16832516

Country of ref document: EP

Kind code of ref document: A1