WO2015159336A1 - 情報処理装置、流量制御パラメータ算出方法、およびプログラム - Google Patents

情報処理装置、流量制御パラメータ算出方法、およびプログラム Download PDF

Info

Publication number
WO2015159336A1
WO2015159336A1 PCT/JP2014/060597 JP2014060597W WO2015159336A1 WO 2015159336 A1 WO2015159336 A1 WO 2015159336A1 JP 2014060597 W JP2014060597 W JP 2014060597W WO 2015159336 A1 WO2015159336 A1 WO 2015159336A1
Authority
WO
WIPO (PCT)
Prior art keywords
coefficient
data
internal
processing
web system
Prior art date
Application number
PCT/JP2014/060597
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 JP2015511825A priority Critical patent/JP5793259B1/ja
Priority to US14/432,362 priority patent/US9317335B2/en
Priority to PCT/JP2014/060597 priority patent/WO2015159336A1/ja
Publication of WO2015159336A1 publication Critical patent/WO2015159336A1/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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Definitions

  • the present invention relates to an information processing apparatus, a flow rate control parameter calculation method, and a program.
  • Web systems that execute processing in response to processing requests from terminal devices via a network such as the Internet.
  • a network such as the Internet.
  • how quickly a response is returned to a processing request from a terminal device is important.
  • the setting value and the maximum queue of the maximum number of parallel processing of the server device are used so that the processing capacity of the server device can be maximized, and the response time can be shortened and the allowable response time can be secured.
  • a communication server setting value determination device that can determine the number of setting values (see, for example, Patent Document 1).
  • the communication server set value determination device of Patent Document 1 does not determine the maximum number of parallel processes, the maximum number of queues, and (parameters) according to the data processing structure of the Web system. Therefore, there is a problem that the determined parameter may not be appropriate depending on the data processing structure of the Web system.
  • the communication server set value determination device disclosed in Patent Document 1 has a function to support automation of a load application experiment on the premise that the load application experiment is repeated. It is difficult to prepare data dedicated to load input experiments, etc. in order to make the system equivalent to the operating system. If not, it was not guaranteed that the communication server setting value was the optimum server setting value for the job mix in the operating system in the communication server setting value determination device of Patent Document 1 at the load input experiment stage.
  • an object of the present invention is to provide a technique for calculating parameters according to the data processing structure of a Web system. It is another object of the present invention to provide a technique for calculating an optimum parameter for a job mix in an operating system without depending on repeated load input experiments.
  • an information processing apparatus includes a maximum queue length indicating a maximum size of a queue for temporarily storing request data, and a maximum number of concurrent executions indicating a maximum number of requests data that can be processed in parallel.
  • the internal hold time required for the data processing of the web system in the number of internal hold requests obtained by summing the number of uses of the queue and the parallel processing number of the request data from the operation data of the web system having a flow control parameter including Applying an approximate expression according to the data processing structure of the web system to the internal hold time in the number of internal hold requests extracted by the extractor and the extractor that extracts the coefficient of the approximate expression From the coefficient calculation unit to be calculated and the approximate expression in which the coefficient is calculated by the coefficient calculation unit,
  • a parameter calculation unit for calculating the flow rate control parameter Do was characterized by having a.
  • the data processing structure of the web system may perform at least one queue to which the request data having uniform processing content is input and parallel processing of the maximum number of simultaneous executions.
  • a plurality of data processing units to which the request data of the physical content is input, a third data processing structure provided in correspondence with the process, and a single data processing unit to which the request data of the non-uniform processing content is input
  • the coefficient calculation unit calculates a temporary coefficient by an approximate expression when the number of internal pending requests is smaller than the maximum number of simultaneous executions, and based on the calculated temporary coefficient, An approximate expression corresponding to the data processing structure of the web system may be selected.
  • the extraction unit extracts the internal hold time by distinguishing between the internal hold time in a process unit and the internal hold time in the processing identifier unit processed by the process. Then, the coefficient calculation unit substitutes the internal holding time by the process unit extracted by the extraction unit into an approximate expression, calculates the temporary coefficient for each process, and extracts the extracted coefficient by the extraction unit
  • the provisional coefficient for each process identifier may be calculated by substituting the internal hold time in units of process identifiers into an approximate expression.
  • the coefficient calculation unit may include the first data processing structure when the temporary coefficient for each process and the temporary coefficient for each processing identifier have the same value.
  • the coefficient may be calculated based on the corresponding approximate expression.
  • the coefficient calculation unit does not have the same value for the temporary coefficient for each process and the temporary coefficient for each processing identifier, and the temporary coefficient for each processing identifier is When the values are the same in the same process, the coefficient may be calculated based on the approximate expression corresponding to the second data processing structure.
  • the coefficient calculation unit is configured such that the temporary coefficient for each process and the temporary coefficient for each processing identifier are not similar values and the temporary coefficient for each processing identifier is If the flow rate control parameter is given for each process and for each processing identifier when they are not in the same value in the same process, the coefficient is based on the approximate expression according to the third data processing structure. May be calculated.
  • the coefficient calculation unit does not have the same value for the temporary coefficient for each process and the temporary coefficient for each processing identifier, and the temporary coefficient for each processing identifier is
  • the coefficient is calculated based on the approximate expression corresponding to the fourth data processing structure. It may be characterized by that.
  • the parameter calculation unit based on the approximate expression from which the coefficient is calculated, maximizes the internal hold time according to the load amount assumed in the web system. It may be characterized by calculating the number of concurrent executions.
  • the parameter calculation unit calculates an upper limit value of the number of internal hold requests that does not exceed an internal hold time allowed in the web system from the approximate expression in which the coefficient is calculated.
  • the maximum queue length may be calculated from the maximum concurrent execution number and the upper limit value of the internal pending request number.
  • the flow rate control parameter calculation method of the information processing apparatus includes a maximum queue length indicating a maximum size of a queue for temporarily storing request data, and a maximum number of concurrent executions indicating a maximum number of the request data that can be processed in parallel.
  • the internal hold time required for data processing of the web system for each internal hold request count that is the sum of the queue usage count and the parallel processing count of the request data from the web system operation data having flow control parameters including And applying an approximation formula according to the data processing structure of the web system to the internal hold time in the number of internal hold requests extracted by the extraction step, and extracting the coefficient of the approximate formula
  • the program of the information processing apparatus provides a flow rate control including a maximum queue length indicating a maximum size of a queue for temporarily storing request data and a maximum number of concurrent executions indicating a maximum number of the request data that can be processed in parallel.
  • Extraction that extracts the internal hold time required for data processing of the web system for each internal hold request number that is the sum of the number of queues used and the parallel processing number of the request data from the operating data of the web system having parameters And a coefficient for calculating a coefficient of the approximate expression by applying an approximate expression corresponding to the data processing structure of the web system to the internal hold time in the internal hold request number extracted by the extracting section From the calculation unit and the approximate expression in which the coefficient is calculated by the coefficient calculation unit, A parameter calculating section that calculates a Do the flow control parameter, characterized in that to function the information processing apparatus and.
  • FIG. 2 is a diagram illustrating a first example of a data processing structure of a Web system 2; It is the figure which showed the internal reservation time graph (logarithmic scale) for every load amount of the uniform processing content. It is the figure which showed the internal reservation time graph (linear scale) for every load amount of uniform processing content. It is the figure which showed the 2 of the example of a data processing structure of the Web system.
  • FIG. FIG. 6 is a diagram illustrating a fourth example of a data processing structure of the Web system 2; 2 is a diagram illustrating an example of functional blocks of the information processing apparatus 1.
  • FIG. It is the figure which showed the example of the operation data of the Web system. It is a figure explaining extraction of temporary information. It is a figure explaining a predetermined rule. It is a figure explaining the number of internal hold requests of URL. It is the figure which showed the data structural example of the information for regression analysis.
  • 3 is a flowchart illustrating an operation example of the information processing apparatus 1.
  • 5 is a flowchart showing an example of the operation of a coefficient calculation unit 23 and a parameter calculation unit 24.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration that realizes functions of the information processing apparatus 1.
  • FIG. It is the figure which showed the relationship between the maximum simultaneous execution number at the time of giving load to the Web system 2 from the terminal device 3, and the response time of the Web system 2.
  • FIG. It is a figure explaining the example of tuning of a flow control parameter. It is a figure explaining calculation of the maximum queue length by allowable waiting time. It is the figure which graphed the average value of the internal hold time with respect to the number of internal hold requests.
  • FIG. 1 is a diagram showing a configuration example of a network system to which an information processing apparatus according to an embodiment of the present invention is applied.
  • the network system includes an information processing device 1, a Web system 2, a terminal device 3, and a network 4.
  • the network 4 is, for example, the Internet.
  • the Web system 2 includes Web servers 2a and 2b.
  • the Web system 2 includes two Web servers 2a and 2b, but may be one, or three or more.
  • the terminal device 3 is connected to the Web system 2 (Web servers 2a and 2b) via the network 4.
  • the terminal device 3 transmits request data to the Web system 2.
  • the request data includes, for example, a URL (Uniform Resource Locator), a request parameter, and the like.
  • the Web system 2 (Web servers 2 a and 2 b) performs predetermined processing according to request data from the terminal device 3, and transmits a processing result to the terminal device 3.
  • FIG. 1 only one terminal device 3 is shown, but two or more terminal devices 3 may be used.
  • the Web system 2 has a flow control parameter for each process, which will be described in detail below.
  • the flow rate control parameter includes a maximum queue length indicating the maximum size of the queue that temporarily stores request data from the terminal device 3 (the maximum number of requests that can be stored), and processes in the Web system 2 process request data in parallel. And the maximum number of concurrent executions that indicate the maximum number that can be performed.
  • the Web system 2 can change the processing time of request data by changing the maximum queue length and the maximum number of concurrent executions.
  • the information processing apparatus 1 is connected to a Web system 2 (Web servers 2a and 2b) via a network 4. For example, the information processing apparatus 1 receives operation data from the Web system 2 in accordance with an instruction from an administrator who manages the Web system 2, and calculates a new flow control parameter based on the received operation data. Then, the information processing apparatus 1 transmits the calculated new flow rate control parameter to the Web system 2.
  • a Web system 2 Web servers 2a and 2b
  • the information processing apparatus 1 receives operation data from the Web system 2 in accordance with an instruction from an administrator who manages the Web system 2, and calculates a new flow control parameter based on the received operation data. Then, the information processing apparatus 1 transmits the calculated new flow rate control parameter to the Web system 2.
  • the information processing apparatus 1 calculates an appropriate flow rate control parameter according to the operation data of the Web system 2. Thereby, the Web system 2 can return an earlier response to the request data from the terminal device 3.
  • FIG. 2 is a sequence diagram for explaining an outline of the operation of the system of FIG.
  • the sequence diagram of FIG. 2 is executed when the terminal device 3 receives a predetermined operation from the user, for example.
  • the processing of the Web system 2 is divided into processing of a Web server request acceptance processing, a processing waiting queue, an application processing process, and a back end sub system.
  • the terminal device 3 generates request data to be processed by the Web system 2, for example (step S1).
  • the terminal device 3 transmits the generated request data to the load balancer not shown in FIG. 1 via the network 4 (steps S2 and S3).
  • the load balancer receives the request data from the terminal device 3, and selects the Web servers 2a and 2b that process the received request data (step S4). For example, the load balancer selects the Web servers 2a and 2b that process the received request data based on the processing identification information such as the URL included in the request data.
  • the queue that temporarily stores the request data received from the terminal device 3 exceeds the maximum queue length. Whether or not (step S5).
  • the Web system 2 shifts the processing to step S12. If the queue that temporarily stores the processing request does not exceed the maximum queue length, the Web system 2 shifts the processing to step S6.
  • an arrow A1 in FIG. 2 indicates a queue in which processing requests are temporarily stored.
  • L processing requests are temporarily stored.
  • step S5 when the Web system 2 determines that the queue for temporarily storing the processing request does not exceed the maximum queue length (“No” in step S5), the received processing request is set to an empty queue. Store (step S6).
  • the Web system 2 processes the processing requests stored in the queue in parallel (step S7).
  • the maximum number of concurrent executions of the Web system 2 in FIG. 2 is “M” as indicated by an arrow A2.
  • the Web system 2 may delegate a part of the processing of the application process to “back end sub system” and perform the processing asynchronously.
  • the Web system 2 transmits the result of the processed processing request (response data) to the terminal device 3 via the network 4 (steps S8 and S9).
  • the terminal device 3 receives the response data transmitted from the Web system 2, and displays the received response data on, for example, a display (steps S10 and S11).
  • step S5 when the Web system 2 determines that the queue that temporarily stores the processing request exceeds the maximum queue length (“Yes” in step S5), the Web system 2 issues a processing error via the network 4.
  • the error response data shown is transmitted to the terminal device 3 (step S12).
  • the terminal device 3 displays the error response data received from the Web system 2 on, for example, a display (Steps S10 and S11).
  • step S5 to step S8 the time required for the processing from step S5 to step S8 is referred to as “internal holding time”. That is, the time from when the Web system 2 receives a processing request from the terminal device 3 to when response data is transmitted to the terminal device 3 is referred to as “internal hold time”.
  • client side time the time required for the processing from step S1 to step S2 is referred to as “client side time”. That is, the time from when the terminal device 3 generates a processing request to when it is transmitted is referred to as “client side time”.
  • error response time the time required for the processing from step S1 to step S5 and step S12 is referred to as “error response time”. That is, the time from when the terminal device 3 generates a processing request until it receives error response data indicating a processing error is referred to as “error response time”.
  • normal response time the time required for the processing from step S1 to step S11 is referred to as “normal response time”. That is, the time until the terminal device 3 generates a processing request and receives normal response data is referred to as “normal response time”.
  • client side time the time required for the processing from step S10 to step S11 is referred to as “client side time”. That is, the time from when the terminal device 3 receives the response data from the Web system 2 until it is displayed on the display is referred to as “client-side time”.
  • the “normal response time” indicated by the arrow A14 is the sum of the “client side time” indicated by the arrow A12, the “internal hold time” indicated by the arrow A11, and the “client side time” indicated by the arrow A15. Become.
  • the internal hold time includes only the processing time of the process controlled by the flow rate control parameter.
  • response time such as “normal response time” and “error response time” includes the processing time of processing not controlled by the flow control parameter
  • the method of calculating the flow control parameter from “response time” is It can be seen that this method lacks accuracy.
  • the operation data recorded by the Web system 2 includes the “internal holding time required for generating normal response data” which changes the time required for processing depending on the flow rate control parameter, and the time required for processing based on the flow rate control parameter.
  • the “internal hold time required to generate error response data” of “S3, S4 to S12” that does not change may be recorded, but depending on the HTTP status code that is recorded with the internal hold time in the operation data It is possible to determine whether or not it was error response data.
  • the Web system 2 uses the Web servers 2a and 2b to queue the processing request A1 temporarily (for example, the arrow A1 shown in FIG. 2) and the data processing unit A2 (for example, the arrow shown in FIG. A2) is realized.
  • the data processing unit A2 that processes the processing requests in parallel processes the request data below the “maximum simultaneous execution number (max Threads)” “M” in parallel, and this is called “the number of simultaneous executions”.
  • maximum number of concurrent executions that can be set for each process or processing identifier is called “maximum number of concurrent executions (max Threads)”.
  • queue usage number The number of requests that exceed the maximum concurrent execution number setting value “M” and the processing requests are temporarily stored in the queue A1 is referred to as “queue usage number (queue (size)”.
  • the request reception unit S5 also includes a “maximum queue length” as an upper limit value of the “number of queues used (queue size)”.
  • the total value of “the number of concurrent executions” and “the number of queues used” is referred to as “the number of internal pending requests” “L”.
  • the approximate expression of the “internal hold time” of the Web system 2 is the internal hold request number “L” and the maximum number of simultaneous executions “M” of the data processing unit. And coefficients “p”, “q”, and “r”.
  • Equation (1) and Equation (2) The coefficients “p”, “q”, and “r” shown in Equation (1) and Equation (2) can be calculated from the operation data of the Web system 2 by performing regression analysis. By substituting the coefficients “p”, “q”, and “r” calculated by the regression analysis into the formulas (1) and (2), the internal pending request count “L” and the maximum concurrent execution count “M” are set as variables. Thus, an expression indicating the internal holding time “y” can be obtained.
  • the coefficients “p” and “q” in Equation (1) are the maximum number of concurrent executions set at the time of collection of operating data out of the average internal holding time for each number of internal holding requests extracted from the operating data of the Web system 2. It can be calculated by performing regression analysis from the pair of the number of internal pending requests “L k ” less than “M” and the internal pending time logarithm value “Log (y k )”.
  • the Web system 2 includes “maximum simultaneous execution number (max Threads)” “M” and “maximum queue length” as flow rate control parameters that can be set for each process or processing identifier for processing a processing request.
  • the processing identifier is an identifier for distinguishing the type of data processing content activated by request data.
  • the Web system 2 is in a heavy load state when the “number of internal pending requests” is large.
  • a metric having a positive correlation with the internal pending time may be referred to as “load amount”.
  • throughput and traffic (number of requests / second) that may have a negative correlation with internal hold time during overload are not called “load amount”, but are a means of counting these “internal hold requests”. It is not a substitute (see FIG. 15).
  • FIG. 3 is a diagram for explaining an approximate expression of the internal holding time.
  • an approximate expression for the internal holding time is derived from a multistage queuing model in which a network type queuing model and an M / M / C type queuing model are combined.
  • Ready Queue shown in FIG. 3 indicates a waiting queue of processing threads that can be executed immediately.
  • Execute Thread indicates a thread being executed. When the execution of processing is suspended due to time-division multiplexing control or waiting for resources by preemptive multi-thread control, the queue is again queued to “Ready Queue”.
  • Max_Threads indicates the maximum number of simultaneous executions (the maximum number of threads including “Ready Queue” and “Execute Threads”).
  • T 0 indicates the arrival time when the processing request “Ready Queue” is first entered.
  • T 1 indicates the time when the data processing of the processing request is completed and the processing request leaves the system.
  • “ ⁇ t” indicates a minute time.
  • “ ⁇ L” indicates the number of threads queued in “Ready Queue” during the minute time “ ⁇ t”. That is, “ ⁇ L” indicates the fluctuation range of the number of internal pending requests “L” in the minute time “ ⁇ t”.
  • ⁇ y indicates the fluctuation range of the separation time “y” due to the length fluctuation of “Ready Queue” in the minute time “ ⁇ t”.
  • the increase amount “ ⁇ L” of the number of internal pending requests in the minute time “ ⁇ t” is proportional to the minute time “ ⁇ t”. Further, the internal holding time “ ⁇ y” that can increase at the minute time “ ⁇ t” is proportional to the minute time “ ⁇ t”. From the above, the following two equations can be derived.
  • the final internal hold time “Y” is proportional to the total number of internal hold requests “ ⁇ L” in a minute period, and further proportional to “ ⁇ L”. To do. Therefore, the internal holding time “Y” can be expressed as the following equation (6).
  • Equation (10) Solving the differential equation shown in Equation (9) yields the following Equation (10).
  • Expression (11) is the “internal” of the process that shares resources managed by the mechanism of preemptive thread control (for example, CPU (Central Processing Unit) consumed by “Execute Thread”, disk, “Ready Queue”, etc.) "Pending time”.
  • CPU Central Processing Unit
  • an approximate expression of the internal hold time “y” when the internal hold request number “L” is equal to or greater than the maximum number of simultaneous executions “M” is derived.
  • L an M / M / C type queuing model can be applied.
  • An approximate expression of the internal holding time “y” based on the M / M / C type queuing model can be expressed as the following expression (12).
  • the constant term “c” indicates the average internal hold time when the internal hold request count “L” is the maximum number of simultaneous executions “M”.
  • a value “LM” (indicating the maximum queue length) obtained by subtracting the maximum number of simultaneous executions “M” from the number of internal hold requests “L” is added to the constant term “c”.
  • a value obtained by dividing by the maximum concurrent execution number “M” and multiplying by the coefficient “d” can be added and shown.
  • the maximum number of concurrent executions is called the number of processing windows.
  • the coefficients “p”, “q”, and “r” included in the above equations (1) and (2) can be calculated as follows. First, the operation data of the Web system 2 is collected, and the internal hold time for the load amount (the number of internal hold requests) is extracted from the collected operation data. For example, the internal hold time “y i ” at the load amount “L i ” is extracted from the operation data of the Web system 2.
  • FIG. 4 is a diagram for explaining the nature of the internal hold time.
  • the internal hold time “y” is a boat shape as shown in the graph G12. Draw a curve. That is, the internal hold time “y” has a minimum value with respect to the maximum number of simultaneous executions “M”.
  • the internal holding time “y” can be expressed by the sum of an exponential function and a linear function as shown in Equation (2) as described above when the maximum concurrent execution number “M” is regarded as a variable. Have one. Therefore, “M” that minimizes the internal holding time “y” can be calculated from the condition that the expression obtained by differentiating the expression (2) by “M” becomes “0”.
  • Equation (17) The right side of equation (17) becomes “0” when the numerator shown in equation (17) becomes “0”. Accordingly, when the numerator portion of the equation (17) is set to “0” and the quadratic equation relating to M is solved, the maximum number of simultaneous executions “M” at which the internal holding time “y” becomes the minimum value is expressed by the following equation (18 ).
  • the maximum number of simultaneous executions is expressed by the following equation (19 ) Is an appropriate value from the limit value for L.
  • the load amount assumed in the Web system 2 (for example, the load amount assumed in the Web system 2) Is the maximum number of concurrent executions that minimizes the value of the internal hold time “y” in equation (2) for the internal hold request number specified as one of the tuning policy parameters by the administrator who manages the Web system 2.
  • M can be calculated by simulating.
  • the load amount “L” assumed in the Web system 2 specified as one of the tuning policy parameters is substituted into the expression (2), and some maximum values are obtained as shown in the graph of G12 in FIG. A value that is a candidate for the number of concurrent executions “M” is substituted into Expression (2). Then, the maximum simultaneous execution number “M” in which the internal holding time “y” is minimized is adopted as the new maximum simultaneous execution number.
  • the maximum queue length (queue size), which is another flow rate control parameter, is calculated by “L limit ⁇ M”.
  • L limit is, for example, the maximum load amount assumed in the Web system 2, and “M” is a newly calculated maximum number of concurrent executions.
  • L limit ” is a value that does not exceed the allowable limit “Y limit ” of the internal holding time, which is given as a tuning policy parameter, and “L” in equation (2) is set as shown in FIG. It can be calculated by changing.
  • FIG. 5 is a diagram showing a first example of the data processing structure of the Web system 2. As shown in FIG. 5, the Web system 2 has one queue 11a and one data processing unit 12a. The process of the data processing structure shown in FIG. 5, for example, physically operates on one or more Web servers, and the Web system 2 is realized by one or more Web servers.
  • Processing request is temporarily stored in the queue 11a. Processing requests are taken out from the queue 11a one by one and input to the data processing unit 12a.
  • the data processing unit 12a performs parallel processing on processing requests fetched from the queue 11a. When the data processing of the processing request is completed, the data processing unit 12a receives the next processing request stored in the queue 11a.
  • a request for uniform processing content is input to the Web system 2 having the data processing structure shown in FIG.
  • the data processing unit 12a performs uniform data processing.
  • the request for uniform processing contents means that the contents processed by the data processing unit 12a are almost the same processing contents.
  • the processing requests a, b, and c are processed by the data processing unit 12a.
  • all of the processing requests a, b, and c are processed in almost the same internal processing time. That is, it is assumed that processing requests having substantially the same processing contents are input to the queue 11a of the Web system 2 shown in FIG.
  • the input data such as HTTP_URi and http_query_string included in the HTTP request are the same, the processing contents are the same.
  • the internal pending request number “L” is less than the maximum simultaneous execution number setting value “M” at the time of operation data collection. Even when the slopes of the graphs when the time “y” is viewed on a logarithmic scale are substantially the same, it is considered that the content is “uniform processing content”. In that case, as shown in FIG. 7, when the internal pending request count “L” is equal to or greater than the maximum concurrent execution count setting value “M”, the slope when viewing the internal pending time “y” on a linear scale is almost the same slope. It becomes.
  • FIG. 8 is a diagram showing a second example of the data processing structure of the Web system 2.
  • the Web system 2 includes queues 13aa, 13ab, 13ba, 13bb, 13ca, 13cb, 13cc, data processing units 14aa, 14ab, 14ba, 14bb, 14ca, 14cb, 14cc, and a disperser DP1.
  • the Web system 2 having the data processing structure shown in FIG. 8 is realized by, for example, one or more Web servers.
  • the Web system 2 is realized by Web servers SV1 to SV3.
  • a set of one queue and one data processing unit shown in FIG. 8 is provided corresponding to a process executed by the Web system 2 (Web servers SV1 to SV3 constituting the Web system 2).
  • one queue 13aa and one data processing unit 14aa shown in the dotted frame D1a in FIG. 8 are provided corresponding to a certain process P1a, and one queue 13ab and one data shown in the dotted frame D1b.
  • the processing unit 14ab is provided corresponding to a certain process P1b.
  • one queue 13ba and one data processing unit 14ba shown in the dotted line frame D2a are provided corresponding to a certain process P2a
  • one queue 13bb and one data processing unit 14bb shown in the dotted line frame D2b are provided corresponding to a certain process P2a
  • one queue 13bb and one data processing unit 14bb shown in the dotted line frame D2b are provided corresponding to a certain process P2b.
  • one queue 13ca and one data processing unit 14ca shown in the dotted line frame D3a are provided corresponding to a certain process P3a
  • one queue 13cb and one data processing unit 14cb shown in the dotted line frame D3b are provided corresponding to a certain process P3c.
  • one queue 13cc and one data processing unit 14cc indicated by a dotted frame D3c are provided corresponding to a certain process P3c.
  • Non-uniform data processing means that processing times (internal hold times) of various processing requests are different. Therefore, in a request for non-uniform processing content, the processing time of each processing request becomes a different processing time (non-uniform processing content).
  • requests for non-uniform processing contents are distributed by the disperser DP1 so that they are uniformly processed by the processes (dotted lines D1a to D3c) of the Web servers SV1 to SV3. Yes.
  • requests a, b, c, d, e, and f for non-uniform processing contents are input to the Web system 2.
  • Each of the processing requests a, b, c, d, e, and f is distributed to the respective processes (dotted lines D1a to D3c) of the Web servers SV1 to SV3 by the dispersing machine DP1.
  • a request for uniform processing content is input to each of the queues 13aa, 13ab, 13ba, 13bb, 13ca, 13cb, and 13cc.
  • Each of the data processing units 14aa, 14ab, 14ba, 14bb, 14ca, 14cb, and 14cc processes requests for uniform processing contents.
  • the data processing structure shown in FIG. 8 can be considered to include the queue 11a and the data processing unit 12a shown in FIG. 5 for each process.
  • FIG. 9 is a diagram showing a third example of the data processing structure of the Web system 2.
  • the Web system 2 includes a plurality of queues 15a, 15b, and 15c, and a plurality of data processing units 16aa, 16ab, 16ba, 16bb, 16ca, 16cb, and 16cc.
  • the Web system 2 having the data processing structure shown in FIG. 9 is realized by, for example, one or more Web servers.
  • the Web system 2 is realized by Web servers SV1 to SV3.
  • a set of one queue and a plurality of data processing units shown in FIG. 9 is provided corresponding to a process executed by the Web system 2 (Web server constituting the Web system 2).
  • one queue 15a and two data processing units 16aa and 16ab shown in a dotted frame D1 in FIG. 9 are provided corresponding to a certain process P1.
  • One queue 15b and two data processing units 16ba and 16bb indicated by a dotted line D2 are provided corresponding to a certain process P2.
  • One queue 15c and three data processing units 16ca, 16cb, 16cc indicated by a dotted line frame D3 are provided corresponding to a certain process P3.
  • a request for uneven processing content is temporarily stored in a queue provided corresponding to a process.
  • a request for uniform processing content is input to each of the plurality of data processing units 12c provided corresponding to each process.
  • requests a and b for non-uniform processing contents are temporarily stored in the queue 15a of the dotted line D1 provided corresponding to the process P1. Then, only the processing request a is input to the data processing unit 16aa of the dotted line frame D1, and only the processing request b is input to the data processing unit 16ab. That is, a single processing request a, b is input to each of the two data processing units 16aa, 16ab indicated by the dotted frame D1, and uniform processing is performed.
  • FIG. 10 is a diagram showing a fourth example of the data processing structure of the Web system 2.
  • the Web system 2 includes a plurality of queues 17a, 17b, 17ca, 17cb, a plurality of data processing units 18a, 18b, 18ca, 18cb, and a disperser DP2.
  • the Web system 2 having the data processing structure shown in FIG. 10 is realized by, for example, one or more Web servers.
  • the Web system 2 is realized by Web servers SV1, SV2, SV3a, and SV3b.
  • a set of one queue and one data processing unit shown in FIG. 10 is provided corresponding to a process executed by the Web system 2 (Web server configuring the Web system 2).
  • one queue 17a and one data processing unit 18a indicated by a dotted frame D1 in FIG. 10 are provided corresponding to a certain process P1.
  • One queue 17b and one data processing unit 18b indicated by a dotted line frame D2 are provided corresponding to a certain process P2.
  • One queue 17ca and one data processing unit 18ca indicated by the dotted frame D3a are provided corresponding to a certain process P3.
  • One queue 17cb and one data processing unit 18cb indicated by a dotted line frame D3b are provided corresponding to a certain process P3.
  • a request for non-uniform processing content is input to the Web system 2.
  • the requests for the input non-uniform processing contents are distributed non-uniformly by the disperser DP2 and output to the queues 17a, 17b, 17ca, 17cb of the dotted line frames D1 to D3b. To do.
  • requests a, b, c, d, e, and f for non-uniform processing contents are input to the Web system 2.
  • Requests a, b, c, d, e, and f for non-uniform processing contents are distributed by the disperser DP2, and the processing requests a and b are output to the queue 17a of the Web server SV1. That is, requests a and b for non-uniform processing contents are input to the queue 17a.
  • the data processing unit 18a processes the requests a and b for non-uniform processing contents.
  • requests c and d for non-uniform processing contents are output to the queue 17b of the Web server SV2. That is, requests c and d for non-uniform processing contents are input to the queue 17a. Then, the data processing unit 18a processes the requests c and d for non-uniform processing contents.
  • requests e, f, and g for non-uniform processing contents are output to the queue 17ca of the Web server SV3a. That is, requests e, f, and g for non-uniform processing contents are input to the queue 17ca. Then, the data processing unit 18ca processes the requests e, f, and g for non-uniform processing contents.
  • requests e, f, and g for non-uniform processing contents are output to the queue 17cb of the Web server SV3b. That is, requests e, f, and g for non-uniform processing contents are input to the queue 17cb. Then, the data processing unit 18cb processes the requests e, f, and g for the non-uniform processing contents.
  • requests e, f, and g for non-uniform processing contents are processed by two Web servers SV3a and SV3b that execute the process P3.
  • the data processing structure of the Web system 2 can be generally classified into four data processing structures. [Description of Calculation of Flow Control Parameter According to Data Processing Structure of Web System 2]
  • FIG. 11 is a diagram illustrating an example of functional blocks of the information processing apparatus 1.
  • the information processing apparatus 1 includes a reception unit 21, an extraction unit 22, a coefficient calculation unit 23, a parameter calculation unit 24, a transmission unit 25, and a storage unit 26.
  • the receiving unit 21 receives, for example, a tuning policy parameter related to the Web system 2 from an administrator who manages the Web system 2 via the terminal device. For example, the receiving unit 21 receives a load amount assumed for the Web system 2. The receiving unit 21 receives operation data (log data) from the Web system 2. Further, the receiving unit 21 receives the flow control parameter currently set in the Web system 2 from the Web system 2.
  • a tuning policy parameter related to the Web system 2 from an administrator who manages the Web system 2 via the terminal device. For example, the receiving unit 21 receives a load amount assumed for the Web system 2.
  • the receiving unit 21 receives operation data (log data) from the Web system 2. Further, the receiving unit 21 receives the flow control parameter currently set in the Web system 2 from the Web system 2.
  • FIG. 12 is a diagram showing an example of operation data of the Web system 2. On the right side of the operation data 31 in FIG. 12, a column describing the operation data 31 is shown.
  • the operation data 31 includes a reception time when the Web system 2 receives a processing request from the terminal device 3. Further, the operation data 31 includes an end time at which the Web system 2 processed the processing request and transmitted the response data to the terminal device 3. Further, the operation data 31 includes information on a process in which the Web system 2 has processed the processing request.
  • the format conforms to “Extended Log File Format” established by The World, Wide, Web, and Consortium. There may be.
  • “Hitachi web Server”, a Hitachi product has been expanded to display not only the time (% T) required for request processing but also the time (% t) when request processing was started up to milliseconds. Applicable.
  • the extraction unit 22 extracts an average value of the internal hold time required for the data processing of the processing request of the Web system 2 for each internal hold request number from the operation data received by the receiving unit 21. That is, the extraction unit 22 extracts the internal suspension time of the Web system 2 with respect to the load amount of the Web system 2 from the operation data of the Web system 2. Note that the extraction unit 22 extracts temporary information from the received operational data of the Web system 2 and extracts the internal hold time of the Web system 2 with respect to the load amount of the Web system 2 from the extracted temporary information.
  • FIG. 13 is a diagram for explaining extraction of temporary information.
  • the extraction unit 22 extracts temporary information illustrated in FIG. 13 from the received operation data of the Web system 2.
  • the temporary information includes reception time 32a, end time 32b, internal hold time 32c, HTTP request contents (http_method32d, http_uri32e, and http_query_string32f), and process identification information (http_riGroupName32g, http32 , The number of internal pending requests 32l per processing identifier and the number of internal pending requests 32m per process are included.
  • the extraction unit 22 extracts, from the operation data of the Web system 2 received by the reception unit 21, a reception time 32a when the Web system 2 receives the URL and an end time 32b when the URL data processing is completed.
  • the extraction unit 22 calculates the internal hold time 32c of the URL from the extracted reception time 32a and end time 32b.
  • the extraction unit 22 extracts http_method 32d, http_uri 32e, and http_query_string 32f from the operation data of the Web system 2 received by the reception unit 21.
  • http_method 32d indicates the nature of the HTTP request.
  • http_uri32e indicates a URL.
  • http_query_string 32f indicates a query string.
  • the extraction unit 22 extracts the http_uriGroupName 32g from the http_uri32e extracted from the operation data based on a predetermined rule described below. Even if the http_uri 32e has the same processing content, unique information may be added. The extraction unit 22 removes the unique information, and the http_uri 32g indicating the same processing content has the same processing identification information. Extract 32 g of http_uriGroupName. That is, the extraction unit 22 assigns the same process identification information to URLs having the same process content.
  • the extraction unit 22 extracts the http_queryID 32h from the http_query_string 32f extracted from the operation data based on a predetermined rule described below. Even if the http_query_string 32f has the same processing content, unique information may be added. The extraction unit 22 removes the unique information, and the http_query_string 32f indicating the same processing content has the same processing identification information. As shown, http_queryID 32h is extracted. That is, the extraction unit 22 assigns the same process identification information to query strings having the same process content.
  • the types of processing requests are divided into several types by giving the same processing identification information to processing requests having the same processing content. For example, if the operation data 31 shown in FIG. 12 is distinguished as it is (as viewed as raw data), there are thousands to tens of thousands of types. Based on a predetermined rule, the same processing identification information is assigned to URLs that are processed in the same manner, and the same processing identification information is assigned to query strings that are processed in the same manner. For example, the number is reduced to several tens to several hundreds.
  • the extraction unit 22 extracts http_status 32i from the operation data.
  • http_status32i is an http status code.
  • the extraction unit 22 extracts remote_addr32j from the operation data based on a predetermined rule described below.
  • the remote_addr 32j is an identifier of the Web server that configures the Web system 2.
  • the extraction unit 22 extracts http_port32k from the operation data.
  • http_port 32k is a remote port of http.
  • the extraction unit 22 extracts the number of internal pending requests 32l in units of process identifiers from the operation data.
  • the process identifier is indicated by http_uriGroupName32g and http_queryID32h. That is, the http_uriGroupName 32g and the http_query ID 32h are set as one piece of information, and the processing identifiers are different when the contents are different. That is, the types of processing requests are classified according to http_uriGroupName32g and http_queryID32h.
  • the extraction unit 22 refers to the reception time 32a and the end time 32b in the information unit (processing identifier unit) indicated by the http_uriGroupName 32g and the http_queryID 32h, and checks the processing multiplex number (internal pending request number) in the processing identifier unit. The number of internal pending requests 32l in units of process identifiers is extracted.
  • the extraction unit 22 extracts the number 32l of internal pending requests for each process from the operation data.
  • the process is indicated by remote_addr32j and remote_port32k. That is, remote_addr 32j and remote_port 32k are set as one piece of information, and if the contents are different, the process for processing the processing request is also different.
  • the extraction unit 22 refers to the reception time 32a and the end time 32b in the information unit (process unit) indicated by remote_addr32j and remote_port32k, and checks the process multiplex number (internal pending request number) in the process unit. The number 32l of internal pending requests is extracted.
  • FIG. 14 is a diagram for explaining a predetermined rule.
  • a column 33a in FIG. 14 shows extraction designation parameters for designating an information extraction method.
  • the column 33b describes the extraction designation parameter.
  • the extraction unit 22 generates the above-described http_uriGroupName 32g from the operation data, for example, given the extraction designation parameter in the column 33a. Thereby, the extraction part 22 can give the same process identification information to URL which shows the same process content. The same applies to http_queryID 32h.
  • the Web servers SV3a and SV3b process the same processing request. Accordingly, the extraction designation parameter is set so that the same identifier is assigned to the Web servers SV3a and SV3b. That is, the processes executed by the Web servers SV3a and SV3b have the same process unit identification information (remote_addr32j and remote_port32k).
  • FIG. 15 is a diagram for explaining the number of URL internal pending requests. Here, an example of how to count the number of internal pending requests in URL units will be described.
  • the start point of the arrow corresponds to the URL reception time 32a
  • the end point corresponds to the URL processing end time 32b.
  • a URL is counted as a multiplex when the process does not overlap with any other URL. Further, the maximum multiplexing number is adopted as the URL multiplexing number, and the adopted multiplexing number is set as the number of internal pending requests.
  • the number of internal pending requests for URL1 to URL5 is “1”.
  • the number of internal pending requests for URL1 is “2”.
  • the number of internal pending requests for URL2 is “3”.
  • the number of internal pending requests for URL3 is “3”.
  • the number of internal pending requests for URL4 is “2”.
  • the number of internal pending requests for URL 5 is “3”.
  • the extraction unit 22 extracts the number 32l of internal pending requests in URL units with different processes. Note that the method of extracting the number 32l of internal pending requests in units of process identifiers and the number of 32m of internal pending requests in units of processes described in FIG. 13 are the same as described above.
  • the extraction unit 22 counts the maximum value of URLs collected from the operation data and overlaps the period from the start time to the end time for each URL, and sets the number of quests at the time of internal suspension. Can also extract the number of quests at the time of internal hold. For example, the extraction unit 22 may calculate the average number of internal pending requests by dividing the total running time of URLs in which the period from the start time to the end time for each URL overlaps by the processing time of each URL.
  • the number of internal pending requests is calculated by simulating the number of resources managed by the flow control parameters (maximum number of concurrent executions and queue length) in the data processing structure of the Web system 2 to be applied. To do. Therefore, if the processing of another request data whose reception time is later than the reception time of the request data can be completed earlier, the number of internal pending requests is calculated as a request temporarily stored in an independent queue.
  • the clock of each Web server may not display the same time, so the exact number of quests at the time of internal suspension is extracted from the operating data of the Web server that may have different clocks. In order to do this, it is necessary to sequentially process each Web server.
  • the extraction unit 22 temporarily extracts temporary information from the request data of the operation data, matches it with the request data that has been running in a period in which the period from the start time to the end time of the request data overlaps, In the Web system 2, the number of internal pending requests for each process during the running period of request data and the number of internal pending quests for each processing identifier are calculated, and the data shown in FIG. Record.
  • FIG. 13 is a diagram illustrating a data configuration example showing a first extraction result in the extraction unit 22.
  • “http_status32i” included in the process identification information sequence in FIG. 13 is a record in which an internal suspension time not controlled by the flow control parameter is recorded, such as “error response time”, May be removed in stages.
  • the combination of “remote_addr32j” and “remote_port32k” among the columns included in the process identification information sequence in FIG. 13 is particularly “process unit identification information”.
  • Other column combinations are used to generate a “process identifier” in accordance with the process identifier extraction condition given as a tuning policy parameter.
  • the data of the number of records corresponding to the request data of the operation data shown in FIG. 13 is a combination of “process unit identification information” and “internal pending request count 32 m per process”, “processing identifier” and “ For each combination of “the number of internal pending requests in units of process identifiers”, the average value of internal pending times is totaled to obtain data having the structure shown in FIG.
  • the regression analysis information shown in FIG. 16 is extracted from the temporary information shown in FIG. 13 and stored in the storage unit 26 by the processing constituting the extraction unit 22.
  • the 16 includes identification information for each process and identification information for each processing identifier.
  • the process unit identification information 34a corresponds to the remote_addr 32j and the remote_port 32k shown in FIG.
  • the process identifier unit identification information 34a corresponds to the http_uriGroupName 32g and the http_query ID 32h shown in FIG.
  • the identification information 34a in a process unit row may be referred to as a process identifier.
  • the average value 34c of the internal hold time for each internal hold request number indicates the average value of the internal hold time of the Web system 2 with respect to the number of internal hold requests (load amount). For example, in the example of FIG. 16, the average value of the internal hold time of the process indicated by the arrow A21 is “0.347” when the number of internal hold requests is “2”. Further, when the number of internal pending requests is “3”, it is “0.426”.
  • the average value of the internal hold time of the process identifier indicated by the arrow A23 is “16.674” when the number of internal hold requests is “2”. Further, when the number of internal pending requests is “3”, it is “27.518”.
  • the blank in FIG. 16 indicates that there is no corresponding internal pending request count in the operational data received from the Web system 2 (for example, the internal pending request count occurs in the range of operational data received from the Web system 2). Did not).
  • data not used as information for regression analysis may be excluded from the data recorded in FIG. 16 according to the conditions given as tuning policy parameters.
  • the average internal pending time when the number of internal pending requests is 1 or less, and the average internal pending time of the number of internal pending requests equal to the maximum number of simultaneous executions when operating data is collected are information for regression analysis Data that is not used as may be excluded.
  • the coefficient calculation unit 23 calculates the coefficient of the approximate expression based on the approximate expression corresponding to the data processing structure of the Web system 2 and the regression analysis information extracted by the extraction unit 22.
  • the coefficient calculation unit 23 calculates a temporary coefficient using the expression (1) when the number of internal pending requests is smaller than the maximum number of simultaneous executions as an approximate expression, and based on the calculated temporary coefficient, the data processing structure of the Web system 2 Select an approximate expression according to.
  • the provisional coefficient of the approximate expression and the calculation of the coefficient will be described in detail below using a flowchart.
  • the parameter calculation unit 24 calculates the new maximum number of simultaneous executions and the maximum queue length of the Web system 2 from the approximate expression in which the coefficient is calculated by the coefficient calculation unit 23. The calculation of the new maximum number of simultaneous executions and the maximum queue length of the Web system 2 will be described in detail below using a flowchart.
  • the transmission unit 25 transmits the maximum number of simultaneous executions and the maximum queue length calculated by the parameter calculation unit 24 to the Web system 2 (Web servers 2a and 2b configuring the Web system 2).
  • the storage unit 26 stores the information for regression analysis described above.
  • FIG. 17 is a flowchart showing an operation example of the information processing apparatus 1.
  • the flowchart shown in FIG. 17 is executed, for example, in response to a start instruction from an administrator who manages the Web system 2.
  • the receiving unit 21 receives a tuning policy parameter of the Web system 2 from an administrator of the Web system 2 (Step S21).
  • the tuning policy parameter of the Web system 2 includes, for example, an internal hold time “y Limit ” allowed in the Web system 2.
  • the receiving unit 21 receives the operation data and the flow rate control parameter currently set in the Web system 2 from the Web system 2 (step S22).
  • the extraction unit 22 extracts temporary information based on the operation data received from the Web system 2 (step S23). For example, the extraction unit 22 extracts temporary information as shown in FIG. 13 based on the extraction designation parameter shown in FIG.
  • the extraction unit 22 extracts information for regression analysis from the temporary information extracted from the operation data (step S24). For example, the extraction unit 22 extracts information for regression analysis as shown in FIG.
  • the coefficient calculation unit 23 obtains the maximum number of simultaneous executions “M” at the time of operation data collection in the regression analysis information shown in FIG. 16 extracted by the extraction unit 22.
  • the temporary coefficient “p, q” of the provisional approximate expression 34b of FIG. 16 is calculated from the average internal suspension time with respect to the number of internal suspension requests “L” in process units less than “” by regression analysis using Expression (1) as an approximate expression. (Step S25).
  • the denominator (the coefficient “w j ” of equation (22)) of the exponential part 34b of the process unit indicated by arrows A21 to A22 shown in FIG. 16 and the process identifiers indicated by arrows A23 to A30 shown in FIG.
  • the denominator of the exponent part of the unit approximate expression 34b (coefficient “b i ” in Expression (20)) is substantially the same value.
  • the denominator of the exponent part of the provisional approximate expression 34b of arrows A23 to A25, A27, A28 in FIG. 16 is the denominator of the exponent part of the provisional approximation expression 34b of the process identifier in the same process “WebAPSv01; 8009”. (In FIG. 16, the denominator of the exponent part of the provisional approximate expression 34b of the arrows A23 to A25, A27, A28 is not substantially the same value). Also, the denominator of the exponent part of the provisional approximate expression 34b of arrows A26, A29, A30 in FIG.
  • the denominator of the exponent part of the provisional approximate expression 34b in FIG. It takes a different value for each process identifier in the process.
  • the denominator of the exponent part of the provisional approximate expression 34b indicated by the arrows A21 to A30 has different values. This is because in the data processing structures shown in FIGS. 9 and 10, requests for non-uniform processing contents are input for each process.
  • the approximate expressions (24) and (25) corresponding to the data processing structures of FIGS. 9 and 10 include a constant for each process identifier “i” and a constant for each process “j”. This is because non-uniform processing identifier unit processing requests are input to the queue for each process. That is, in the data processing structure shown in FIG. 9 and FIG. 10, the internal hold time of a process request with a certain process identifier “i” depends on the internal hold time of a process request with a process identifier other than itself.
  • the internal hold time “y 2 ” of the process request with the process identifier “b” depends on the internal hold time “y 1 ” of the process request with the process identifier “a”. Specifically, if the internal hold time of the process identifier “a” is short, data processing of the process request of the process identifier “b” starts earlier, and the internal hold time of the process request of the process identifier “b” becomes short.
  • the internal hold time of the process request with the process identifier “a” is long, the data processing start time of the process request with the process identifier “b” is delayed, and the internal hold time of the process request with the process identifier “b” is long. .
  • Equation (25) the coefficients “v j ” and “w j ” for each process “j” in consideration of the average dependence of all process identifiers other than itself are introduced into the equation (25), and the equation (21) ),
  • the coefficient “r i ” for each processing identifier “i” in Expression (25) that has a different value from the coefficient “r i ” for each processing identifier “i” in FIG. ) And Equation (25) are calculated as values that intersect.
  • the formula coefficient "v j", "w j" of the coefficient of processing each identifier "i", “r i” and the process identifier "i” belongs to process each "j" (25), the process other than its own
  • the identifier processing request reflects a structure that interferes with its own internal hold time to be calculated.
  • the coefficient calculation unit 23 calculates an approximate coefficient according to the data processing structure of the Web system 2 based on the temporary coefficient calculated in step S25.
  • the parameter calculation part 24 calculates a flow control parameter from the calculated coefficient (step S26).
  • the transmission unit 25 transmits the new flow rate control parameter calculated by the parameter calculation unit 24 to the Web system 2 (step S27).
  • FIG. 18 is a flowchart showing an operation example of the coefficient calculation unit 23 and the parameter calculation unit 24.
  • the flowchart in FIG. 18 shows a detailed operation example of step S26 in FIG.
  • the coefficient calculation unit 23 determines whether or not the coefficient of the provisional approximate expression 34b (denominator of the exponent part) for each process and the coefficient of the provisional approximation expression 34b (denominator of the exponent part) for each process identifier are substantially the same. (Step S31). For example, the coefficient calculation unit 23 determines whether or not the values obtained by rounding up the denominator of the exponent part of the provisional approximate expression 34b indicated by arrows A21 to A30 in FIG. If the coefficient calculating unit 23 determines that the coefficient of the temporary approximate expression 34b for each process and the coefficient of the temporary approximate expression 34b for each process identifier are substantially the same, the process proceeds to step S32.
  • step S34 determines that the coefficient of the temporary approximate expression 34b for each process and the coefficient of the temporary approximate expression 34b for each process identifier are not substantially the same. Note that whether or not the plurality of values are substantially the same (whether or not they are similar values) is, for example, that an average value of a plurality of values is calculated, and the difference between each of the plurality of values and the average value is If within a predetermined range, a plurality of values are determined to be substantially the same, such as a condition given as one of tuning policy parameters or a customizable logic.
  • step S31 the coefficient calculation unit 23 determines that the coefficient of the temporary approximate expression 34b for each process and the coefficient of the temporary approximate expression 34b for each process identifier are substantially the same (“Yes” in step S31).
  • the coefficients “a i ” and “b i ” of the approximate expression (20) corresponding to the data processing structure of FIG. 5 are calculated by regression analysis (step S32).
  • the coefficient of the provisional approximate expression 34b for each process identifier and the coefficient of the provisional approximate expression 34b for each process are substantially the same.
  • the coefficients “a i ” and “b i ” are obtained at the stage of calculating the coefficients of the provisional approximate expression 34b indicated by arrows A23 to A30 in FIG.
  • the parameter calculation unit 24 substitutes the maximum simultaneous execution number “M” calculated in step S33 into the equation (21), and the Web system 2 is input as one of the tuning policy parameters in step S21 of FIG.
  • the number of internal hold requests “L” that does not exceed the allowable internal hold time “y Limit ” is obtained by simulation.
  • step S33 the parameter calculation unit 24 substitutes several “L” values into the equation (21) as shown in the graph of FIG. 22 so as not to exceed the internal hold time “y Limit ”.
  • the number of internal pending requests “L Limit ” is obtained.
  • the parameter calculation unit 24 calculates the maximum queue length (QueueSize) by (L Limit -M). If (L Limit -M) becomes 0 or less, the maximum queue length (QueueSize) is 0, and the maximum number of concurrent executions “M” is replaced with the value of “L Limit ”.
  • step S33 the flow control parameter “M, QueueSize” in FIG. 5 is obtained.
  • the flow control parameter of one value is reflected in the entire Web system 2.
  • step S31 the coefficient calculation unit 23 determines that the coefficient of the temporary approximate expression 34b for each process and the coefficient of the temporary approximate expression 34b for each process identifier are not substantially the same (“No” in step S31). If), it is determined whether or not the temporary coefficient for each processing identifier is substantially the same in the same process (step S34). For example, the coefficient calculation unit 23 determines whether or not the values obtained by rounding up the denominator of the exponent part of the provisional approximation equation 34b indicated by arrows A23 to A30 in FIG. 16 to an integer value are substantially the same in the same process. .
  • the coefficient calculation unit 23 performs the process “WebAPSv01; 8009” indicated by arrows A23 to A25, A27, and A28 of FIG. 16 according to the similarity determination condition for each processing identifier given as one of the tuning policy parameters. It is determined whether or not the value obtained by rounding up the denominator of the exponent part of the provisional approximate expression 34b to an integer value is substantially the same value, and the process “WebAPSv02; 8008” indicated by arrows A26, A29, and A30 in FIG. It is determined whether or not the value obtained by rounding up the denominator of the exponent part of the provisional approximate expression 34b to an integer value is substantially the same value.
  • the coefficient calculation unit 23 determines that the coefficients of the provisional approximate expression 34b for each process identifier are substantially the same in the same process, the coefficient calculation unit 23 proceeds to the process of step S35. If the coefficient calculation unit 23 determines that the coefficients of the provisional approximate expression 34b for each process identifier are not substantially the same in the same process, the coefficient calculation unit 23 proceeds to the process of step S37.
  • step S34 the coefficient calculation unit 23 determines that the coefficient “bi” of the temporary approximate expression 34b for each process identifier “i” is substantially the same in the same process “j” to which the process identifier “i” belongs.
  • step S35 coefficients of the approximate expression (22) and the approximate expression (23) corresponding to the data processing structure in FIG. 5 are calculated.
  • the approximate expression (22) is the temporary expression used in the preceding step S25. Since it has the same shape as the approximate expression (1), the coefficients “v j ” and “w j ” are obtained at the calculation stage of the coefficients of the provisional approximate expression 34b indicated by arrows A21 and A22 in FIG.
  • the coefficient “p” of the constant term of the temporary approximate expression 34b is obtained at the stage of calculating the coefficient of the temporary approximate expression 34b indicated by arrows A21 and A22 in FIG. 16, and the coefficient “v j ” in the approximate expression (22) is obtained. Then, the coefficient “q” of the exponent partial mother of the temporary approximate expression 34b is assigned as the coefficient “w j ” in the approximate expression (22).
  • the parameter calculation unit 24 substitutes the coefficient calculated up to step S35 into the equation (23), and calculates a new flow rate control parameter according to the data processing structure of FIG. 8 (step S36).
  • the parameter calculation unit 24 uses the coefficients “v j , w j ” calculated in step S25, the coefficient “r” calculated in step S35, and one of the tuning policy parameters in step S21 in FIG. As shown in the graph of G12 in FIG. 4, some “M” values are substituted into the formula (23), and the internal holding time is substituted. The value of “M” that minimizes “y” is adopted as the improvement value of the maximum number of simultaneous executions “M j ”.
  • the parameter calculation unit 24 fixes “M” in the equation (23) with the value of the maximum number of simultaneous executions “M j ” calculated in Step S36, and sets it as one of the tuning policy parameters in Step S21 of FIG.
  • the number of internal pending requests “L j ” that does not exceed the allowable internal pending time “y Limit ” in the input process “j” is obtained by simulation.
  • step S36 the parameter calculation unit 24 substitutes several “L” values into the equation (23) as shown in the graph of FIG. 22 so as not to exceed the internal hold time “y Limit ”.
  • the number of internal pending requests “L j ” is obtained.
  • the parameter calculation unit 24 calculates the maximum queue length (QueueSize J ) from (L j ⁇ M j ). If (L j -M) becomes 0 or less, the maximum queue length (QueueSize J ) is 0, and the maximum number of concurrent executions “M j ” is replaced with the value of “L j ”.
  • step S36 the flow rate control parameter “M j , QueueSize J ” for each process “j” in FIG. 8 is obtained.
  • a flow control parameter having a value that can be different for each process is reflected in the Web system 2.
  • step S34 determines in step S34 that the coefficients of the provisional approximate expression 34b for each process identifier are not substantially the same in the same process (in the case of “No” in step S34), step S22 in FIG. In step S37, it is determined whether the type of the flow control parameter of the Web system 2 received in step 1 is only for each process.
  • step S34 the coefficient calculation unit 23 determines that the coefficients of the provisional approximate expression 34b for each process identifier are not substantially the same in the same process.
  • the data processing structure of the Web system 2 is a process.
  • a request for non-uniform processing content is input to (queue). That is, the Web system 2 has the data processing structure of either FIG. 9 or FIG.
  • the coefficient calculation unit 23 determines whether or not the type of the flow control parameter of the Web system 2 received in step S22 of FIG. 17 exists only for each process, whereby the data processing structure of the Web system 2 is changed to FIG. Whether the data processing structure of FIG. 10 or the data processing structure of FIG. If the coefficient calculation unit 23 determines that the type of the flow control parameter of the Web system 2 received in step S22 of FIG. 17 is only for each process, the coefficient calculation unit 23 proceeds to the process of step S38. When the coefficient calculation unit 23 determines that the type of the flow rate control parameter of the Web system 2 received in step S22 of FIG. 17 is not only for each process, the coefficient calculation unit 23 proceeds to the process of step S40.
  • FIG. 9 there are a flow rate control parameter for each type of process and a flow rate control parameter for each type of process identifier.
  • a flow rate control parameter (1) for the entire dotted frame D1 (process P1) and a flow rate control parameter (2) for each of the processing requests (processing identifiers) a and b.
  • step S38 the data of FIG.
  • a coefficient “r i ” for each processing identifier “i” is calculated.
  • the approximate expression (24) is the temporary expression used in the preceding step S25. Since it has the same form as the approximate expression (1), the coefficients “a i ” and “b i ” for each processing identifier “ i ” are obtained at the coefficient calculation stage of the provisional approximate expression 34b shown by arrows A23 to A30 in FIG. ing.
  • the parameter calculation unit 24 substitutes the coefficient calculated up to step S38 into the equation (25), and calculates a new flow control parameter according to the data processing structure of FIG. 10 (step S39).
  • the parameter calculation step S39 includes “a i , b i , v j , w j ” calculated in step S25, the coefficient “r i ” calculated in step S38, and one of the tuning policy parameters.
  • the assumed load amount “L” to be given is substituted into equation (25), and several “M” values are substituted into equation (25) as shown in the graph of G12 in FIG.
  • the value of “M” that minimizes “” is adopted as the improvement value of the maximum number of simultaneous executions “M j ”.
  • the parameter calculation unit 24 fixes “M” in the equation (23) with the value of the maximum number of simultaneous executions “M i ” calculated in step S39, and sets it as one of the tuning policy parameters in step S21 of FIG.
  • the number of internal hold requests “L i ” that does not exceed the internal hold time “y Limit ” allowed by the process “j” to which the input process identifier “i” belongs is obtained by simulation.
  • step S39 the parameter calculation unit 24 substitutes some “L” values into the equation (23) as shown in the graph of FIG. 22 so as not to exceed the internal hold time “y Limit ”.
  • the number of internal pending requests “L i ” is obtained.
  • the parameter calculation unit 24 calculates the maximum queue length (QueueSize i ) from (L i ⁇ M i ). If (L i ⁇ M i ) becomes 0 or less, the maximum queue length (QueueSize i ) is 0, and the maximum number of concurrent executions “M i ” is the value of “L i ”, and is replaced again.
  • the parameter calculation unit 24 calculates a weighted average of the maximum number of simultaneous executions “M i ” for the process identifier “i” belonging to the process “j”, and calculates the calculated weighted average in the process “j”. Adopted as the maximum number of concurrent executions “M j ”. Further, the parameter calculation unit 24 calculates a weighted average of the maximum queue length (QueueSize i ) for the process identifier “i” belonging to the process “j”, and calculates the calculated weighted average to the maximum queue length (QueueSize) of the process “j”. j ) is adopted.
  • the “weighting coefficient for the improvement value for each processing identifier” is input directly or indirectly as one of the tuning policy parameters, or incorporated as customizable logic in the processing device.
  • the input operation may be saved.
  • step S40 the data of FIG.
  • the approximate expression (24) is the temporary expression used in the preceding step S25. Since it has the same form as the approximate expression (1), the coefficients “a i ” and “b i ” for each processing identifier “ i ” are obtained at the coefficient calculation stage of the provisional approximate expression 34b shown by arrows A23 to A30 in FIG. ing.
  • the parameter calculation unit 24 substitutes the coefficient calculated up to step S40 into the equation (25), and calculates a new flow control parameter according to the data processing structure of FIG. 9 (step S41).
  • the parameter calculator 24 calculates the coefficients “a i , b i , v j , w j ” calculated in step S25, the coefficient “r i ” calculated in step S40, and step S21 in FIG.
  • the assumed load amount “L” input as one of the tuning policy parameters in FIG. 4 is substituted into Expression (25), and as shown in the graph of G12 in FIG. )
  • the value of “M” that minimizes the internal holding time “y” is adopted as the improvement value of the maximum number of simultaneous executions “M i ”.
  • the parameter calculation unit 24 fixes “M” in the equation (25) with the value of the maximum number of simultaneous executions “M i ” calculated in step S41, and sets it as one of the tuning policy parameters in step S21 of FIG.
  • the number of internal pending requests “L i ” that does not exceed the internal pending time “y Limit ” allowed by the input process identifier “i” is obtained by simulation.
  • step S41 the parameter calculation unit 24 substitutes several “L” values into the equation (23) as shown in the graph of FIG. 22 so as not to exceed the internal hold time “y Limit ”.
  • the number of internal pending requests “L i ” is obtained.
  • the parameter calculation unit 24 calculates the maximum queue length (QueueSize i ) from (L i ⁇ M i ). If (L i ⁇ M i ) becomes 0 or less, the maximum queue length (QueueSize i ) is 0, and the maximum number of concurrent executions “M i ” is the value of “L i ”, and is replaced again.
  • the parameter calculation unit 24 sets the maximum value of the maximum number of simultaneous executions “M i ” for each processing identifier “i” belonging to the process “j” as the maximum number of simultaneous executions “M j ” in the process “j”. .
  • the parameter calculation unit 24 sets the maximum value of the maximum queue length (QueueSize i ) in the process identifier “i” belonging to the process “j” as the maximum queue length (QueueSize j ) in the process “j”.
  • the flow rate control parameter calculation procedure for the data processing structure in FIG. 9 and the flow rate control parameter calculation procedure for the data processing structure in FIG. 10 are the same in both the approximate expression to be applied and the flow rate control parameter calculation for each processing identifier. However, the process of fixing the weight for calculating the flow control parameter for each process from the flow control parameter for each process identifier to the maximum value is different.
  • the flow rate control parameter corresponding to the data processing structure of the Web system 2 can be calculated by the operation of the flowchart shown in FIG.
  • the flow rate control parameter is obtained by weighted averaging according to the condition given as one of the tuning policy parameters.
  • the following method is used as the weighted average method.
  • the generation ratio of the processing request with the processing identifier “i” is used as the weighting parameter.
  • the ratio of the total processing time for each processing identifier “i” is used as the weighting parameter.
  • the weighting parameter for the latest processing identifier “i” is set to “1”
  • the weighting parameters for other processing identifiers are set to “0”.
  • the weight parameter for the process identifier “i” having the longest total internal hold time in the operation data is “1”, and the weight parameter for other process identifiers is “0”.
  • the weight parameter for the minimum value of the new candidate value “M i ” of the maximum number of concurrent executions for the process identifier “i” is “1”, and the weight parameter for the other process identifiers is “0”.
  • the weight parameter for the maximum value of the new candidate value “M i ” of the maximum number of concurrent executions for the process identifier “i” is “1”, and the weight parameter for the other process identifiers is “0”.
  • the median of the new candidate value “M i ” for the maximum number of simultaneous executions is set as a new value for the maximum number of simultaneous executions.
  • the weighting parameter of the new candidate value “M i ” of the maximum number of simultaneous executions for the designated processing identifier “i” is set to 1, and the weighting parameters for the other processing identifiers are set to “0”.
  • Each processing unit in the flowchart described above is divided according to the main processing contents in order to make the processing of the information processing apparatus 1 easy to understand.
  • the present invention is not limited by the way of dividing the processing unit or the name.
  • the processing of the information processing apparatus 1 can be divided into more processing units according to the processing content. Moreover, it can also divide
  • FIG. 19 is a diagram illustrating an example of a hardware configuration that realizes the functions of the information processing apparatus 1.
  • the information processing apparatus 1 includes, for example, an arithmetic device 41 such as a CPU, a main storage device 42 such as a RAM (Random Access Memory), and an auxiliary storage device 43 such as an HDD (Hard Disk Drive) as shown in FIG.
  • a read / write device 47 for reading / writing information from / to a portable storage medium such as a disk).
  • the functions of the extraction unit 22, the coefficient calculation unit 23, and the parameter calculation unit 24 of the information processing apparatus 1 are such that the arithmetic unit 41 executes a predetermined program loaded from the auxiliary storage device 43 or the like to the main storage device 42. It is realized by doing.
  • the storage unit 26 is realized, for example, when the arithmetic device 41 uses the main storage device 42 or the auxiliary storage device 43.
  • the receiving unit 21 and the transmitting unit 25 are realized by the arithmetic device 41 using the communication I / F 64.
  • the predetermined program may be installed from, for example, a storage medium read by the read / write device 47, or may be installed from the network via the communication I / F 44.
  • the functions of the extraction unit 22, the coefficient calculation unit 23, and the parameter calculation unit 24 are, for example, a controller including an ASIC (Application Specific Specific Integrated Circuit) including an arithmetic device, a storage device, a drive circuit, and the like. You may implement
  • ASIC Application Specific Specific Integrated Circuit
  • the functional configuration of the information processing apparatus 1 described above is classified according to main processing contents in order to facilitate understanding of the configuration of the information processing apparatus 1.
  • the present invention is not limited by the way of classification and names of the constituent elements.
  • the configuration of the information processing apparatus 1 can be classified into more components depending on the processing content. Moreover, it can also classify
  • the information processing apparatus 1 calculates the temporary coefficient of the approximate expression when the internal pending request number “L” is smaller than the maximum number of simultaneous executions “M” from the operation data of the Web system 2, and the calculated temporary coefficient Based on the above, an approximate expression corresponding to the data processing structure of the Web system 2 is selected. Then, the information processing apparatus 1 calculates a coefficient of the selected approximate expression, and calculates a new flow control parameter of the Web system 2 from the approximate expression that has calculated the coefficient. Thereby, an appropriate flow control parameter according to the data processing structure of the Web system 2 can be calculated.
  • the information processing apparatus 1 calculates a new flow control parameter of the Web system 2 from the operation data of the Web system 2.
  • the information processing apparatus 1 starts from the data of the Web system 2 that does not include data dependent on the terminal device 3 and the Web system 2 (for example, between steps S1 to S4 and S9 to S11 in FIG. 2). 2 new flow control parameters are calculated.
  • the information processing apparatus 1 can calculate the flow control parameter with high accuracy according to the data processing structure of the Web system 2.
  • FIG. 20 is a diagram showing the relationship between the maximum number of concurrent executions and response time when a load is applied from the terminal device 3 to the Web system 2.
  • the graph shown by the solid line in FIG. 20 is a graph showing the relationship between the maximum number of concurrent executions of the Web system 2 and the response time when a load is applied from the terminal device 3 and the response time of the process is measured in the terminal device 3.
  • the graph shown by the dotted line in FIG. 20 shows the relationship between the maximum number of concurrent executions of the Web system 2 and the response time when the Web system 2 is directly loaded and the response time of the process is measured in the Web system 2. It is a graph.
  • the information processing apparatus 1 of the present invention uses the new flow rate of the Web system 2 from the start time and end time of the internal processing controlled by the flow rate control parameter in the operation data of the Web system 2. Since the control parameter is calculated, a highly accurate flow rate control parameter with few errors can be calculated.
  • the information processing apparatus 1 calculates the coefficient of the approximate expression corresponding to the data processing structure of the Web system 2 from the operation data of the Web system 2, and simulates the internal hold time after the flow control parameter change. Since the flow control parameters that reduce the internal holding time are adopted, there is no need to compare response times by repeating load input experiments that require a large amount of data input. Can be sought.
  • FIG. 21 is a diagram for explaining a tuning example of the flow rate control parameter.
  • FIG. 21 shows the relationship of the internal hold time with respect to the load amount in the slow process and the fast process.
  • FIG. 22 is a diagram for explaining the calculation of the maximum queue length based on the allowable waiting time.
  • FIG. 22 shows an example of the relationship between the internal pending time and the number of internal pending requests when the maximum number of concurrent executions is “10”.
  • the information processing apparatus 1 can calculate the flow control parameter even when there is an inflection point in the maximum number of simultaneous executions.
  • the average value of the internal pending time of the number of internal pending requests may not be used when calculating the temporary approximate expression.
  • the coefficient calculation unit 23 calculates the average of the diagonal lines in the square.
  • a temporary approximation expression indicated by an arrow A27 is calculated without using the value as data for regression analysis.
  • the coefficient calculation unit 23 may not calculate a provisional approximate expression for a small number of types of internal pending requests. For example, there are only five types of internal pending requests indicated by the hatched lines in FIG. In this case, the coefficient calculation unit 23 may not calculate the provisional approximate expression of the row indicated by the arrow A28 even though the number of internal pending requests is less than the threshold given as one of the tuning policy parameters. .
  • FIG. 23 is a graph of the average value of the internal hold time with respect to the number of internal hold requests. When the average value of the internal hold time with respect to the number of internal hold requests is graphed, for example, FIG. 23 is obtained.
  • the coefficient calculation unit 23 may calculate a provisional approximate expression by excluding the average value for the number of internal pending requests “5” and “11” indicated by the arrows A51a and 51b.
  • an inflection point exists in the number of internal pending requests “2”.
  • the coefficient calculation unit 23 uses the number of internal pending requests at the inflection point as a lower limit value for calculating a provisional approximate expression again, and approximates again.
  • An equation may be calculated.
  • the coefficient calculation unit 23 calculates a provisional approximate expression using an average value of the number of internal pending requests “2” or more (excluding the average value of the number of internal pending requests “1” in FIG. Calculate a provisional approximation).
  • the receiving unit 21 receives the operation data from the Web system 2.
  • the operation data of the Web system 2 is stored in a storage medium such as a CD-ROM, and the read / write device 47 stores the operation data in the storage medium.
  • the stored operation data may be received (input).
  • the receiving unit 21 receives the flow control parameter currently set in the Web system 2 from the Web system 2, but the flow control parameter currently set in the Web system 2 from the administrator of the Web system 2. May be accepted.
  • the transmission unit 25 transmits the newly calculated flow rate control parameter to the Web system 2.
  • the transmission unit 25 may display the parameter on the display of the terminal device.
  • an administrator who manages the Web system 2 may set the flow rate control parameter displayed on the display in the Web system 2.
  • the information processing apparatus 1 receives the operation data and the flow rate control parameter currently set in the Web system 2 from the Web system 2, but the administrator of the Web system 2 inputs the information to the information processing apparatus 1. You may do it.
  • the administrator of the Web system 2 may store the operation data of the Web system 2 in a storage medium such as a CD-ROM and allow the information processing apparatus 1 to read the CD-ROM.
  • the transmission unit 25 transmits the flow rate control parameter calculated by the parameter calculation unit 24 to the Web system 2, but the administrator of the Web system 2 sends the flow rate control parameter calculated by the parameter calculation unit 24 to the Web system 2. It may be set in the system 2.
  • the tuning policy parameter may include the following information directly or indirectly, and may be incorporated as customizable logic in the processing apparatus to save input operation.
  • ⁇ Specification related to operation data input destination> ⁇ Means for selecting Web servers and processes to be processed among operational data in readable locations ⁇ Period to be analyzed among readable operational data (the processing end time recorded in the log record) Lower and upper)
  • ⁇ Processing identification information extraction specification parameter> -An information extraction rule (for example, applying a load balancer) that assigns process-specific process identifiers in regression analysis information from physical Web server identification information or process identification information from which operation data is collected A plurality of Web servers are regarded as one type of Web server, etc.) Conditions for extracting process identification information from operation data (33a in FIG.
  • a part of the process identification information is a condition that reflects the quantity such as the download data length recorded in the operation data log file in the process identifier (for example, the logarithm of the downloaded data length rounded up to two significant digits) Etc.)
  • ⁇ Specified contents regarding assumed load> Directly specify the value of L given by the approximate expression (f (M, L)) of the internal holding time.
  • the weight of the ratio of the total processing time for each average processing identifier “i” corresponding to the total travel time for each processing identifier “i” in the operating period of the collected data In the assumed internal pending request number “L” that prioritizes minimizing the slowest response time, the weight for the slowest process identifier “i” is 1 and the weight for the other process identifiers is 0. The weight for the process identifier “i” having the longest total internal hold time in the operation data is 1, and the weight for the other process identifiers is 0. Minimizing the processing time with the steepest slope
  • the processing value “M i ” of the maximum concurrent execution number setting value for the processing identifier “i” is set to 1 for the minimum value and 0 for the other processing identifiers.
  • the candidate for improvement value “M i ” of the maximum concurrent execution number setting value for the maximum processing identifier “i” of the number of internal pending requests is set to 1 for the maximum value and 0 for the other processing identifiers. (In particular, this option is available when there are multiple parameters that control the number of internal pending requests, such as the flow control parameter for each URL group and the flow control parameter for the entire process, as in the example of uCosminexus (registered trademark). Is also required)
  • the median of the improvement value candidates “M i ” of the median maximum concurrent execution number setting value is set as the improvement value of the maximum concurrent execution number setting value.
  • the exponent part value of the provisional approximate expression 34b is As a condition for determining whether or not “substantially the same”, the case where the difference between the values obtained by rounding up the reciprocal of the exponent part coefficient “bi” to an integer is considered to be uniform, or “bi” Conditions such as assuming that the difference in the ratio is within 10% is uniform.
  • the present invention can also be provided as a method for calculating a flow rate control parameter of the information processing apparatus 1, a program, and a storage medium storing the program.
  • 1 Information processing device 2 Web system, 2a, 2b Web server, 3 Terminal device, 4 Network, 11a-11d queue, 12a-12d data processing unit, 13 Distributed machine, 21 Receiving unit, 22 Extraction unit, 23 Coefficient calculation unit 24 parameter calculation unit, 25 transmission unit, 26 storage unit, 41 arithmetic unit, 42 main storage unit, 43 auxiliary storage unit, 44 communication I / F, 45 input unit, 46 display unit, 47 read / write device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 Webシステムのデータ処理構造に応じたパラメータを算出する。 抽出部22は、リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、キューの使用数とリクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、ウェブシステムのデータ処理に要した内部保留時間を抽出する。係数算出部23は、抽出部22によって抽出された内部保留リクエスト件数における内部保留時間に対して、ウェブシステムのデータ処理構造に応じた近似式を適用して、近似式の係数を算出する。パラメータ算出部24は、係数算出部23によって算出された近似式から、新たな流量制御パラメータを算出する。

Description

情報処理装置、流量制御パラメータ算出方法、およびプログラム
 本発明は、情報処理装置、流量制御パラメータ算出方法、およびプログラムに関するものである。
 インターネット等のネットワークを介して、端末装置からの処理要求に応じて処理を実行するWebシステムが存在する。Webシステムでは、例えば、端末装置からの処理要求に対し、いかに早く応答を返すかが重要となる。
 なお、従来、シンプルなシステム構成によって、サーバ装置の処理能力を最大限引き出し、応答時間の短縮と許容応答時間の確保とが可能なようにサーバ装置の最大並列処理数の設定値と最大待ち行列数の設定値を決定できるようにした通信サーバ設定値決定装置が提案されている(例えば、特許文献1参照)。
特開2006-221516号公報
 しかし、特許文献1の通信サーバ設定値決定装置では、Webシステムのデータ処理構造に応じた最大並列処理数と最大待ち行列数と(パラメータ)を決定していない。そのため、Webシステムのデータ処理構造によっては、決定したパラメータが適切でない場合があるという問題がある。
 また、特許文献1の通信サーバ設定値決定装置では、負荷投入実験の繰り返しを前提とし、負荷投入実験の自動化を支援する機能を具備しているが、負荷投入対象とする処理の種類やジョブミックスを稼動システムと同等にする為には、負荷投入実験専用のデータ等を準備することが困難であり、もし、負荷投入対象とする処理の種類やジョブミックスを稼動システムと同等にすることができなかった場合、負荷投入実験段階に特許文献1の通信サーバ設定値決定装置で通信サーバ設定値が、稼働システムにおけるジョブミックス対して最適なサーバ設定値であることを保証するものでもなかった。
 そこで本発明は、Webシステムのデータ処理構造に応じたパラメータを算出する技術を提供することを目的とする。また、負荷投入実験の繰り返しに頼らず、稼働システムにおけるジョブミックス対して最適なパラメータを算出する技術を提供することも目的とする。
 本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。上記課題を解決すべく、本発明に係る情報処理装置は、リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出部と、前記抽出部によって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出部と、前記係数算出部によって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出部と、を有することを特徴とする。
 また、上記の情報処理装置においては、前記ウェブシステムのデータ処理構造は少なくとも、均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される1個のデータ処理部と、を有する第1のデータ処理構造と、均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される1個のデータ処理部とが、プロセスに対応して複数設けられる第2のデータ処理構造と、不均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される複数のデータ処理部とが、プロセスに対応して複数設けられる第3のデータ処理構造と、不均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、不均一な処理内容の前記リクエストデータが入力される1個のデータ処理部と、を有する第4のデータ処理構造と、に分けられることを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記係数算出部は、前記内部保留リクエスト件数が前記最大同時実行件数より小さい場合の近似式によって仮係数を算出し、算出した前記仮係数に基づいて、前記ウェブシステムのデータ処理構造に応じた近似式を選択する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記抽出部は、前記内部保留時間を、プロセス単位による前記内部保留時間と、前記プロセスによって処理される前記処理識別子単位の前記内部保留時間とに区別して抽出し、前記係数算出部は、前記抽出部によって抽出された前記プロセス単位による前記内部保留時間を近似式に代入して、前記プロセスごとにおける前記仮係数を算出し、前記抽出部によって抽出された前記処理識別子単位による前記内部保留時間を近似式に代入して、前記処理識別子ごとにおける前記仮係数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記係数算出部は、前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値である場合、前記第1のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記係数算出部は、前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく、前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値である場合、前記第2のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記係数算出部は、前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値にない場合であって、前記流量制御パラメータが前記プロセスごとかつ前記処理識別子ごとにおいて与えられる場合、前記第3のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記係数算出部は、前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく、前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値にない場合であって、前記流量制御パラメータが前記プロセスごとのみにおいて与えられる場合、前記第4のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記パラメータ算出部は、前記係数が算出された前記近似式から、前記ウェブシステムで想定される負荷量に応じた内部保留時間を最小化するような前記最大同時実行件数を算出する、ことを特徴とするものであってもよい。
 また、上記の情報処理装置においては、前記パラメータ算出部は、前記係数が算出された前記近似式から、前記ウェブシステムで許容される内部保留時間を超えない前記内部保留リクエスト件数の上限値を算出し、前記最大同時実行件数と前記内部保留リクエスト件数の上限値とから、前記最大キュー長を算出する、ことを特徴とするものであってもよい。
 また、本発明に係る情報処理装置の流量制御パラメータ算出方法は、リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出ステップと、前記抽出ステップによって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出ステップと、前記係数算出ステップによって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出ステップと、を含むことを特徴とする。
 また、本発明に係る情報処理装置のプログラムは、リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出部と、前記抽出部によって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出部と、前記係数算出部によって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出部と、して前記情報処理装置を機能させることを特徴とする。
 本発明によれば、Webシステムのデータ処理構造に応じたパラメータを算出することができる。
 上記した以外の課題、構成、および効果は、以下の実施形態の説明により明らかにされる。
本発明の一実施形態に係る情報処理装置を適用したネットワークシステムの構成例を示した図である。 図1のシステムの動作概要を説明するシーケンス図である。 内部保留時間の近似式を説明する図である。 内部保留時間の性質を説明する図である。 Webシステム2のデータ処理構造例のその1を示した図である。 均一な処理内容の負荷量毎内部保留時間グラフ(対数目盛)を示した図である。 均一な処理内容の負荷量毎内部保留時間グラフ(線形目盛)を示した図である。 Webシステム2のデータ処理構造例のその2を示した図である。 Webシステム2のデータ処理構造例のその3を示した図である。 Webシステム2のデータ処理構造例のその4を示した図である。 情報処理装置1の機能ブロックの一例を示した図である。 Webシステム2の稼働データの例を示した図である。 一時情報の抽出を説明する図である。 所定の規則を説明する図である。 URLの内部保留リクエスト件数を説明する図である。 回帰分析用情報のデータ構成例を示した図である。 情報処理装置1の動作例を示したフローチャートである。 係数算出部23とパラメータ算出部24の動作例を示したフローチャートである。 情報処理装置1の機能を実現するハードウェア構成の一例を示した図である。 端末装置3からWebシステム2に負荷を与えた場合の最大同時実行件数とWebシステム2の応答時間との関係を示した図である。 流量制御パラメータのチューニング例を説明する図である。 許容待ち時間による最大キュー長の算出を説明する図である。 内部保留リクエスト件数に対する内部保留時間の平均値をグラフ化した図である。
 図1は、本発明の一実施形態に係る情報処理装置を適用したネットワークシステムの構成例を示した図である。図1に示すように、ネットワークシステムは、情報処理装置1と、Webシステム2と、端末装置3と、ネットワーク4とを有している。ネットワーク4は、例えば、インターネットである。
 Webシステム2は、Webサーバ2a,2bを有している。図1では、Webシステム2は、2台のWebサーバ2a,2bを有しているが、1台であってもよいし、3台以上であってもよい。
 端末装置3は、ネットワーク4を介して、Webシステム2(Webサーバ2a,2b)に接続されている。端末装置3は、Webシステム2に対し、リクエストデータを送信する。リクエストデータには、例えば、URL(Uniform Resource Locator)やリクエストパラメータ等が含まれる。Webシステム2(Webサーバ2a,2b)は、端末装置3からのリクエストデータに応じて所定の処理を行い、処理結果を端末装置3に送信する。図1では、端末装置3は、1台しか示していないが、2台以上であってもよい。
 Webシステム2は、以下で詳細に説明するが、プロセスごとに流量制御パラメータを有している。流量制御パラメータには、端末装置3からのリクエストデータを一時記憶するキューの最大サイズ(リクエストデータを記憶できる最大の件数)を示す最大キュー長と、Webシステム2内のプロセスがリクエストデータを並列処理できる最大数を示す最大同時実行件数とが含まれる。Webシステム2は、最大キュー長と最大同時実行件数との変更によって、リクエストデータの処理時間を変更することができる。
 情報処理装置1は、ネットワーク4を介して、Webシステム2(Webサーバ2a,2b)と接続されている。情報処理装置1は、例えば、Webシステム2を管理する管理者からの指示に応じて、Webシステム2から稼働データを受信し、受信した稼働データに基づいて、新たな流量制御パラメータを算出する。そして、情報処理装置1は、算出した新たな流量制御パラメータをWebシステム2に送信する。
 情報処理装置1は、Webシステム2の稼働データに応じた、適切な流量制御パラメータを算出する。これにより、Webシステム2は、端末装置3からのリクエストデータに対し、より早い応答を返すことが可能となる。
 図2は、図1のシステムの動作概要を説明するシーケンス図である。図2のシーケンス図は、例えば、端末装置3がユーザから所定の操作を受付けると実行される。Webシステム2の処理は、図2に示すように、Webサーバリクエスト受付け処理と、処理待ちキューと、アプリケーション処理プロセスと、back end sub systemとの処理に分けられる。
 まず、端末装置3は、例えば、Webシステム2で処理してもらうリクエストデータを生成する(ステップS1)。
 次に、端末装置3は、生成したリクエストデータを、ネットワーク4を介して、図1に図示していない負荷分散機に送信する(ステップS2,S3)。
 次に、負荷分散機は、端末装置3からリクエストデータを受信し、受信したリクエストデータを処理するWebサーバ2a,2bを選択する(ステップS4)。例えば、負荷分散機は、リクエストデータに含まれるURL等の処理識別情報に基づいて、受信したリクエストデータを処理するWebサーバ2a,2bを選択する。
 次に、Webシステム2(Webサーバ2a,2b)は、端末装置3から受信したリクエストデータ(以下では、リクエストデータを処理リクエストと呼ぶことがある)を一時記憶するキューが、最大キュー長を超えるか否か判定する(ステップS5)。Webシステム2は、処理リクエストを一時記憶するキューが、最大キュー長を超える場合、ステップS12へ処理を移行する。Webシステム2は、処理リクエストを一時記憶するキューが、最大キュー長を超えない場合、ステップS6へ処理を移行する。
 なお、図2の矢印A1には、現在、処理リクエストが一時記憶されているキューを示している。矢印A1に示すキューには、L個の処理リクエストが一時記憶されている。
 ステップS5にて、Webシステム2は、処理リクエストを一時記憶するキューが、最大キュー長を超えないと判定した場合(ステップS5で「No」の場合)、受信した処理リクエストを、空のキューに記憶する(ステップS6)。
 次に、Webシステム2は、キューに記憶されている処理リクエストを並列処理する(ステップS7)。なお、図2のWebシステム2の最大同時実行件数は、矢印A2に示すように「M」である。また、Webシステム2は、矢印A3に示すように、アプリケーションプロセスの処理の一部を「back end sub system」に委譲し、非同期で処理することもある。
 次に、Webシステム2は、処理した処理リクエストの結果(レスポンスデータ)を、ネットワーク4を介して、端末装置3に送信する(ステップS8,S9)。
 次に、端末装置3は、Webシステム2から送信されたレスポンスデータを受信し、受信したレスポンスデータを、例えば、ディスプレイに表示する(ステップS10,S11)。
 ステップS5にて、Webシステム2は、処理リクエストを一時記憶するキューが、最大キュー長を超えていると判定した場合(ステップS5で「Yes」の場合)、ネットワーク4を介して、処理エラーを示す、エラーレスポンスデータを端末装置3に送信する(ステップS12)。なお、端末装置3は、Webシステム2から受信したエラーレスポンスデータを、例えば、ディスプレイに表示する(ステップS10,S11)。
 なお、矢印A11に示すように、ステップS5からステップS8までの処理に要した時間を「内部保留時間」と呼ぶ。すなわち、Webシステム2が、端末装置3からの処理リクエストを受信してから、レスポンスデータを端末装置3に送信するまでの時間を「内部保留時間」と呼ぶ。
 また、矢印A12に示すように、ステップS1からステップS2までの処理に要した時間を「クライアント側時間」と呼ぶ。すなわち、端末装置3が処理リクエストを生成してから送信するまでの時間を「クライアント側時間」と呼ぶ。
 また、矢印A13に示すように、ステップS1からステップS5と、ステップS12との処理に要した時間を「エラー応答時間」と呼ぶ。すなわち、端末装置3が処理リクエストを生成して、処理エラーを示すエラーレスポンスデータを受信するまでの時間を「エラー応答時間」と呼ぶ。
 また、矢印A14に示すように、ステップS1からステップS11までの処理に要した時間を「正常応答時間」と呼ぶ。すなわち、端末装置3が処理リクエストを生成して、正常なレスポンスデータを受信するまでの時間を「正常応答時間」と呼ぶ。
 また、矢印A15に示すように、ステップS10からステップS11までの処理に要した時間を「クライアント側時間」と呼ぶ。すなわち、端末装置3がWebシステム2からレスポンスデータを受信してから、ディスプレイに表示するまでの時間を「クライアント側時間」と呼ぶ。
 なお、矢印A14に示す「正常応答時間」は、矢印A12に示す「クライアント側時間」と、矢印A11に示す「内部保留時間」と、矢印A15に示す「クライアント側時間」とを合計した時間となる。
 ここで、内部保留時間は、流量制御パラメータによって制御される処理の処理時間のみを含むものである。一方、「正常応答時間」や「エラー応答時間」等の「応答時間」は、流量制御パラメータによって制御されない処理の処理時間を含むので、「応答時間」から流量制御パラメータを算出しようとする方式は、正確性を欠く方式であることが判る。
 また、Webシステム2が記録する稼働データには、流量制御パラメータによって処理に要する時間が変わる「正常なレスポンスデータを生成する為に要した内部保留時間」と、流量制御パラメータによって処理に要する時間が変らない「S3、S4からS12まで」の「エラーレスポンスデータを生成する為に要した内部保留時間」が記録される場合があるが、稼働データに内部保留時間と共に記録されるHTTP status code等によって、エラーレスポンスデータであったか否かを判別可能である。
 [内部保留時間とキューの使用数と最大同時実行件数との関係の説明]
 次に、Webシステム2の「内部保留時間」の、「キューの使用数とリクエストデータの並列処理数とを合計した内部保留リクエスト件数」と「最大同時実行件数」への近似式について説明する。
 Webシステム2は、Webサーバ2a,2bによって、処理リクエストを一時記憶するキューA1(例えば、図2に示す矢印A1)と、処理リクエストを並列処理するデータ処理部A2(例えば、図2に示す矢印A2)とを備えたデータ処理構造を実現している。
 処理リクエストを並列処理するデータ処理部A2は、「最大同時実行件数(max Threads)」「M」以下のリクエストデータを並列処理し、それを「同時実行件数」という。
 また、プロセスごとまたは処理識別子ごとに設定可能な「同時実行件数の上限値」を「最大同時実行件数(max Threads)」と呼ぶ。
 最大同時実行件数設定値「M」を超えるリクエストが受け付けられ、キューA1に処理リクエストが一時記憶されている数を「キューの使用数(queue size)」という。
 さらに、リクエスト受付部S5では、「キューの使用数(queue size)」の上限値として「最大キュー長」も備える。
 そして、「同時実行件数」と「キューの使用数」とを合計した値を、「内部保留リクエスト件数」「L」と呼ぶ。
 Webシステム2の「内部保留時間」の近似式は、次の式(1)、式(2)に示すように、内部保留リクエスト件数「L」と、データ処理部の最大同時実行件数「M」と、係数「p」、「q」、「r」とによって表すことができる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 式(1)および式(2)に示す係数「p」、「q」、「r」は、Webシステム2の稼働データから、回帰分析を行って算出することができる。回帰分析によって算出した係数「p」、「q」、「r」を式(1)、式(2)に代入すれば、内部保留リクエスト件数「L」および最大同時実行件数「M」を変数とした、内部保留時間「y」を示す式を求めることができる。
 そして、求めた式から、内部保留時間「y」を最小化するようなWebシステム2の新たな流量制御パラメータの最大同時実行件数「M」の改善値や、内部保留時間「y」が許容される内部保留時間を超えないような新たな流量制御パラメータのキュー長を算出することができる。
 例えば、式(1)における係数「p」、「q」は、Webシステム2の稼働データから抽出した内部保留リクエスト件数毎の平均内部保留時間のうち、稼動データ採取時点の最大同時実行件数設定値「M」未満の内部保留リクエスト件数「L」と内部保留時間対数値「Log(y)」の対から、回帰分析を行って算出することができる。
 また、Webシステム2の稼働データから抽出した内部保留リクエスト件数毎の平均内部保留時間のうち、稼動データ採取時点の最大同時実行件数設定値「M」を超える内部保留リクエスト件数「L」と内部保留時間「y」の線形近似式の係数と、先に算出した係数「p」「q」とを式(2)に代入すると、「r」に関する1次方程式となり、「r」の値を算出することができる。
 また、Webシステム2は、処理リクエストを処理するプロセスごとまたは処理識別子ごとに、設定可能な流量制御パラメータとして、「最大同時実行件数(max Threads)」「M」と「最大キュー長」とを具備する。なお、処理識別子は、以下でも説明するが、リクエストデータによって起動されるデータ処理の内容の種類を区別する識別子である。
 また、Webシステム2は、「内部保留リクエスト件数」が大きい場合、負荷が大きい状態にあるといえる。「内部保留リクエスト件数」以外でも、内部保留時間と正の相関関係をもつようなメトリックを「負荷量」と呼ぶ場合もある。一方、過負荷時に内部保留時間と負の相関関係をもつ場合があるスループットやトラフィック(リクエスト件数/秒)は、「負荷量」とは呼ばず、これらを「内部保留リクエスト件数」の数え上げる手段の代替えとはしない(図15を参照)。
 以下、式(1)、式(2)の導出について説明する。
 図3は、内部保留時間の近似式を説明する図である。以下では、ネットワーク型の待ち行列モデルと、M/M/C型の待ち行列モデルとを組み合わせた多段待ち行列モデルから、内部保留時間の近似式を導出する。
 まず、内部保留リクエスト件数「L」が、最大同時実行件数「M」より小さい場合の近似式を導出する。L<Mでは、プリエンプティブなマルチスレッド制御を行っているスケジューラに対するモデルとして、図3に示すようなネットワーク型の待ち行列モデルを適用することができる。
 ここで、図3に示す「Ready Queue」は、即時実行可能な処理スレッドの待機キューを示している。「Execute Thread」は、実行中のスレッドを示している。プリエンプティブなマルチスレッド制御により、時分割多重制御やリソース待ちによって処理の実行が中断(suspend)すると、再び「Ready Queue」にキューイングされる。
 「Max_Threads」は、最大同時実行件数を示す(「Ready Queue」と「Execute Threads」とを合わせた最大スレッド数)。
 「t」は、処理リクエストの「Ready Queue」に最初に入った到着時刻を示す。「t」は、処理リクエストのデータ処理が完了して、系内から処理リクエストが離脱した時刻を示す。
 「y=t-t」は、内部保留時間を示す(プリエンプティブなマルチスレッド制御による待ち行列ネットワークからの離脱時間)。
 「Δt」は、微小時間を示す。「ΔL」は、微小時間「Δt」の間に、「Ready Queue」にキューイングされるスレッドの数を示す。すなわち、「ΔL」は、微小時間「Δt」における、内部保留リクエスト件数「L」の変動幅を示す。
 「Δy」は、微小時間「Δt」における、「Ready Queue」の長さ変動による離脱時間「y」の変動幅を示す。
 図3より、微小時間「Δt」での内部保留リクエスト件数の増加量「ΔL」は、微小時間「Δt」に比例する。また、微小時間「Δt」において、増加しうる内部保留時間「Δy」は、微小時間「Δt」に比例する。以上から、次の2つの式が導ける。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 上記の式(3)、式(4)からΔtを消去すると、次の式(5)が得られる。
Figure JPOXMLDOC01-appb-M000005
 プリエンプティブなスレッド制御によって、繰り返しスレッド切り替えが発生するサイクルにおいては、最終的な内部保留時間「Y」は、微小期間の内部保留リクエスト件数「ΔL」の合計に比例し、さらに、「ΔL」に比例する。従って、内部保留時間「Y」は、次の式(6)のように示すことができる。
Figure JPOXMLDOC01-appb-M000006
 式(5)、式(6)からΔLを消去すると次の式(7)、式(8)が得られる。
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 なお、式(7)より、微小時間「Δt」において増加しうる内部保留時間「Δy」は、「ΔL」に比例することが分かる。また、式(8)より、内部保留時間「Y」は、内部保留時間の変動幅「Δy」に比例することが分かる。
 以上より、十分多くの試行回数における「Δy」と「y」との関係は、下記の微分方程式で表現することができる。
Figure JPOXMLDOC01-appb-M000009
 式(9)に示される微分方程式を解くと、次の式(10)が得られる。
Figure JPOXMLDOC01-appb-M000010
 そして、式(10)は、内部保留リクエスト件数「L」が「0」の時の平均内部保留時間を「p」とし、係数「β」の逆数を「q」と置くと、次の式(11)のように変形することができ、上記で示した式(1)が得られる。
Figure JPOXMLDOC01-appb-M000011
 式(11)は、プリエンプティブなスレッド制御の機構が管理しているリソース(例えば、「Execute Thread」が消費するCPU(Central Processing Unit)やディスク、「Ready Queue」等)を共有する処理の「内部保留時間」を示している。
 次に、内部保留リクエスト件数「L」が、最大同時実行件数「M」以上の場合の、内部保留時間「y」の近似式を導出する。L≧Mでは、M/M/C型の待ち行列モデルを適用することができる。M/M/C型の待ち行列モデルによる内部保留時間「y」の近似式は、次の式(12)のように示すことができる。
Figure JPOXMLDOC01-appb-M000012
 ここで、定数項「c」は、内部保留リクエスト件数「L」が最大同時実行件数「M」の場合の平均内部保留時間を示す。内部保留時間「y」は、この定数項「c」に、内部保留リクエスト件数「L」から、最大同時実行件数「M」を減算した値「L-M」(最大キュー長を示す)を、最大同時実行件数「M」で除算し、係数「d」を乗算した値を加算して示すことができる。なお、M/M/C型の待ち行列モデルでは、最大同時実行件数を処理窓口数と呼ぶ。
 式(12)の「L=M」での計算結果が、式(1)に示す近似式と接続するための係数「r」を導入すると、次の式(13)が導出される。
Figure JPOXMLDOC01-appb-M000013
 式(13)の「f(M,L)」の部分を、式(1)で置き換えると、次の式(14)が得られ、上記で示した式(2)が得られる。
Figure JPOXMLDOC01-appb-M000014
 上記の式(1)、式(2)に含まれる係数「p」、「q」、「r」は、次のようにして算出することができる。まず、Webシステム2の稼働データを収集し、収集した稼働データから、負荷量(内部保留リクエスト件数)に対する内部保留時間を抽出する。例えば、負荷量「L」のときの内部保留時間「y」を、Webシステム2の稼働データから抽出する。
 そして、抽出した負荷量「L」と内部保留時間「y」とのうち、Webシステム2に設定されている現在の最大同時実行件数「M」より小さい負荷量(内部保留リクエスト件数)「L」と、その負荷量(内部保留リクエスト件数)「L」における内部保留時間の対数値「Log(y)」と、L<Mの場合の式(1)と、を用いて回帰分析すれば、係数「p」と「q」とが求まる。
 また、求めた係数「p」と「q」と、稼働データから抽出した負荷量(内部保留リクエスト件数)「L」と内部保留時間「y」とのうち、Webシステム2に設定されている現在の最大同時実行件数「M」を超える負荷量(内部保留リクエスト件数)「L」と、その負荷量(内部保留リクエスト件数)「L」における内部保留時間「y」と、「L≧M」の場合の式(15)と、を用いて回帰分析し係数δを算出し、式(1)と式(2)とが「L=M」で交差することを条件とするような式(16)に示す1次方程式を解けば、係数「r」が求まる。
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000016
 次に、多段待ち行列モデルの「内部保留時間」の性質について説明する。
 図4は、内部保留時間の性質を説明する図である。図4の左側のグラフG11は、Webシステム2のデータ処理構造が多段待ち行列モデルであって、式(11)と式(14)の最大同時実行件数「M」を「M=3」、「M=5」、「M=10」に変えた場合の、負荷量(内部保留リクエスト件数)「L」に対する内部保留時間「y=f(M,L)」を示したグラフである。
 例えば、左側のグラフG11に示すf(10,L)は、「M=10」の場合の、負荷量「L」に対する内部保留時間「y」を示したグラフである。f(10,L)は、負荷量「L」が最大同時実行件数「M=10」より小さい範囲(L<10)では、式(1)で示される。式(1)は、「L」を変数として捉えた場合、指数関数となるので、f(10,L)は、L<10の範囲では、指数関数的に変化している。
 また、f(10,L)は、負荷量「L」が最大同時実行件数「M=10」以上の範囲(L≧M)では、式(2)で示される。式(2)は、「L」を変数として捉えた場合、1次関数となるので、f(10,L)は、L≧10の範囲では、線形的に変化している。f(3,L)およびf(5、L)も同様にして、L=3,5を堺として、指数関数的および直線的に変化している。
 図4の右側のグラフG12は、Webシステム2のデータ処理構造が多段待ち行列モデルであって、負荷量「L」を「L=20」に固定した場合の、最大同時実行件数「M」に対する内部保留時間「y=f(M,L)」を示したグラフである。
 例えば、式(2)において、負荷量「L」を定数(L=20)とし、最大同時実行件数「M」を変数とすると、内部保留時間「y」は、グラフG12に示すように、舟形曲線を描く。すなわち、内部保留時間「y」は、最大同時実行件数「M」に対して極小値を持つ。
 これは、最大同時実行件数「M」が最適値(図4の場合、M=5)より小さい値に設定された場合、処理リクエストがキューで待たされる時間が長くなるからである。また、最大同時実行件数「M」が最適値(図4の場合、M=5)より大きい値に設定された場合、処理リクエストをキューから取出した後のデータ処理において、Webサーバ2a,2bの処理効率を低下させるためである。
 内部保留時間「y」は、最大同時実行件数「M」を変数として捉えた場合、上記したように、式(2)に示すような指数関数と線形関数との和で表現でき、極小点を1つ持つ。従って、内部保留時間「y」を最小にするような「M」は、式(2)を「M」で微分した式が、「0」になる条件より算出することができる。
Figure JPOXMLDOC01-appb-M000017
 式(17)の右辺が「0」になるには、式(17)に示す分子が「0」となる場合である。従って、式(17)の分子部分を「0」と置き、Mに関する2次方程式を解くと、内部保留時間「y」が最小値となる最大同時実行件数「M」は、次の式(18)で示される。
Figure JPOXMLDOC01-appb-M000018
 ここで、Webシステム2の負荷量「L」が、最大同時実行件数「M」より十分大きいとすると(例えば、LがMの2倍以上等)、最大同時実行件数は、次の式(19)のLに対する極限値より、「M=q」が適正値となる。
Figure JPOXMLDOC01-appb-M000019
 すなわち、Webシステム2の負荷量「L」が、最大同時実行件数「M」より十分大きい場合、式(1)または式(2)に示す近似式の指数部の分母「q」を求めれば(「q」が小数であれば、例えば、その値を切り上げる)、内部保留時間「y」を最小にする最大同時実行件数「M」を算出することができる。また、「r=1」の場合、式(17)の分子部分より、「M=q」となる。なお、「r=1」となるのは、Webシステム2のリクエストによって起動される処理内容の種類が均一な場合である。
 また、Webシステム2の負荷量「L」が、最大同時実行件数「M」より十分大きくない場合でも、例えば、Webシステム2で想定される負荷量(例えば、Webシステム2で想定される負荷量は、Webシステム2を管理する管理者により、チューニングポリシーパラメータの1つとして指定される内部保留リクエスト件数)に対する式(2)の内部保留時間「y」の値が最小となる最大同時実行件数「M」をシミュレートして算出することができる。
 例えば、式(2)に、チューニングポリシーパラメータの1つとして指定される、Webシステム2で想定される負荷量「L」を代入し、図4のG12のグラフに示すように、いくつかの最大同時実行件数「M」の候補となる値を、式(2)に代入する。そして、内部保留時間「y」が最小となった最大同時実行件数「M」を、新たな最大同時実行件数として採用する。
 また、もう1つの流量制御パラメータである最大キュー長(queue size)は、「Llimit-M」で算出される。ここで、「Llimit」は、例えば、Webシステム2で想定される最大負荷量であり、「M」は、新たに算出した最大同時実行件数である。さらに、「Llimit」は、チューニングポリシーパラメータとして与えられる、内部保留時間の許容限界「Ylimit」を超えないような値を、図22に示すように、式(2)中の「L」を変えて算出することができる。
 なお、「Llimit-M」が負となる場合、最大同時実行件数「M」は、前記「Llimit」の値にする。また、この場合の最大キュー長(queue size)は、「0」にする。
 [Webシステム2のデータ処理構造の説明]
 次に、Webシステム2の種々のデータ処理構造について説明する。
 図5は、Webシステム2のデータ処理構造例のその1を示した図である。図5に示すように、Webシステム2は、1個のキュー11aと、1個のデータ処理部12aとを有している。図5に示すデータ処理構造のプロセスは、例えば、物理的に1台またはそれ以上のWebサーバ上で動作し、さらにWebシステム2は、1台またはそれ以上の個数のWebサーバによって実現される。
 キュー11aには、処理リクエストが一時記憶される。キュー11aからは、1つずつ処理リクエストが取出され、データ処理部12aに入力される。データ処理部12aは、キュー11aから取出された処理リクエストを並列処理している。データ処理部12aは、処理リクエストのデータ処理が終了すると、キュー11aに記憶されている次の処理リクエストが入力される。
 図5に示すデータ処理構造のWebシステム2には、均一な処理内容に対するリクエストが入力される。そして、データ処理部12aでは、均一なデータ処理が行われる。均一な処理内容に対するリクエストとは、データ処理部12aでデータ処理される内容が、どれもほとんど同じ処理内容であることを言う。
 例えば、処理リクエストa,b,cがデータ処理部12aでデータ処理されるとする。図5に示すWebシステム2の場合、処理リクエストa,b,cのいずれも、ほとんど同じ内部処理時間でデータ処理される。すなわち、図5に示すWebシステム2のキュー11aには、概ね同一の処理内容となる処理リクエストが入力されるとする。特にWebシステムでは、HTTPリクエストに含まれるHTTP_URiやhttp_query_string等の入力データが同一であれば同一の処理理内容となる。
 また、ここで、全く同一の処理内容では無くても、図6に示すように、内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数設定値「M」未満での、内部保留時間「y」を対数目盛で観た場合のグラフの傾きが概ね同じ場合も“均一な処理内容”であったとみなす。その場合、図7に示すように、内部保留リクエスト件数「L」が最大同時実行件数設定値「M」以上での、内部保留時間「y」を線形目盛で観たときの傾きも概ね同じ傾きとなる。
 それは、内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数設定値「M」未満での内部保留時間「y」を近似する式(1)の指数部係数「q」が同じ値であれば、式(1)の定数係数「p」が異なっても、あるいは、内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数設定値「M」以上での内部保留時間「y」を近似する式(2)での「r」が1でも1以外の値であっても、最大同時実行件数設定値「M」の改善値は「q」を整数に切り上げた値であるからである。
 図8は、Webシステム2のデータ処理構造例のその2を示した図である。図8に示すように、Webシステム2は、キュー13aa,13ab,13ba,13bb,13ca,13cb,13ccと、データ処理部14aa,14ab,14ba,14bb,14ca,14cb,14ccと、分散機DP1とを有している。図8に示すデータ処理構造のWebシステム2は、例えば、1台またはそれ以上のWebサーバによって実現される。図8では、Webシステム2は、WebサーバSV1~SV3によって実現されている。
 図8に示す1個のキューと1個のデータ処理部のセットは、Webシステム2(Webシステム2を構成するWebサーバSV1~SV3)で実行されるプロセスに対応して設けられる。
 例えば、図8の点線枠D1aに示す1個のキュー13aaと1個のデータ処理部14aaは、あるプロセスP1aに対応して設けられ、点線枠D1bに示す1個のキュー13abと1個のデータ処理部14abは、あるプロセスP1bに対応して設けられている。また、点線枠D2aに示す1個のキュー13baと1個のデータ処理部14baは、あるプロセスP2aに対応して設けられ、点線枠D2bに示す1個のキュー13bbと1個のデータ処理部14bbは、あるプロセスP2bに対応して設けられている。また、点線枠D3aに示す1個のキュー13caと1個のデータ処理部14caは、あるプロセスP3aに対応して設けられ、点線枠D3bに示す1個のキュー13cbと1個のデータ処理部14cbは、あるプロセスP3bに対応して設けられ、点線枠D3cに示す1個のキュー13ccと1個のデータ処理部14ccは、あるプロセスP3cに対応して設けられている。
 図8に示すデータ処理構造の場合、Webシステム2には、不均一な処理内容に対するリクエストが入力される。不均一なデータ処理とは、様々な処理リクエストの処理時間(内部保留時間)が、異なっていることを言う。従って、不均一な処理内容に対するリクエストでは、各処理リクエストの処理時間は異なる処理時間(不均一な処理内容)となる。
 そして、図8に示すデータ処理構造の場合、不均一な処理内容に対するリクエストは、WebサーバSV1~SV3の各プロセス(点線D1a~D3c)によって均一処理がされるよう、分散機DP1によって分散されている。
 例えば、Webシステム2には、不均一な処理内容に対するリクエストa,b,c,d,e,fが入力されるとする。処理リクエストa,b,c,d,e,fのそれぞれは、分散機DP1によって、WebサーバSV1~SV3の各プロセス(点線D1a~D3c)に分散されている。これにより、キュー13aa,13ab,13ba,13bb,13ca,13cb,13ccのそれぞれには、均一な処理内容に対するリクエストが入力される。そして、データ処理部14aa,14ab,14ba,14bb,14ca,14cb,14ccのそれぞれは、均一な処理内容に対するリクエストを処理する。
 なお、図8に示すデータ処理構造は、プロセスごとにおいて、図5に示したキュー11aとデータ処理部12aとを備えていると考えることができる。
 図9は、Webシステム2のデータ処理構造例のその3を示した図である。図9に示すように、Webシステム2は、複数のキュー15a,15b,15cと、複数のデータ処理部16aa,16ab,16ba,16bb,16ca,16cb,16ccと、を有している。図9に示すデータ処理構造のWebシステム2は、例えば、1台またはそれ以上のWebサーバによって実現される。図9では、Webシステム2は、WebサーバSV1~SV3によって実現されている。
 図9に示す1個のキューと複数のデータ処理部のセットは、Webシステム2(Webシステム2を構成するWebサーバ)で実行されるプロセスに対応して設けられる。
 例えば、図9の点線枠D1に示す1個のキュー15aと2個のデータ処理部16aa,16abは、あるプロセスP1に対応して設けられている。点線枠D2に示す1個のキュー15bと2個のデータ処理部16ba,16bbは、あるプロセスP2に対応して設けられている。点線枠D3に示す1個のキュー15cと3個のデータ処理部16ca,16cb,16ccは、あるプロセスP3に対応して設けられている。
 図9に示すデータ処理構造の場合、プロセスに対応して設けられるキューには、不均一な処理内容に対するリクエストが一時記憶される。そして、各プロセスに対応して設けられている複数のデータ処理部12cのそれぞれには、均一な処理内容に対するリクエストが入力される。
 例えば、プロセスP1に対応して設けられた点線枠D1のキュー15aには、不均一な処理内容に対するリクエストa,bが一時記憶される。そして、点線枠D1のデータ処理部16aaには、処理リクエストaのみが入力され、データ処理部16abには、処理リクエストbのみが入力される。すなわち、点線枠D1に示す2つのデータ処理部16aa,16abのそれぞれには、単一の処理リクエストa,bが入力され、均一処理を行う。
 図10は、Webシステム2のデータ処理構造例のその4を示した図である。図10に示すように、Webシステム2は、複数のキュー17a,17b,17ca,17cbと、複数のデータ処理部18a,18b,18ca,18cbと、分散機DP2とを有している。図10に示すデータ処理構造のWebシステム2は、例えば、1台またはそれ以上のWebサーバによって実現される。図10では、Webシステム2は、WebサーバSV1,SV2,SV3a,SV3bによって実現されている。
 図10に示す1個のキューと1個のデータ処理部のセットは、Webシステム2(Webシステム2を構成するWebサーバ)で実行されるプロセスに対応して設けられる。
 例えば、図10の点線枠D1に示す1個のキュー17aと1個のデータ処理部18aは、あるプロセスP1に対応して設けられている。点線枠D2に示す1個のキュー17bと1個のデータ処理部18bは、あるプロセスP2に対応して設けられている。点線枠D3aに示す1個のキュー17caと1個のデータ処理部18caは、あるプロセスP3に対応して設けられる。点線枠D3bに示す1個のキュー17cbと1個のデータ処理部18cbは、あるプロセスP3に対応して設けられている。
 図10に示すデータ処理構造の場合、Webシステム2には、不均一な処理内容に対するリクエストが入力される。そして、図10に示すデータ処理構造では、入力された不均一な処理内容に対するリクエストを、分散機DP2によって不均一のまま分散し、点線枠D1~D3bのキュー17a,17b,17ca,17cbに出力する。
 例えば、図10に示すように、Webシステム2には、不均一な処理内容に対するリクエストa,b,c,d,e,fが入力されるとする。不均一な処理内容に対するリクエストa,b,c,d,e,fは、分散機DP2によって分散され、処理リクエストa,bは、WebサーバSV1のキュー17aに出力される。すなわち、キュー17aには、不均一な処理内容に対するリクエストa,bが入力される。そして、データ処理部18aは、不均一な処理内容に対するリクエストa,bをデータ処理する。
 また、不均一な処理内容に対するリクエストc,dは、WebサーバSV2のキュー17bに出力される。すなわち、キュー17aには、不均一な処理内容に対するリクエストc,dが入力される。そして、データ処理部18aは、不均一な処理内容に対するリクエストc,dをデータ処理する。
 また、不均一な処理内容に対するリクエストe,f,gは、WebサーバSV3aのキュー17caに出力される。すなわち、キュー17caには、不均一な処理内容に対するリクエストe,f,gが入力される。そして、データ処理部18caは、不均一な処理内容に対するリクエストe,f,gをデータ処理する。
 また、不均一な処理内容に対するリクエストe,f,gは、WebサーバSV3bのキュー17cbに出力される。すなわち、キュー17cbには、不均一な処理内容に対するリクエストe,f,gが入力される。そして、データ処理部18cbは、不均一な処理内容に対するリクエストe,f,gをデータ処理する。
 なお、図10では、不均一な処理内容に対するリクエストe,f,gは、プロセスP3を実行する2台のWebサーバSV3a,SV3bによってデータ処理されている。
 図5~図10に示したように、Webシステム2のデータ処理構造は、一般的に4つのデータ処理構造に分類することができる。
 [Webシステム2のデータ処理構造に応じた流量制御パラメータの算出の説明]
 図11は、情報処理装置1の機能ブロックの一例を示した図である。図3に示すように、情報処理装置1は、受信部21と、抽出部22と、係数算出部23と、パラメータ算出部24と、送信部25と、記憶部26とを有している。
 受信部21は、例えば、Webシステム2を管理する管理者から、端末装置を介して、Webシステム2に関するチューニングポリシーパラメータを受信する。例えば、受信部21は、Webシステム2に想定される負荷量を受信する。また、受信部21は、Webシステム2から、稼働データ(ログデータ)を受信する。また、受信部21は、Webシステム2から、Webシステム2に現在設定されている流量制御パラメータを受信する。
 図12は、Webシステム2の稼働データの例を示した図である。図12の稼働データ31の右側には、稼働データ31を説明した欄が示してある。
 稼働データ31には、Webシステム2が、端末装置3から処理リクエストを受付けた受付時刻が含まれる。また、稼働データ31には、Webシステム2が、処理リクエストをデータ処理し、そのレスポンスデータを端末装置3に送信した終了時刻が含まれる。また、稼働データ31には、Webシステム2が、処理リクエストをデータ処理したプロセスの情報が含まれる。
 Webシステム2の稼働データの他の例としては、図13と同様の情報が抽出可能となるように拡張されていれば、The World Wide Web Consortium が制定した“Extended Log File Format”に準ずるフォーマットであっても良い。例えば、日立製作所製品である"Hitachi web Server"は、リクエスト処理に掛かった時間(%T)だけではなく,リクエスト処理を開始した時刻(%t)もミリ秒まで表示するように拡張されており、適用可能である。
 図11の説明に戻る。抽出部22は、受信部21によって受信された稼働データから、内部保留リクエスト件数ごとにおける、Webシステム2の処理リクエストのデータ処理に要した内部保留時間の平均値を抽出する。すなわち、抽出部22は、Webシステム2の稼働データから、Webシステム2の負荷量に対する、Webシステム2の内部保留時間を抽出する。なお、抽出部22は、受信されたWebシステム2の稼働データから一時情報を抽出し、抽出した一時情報からWebシステム2の負荷量に対する、Webシステム2の内部保留時間を抽出する。
 図13は、一時情報の抽出を説明する図である。抽出部22は、受信されたWebシステム2の稼働データから、図13に示す一時情報を抽出する。一時情報には、受付時刻32aと、終了時刻32bと、内部保留時間32cと、HTTPリクエスト内容(http_method32d、http_uri32e、およびhttp_query_string32f)と、処理識別情報(http_uriGroupName32g、http_queryID32h、http_status32i、remote_addr32j、およびremote_port32k)と、処理識別子単位での内部保留リクエスト件数32lと、プロセス単位での内部保留リクエスト件数32mとが含まれる。
 抽出部22は、受信部21によって受信されたWebシステム2の稼働データから、Webシステム2がURLを受付けた受付時刻32aと、URLのデータ処理を終了した終了時刻32bとを抽出する。抽出部22は、抽出した受付時刻32aと終了時刻32bとから、URLの内部保留時間32cを算出する。
 抽出部22は、受信部21によって受信されたWebシステム2の稼働データから、http_method32dと、http_uri32eと、http_query_string32fとを抽出する。http_method32dは、HTTPリクエストの性質を示す。http_uri32eは、URLを示す。http_query_string32fは、クエリストリングを示す。
 抽出部22は、以下で説明する所定の規則に基づいて、稼働データより抽出したhttp_uri32eから、http_uriGroupName32gを抽出する。http_uri32eは、同じ処理内容であっても、ユニークな情報が付加されていることがあり、抽出部22は、そのユニークな情報を除去して、同じ処理内容を示すhttp_uri32gは、同じ処理識別情報を有するように、http_uriGroupName32gを抽出する。すなわち、抽出部22は、同じ処理内容のURLに対しては、同じ処理識別情報が付与されるようにする。
 同様に、抽出部22は、以下で説明する所定の規則に基づいて、稼働データより抽出したhttp_query_string32fから、http_queryID32hを抽出する。http_query_string32fは、同じ処理内容であっても、ユニークな情報が付加されていることがあり、抽出部22は、そのユニークな情報を除去して、同じ処理内容を示すhttp_query_string32fは、同じ処理識別情報を有するように、http_queryID32hを抽出する。すなわち、抽出部22は、同じ処理内容のクエリストリングに対しては、同じ処理識別情報が付与されるようにする。
 このように、同じ処理内容の処理リクエストに、同じ処理識別情報を付与することにとより、処理リクエストの種類は、いくつかの種類に分けられる。例えば、図12に示した稼働データ31をそのまま区別すると(生データのままで見ると)、数千~数万種類存在する。これを、所定の規則に基づいて、同じ処理が行われるURLには、同じ処理識別情報を付与し、同じ処理が行われるクエリストリングには、同じ処理識別情報を付与することにより、処理リクエストの種類は、例えば、数十~数百種類に減少する。
 抽出部22は、稼働データからhttp_status32iを抽出する。http_status32iは、httpのステータスコードである。
 抽出部22は、以下で説明する所定の規則に基づいて、稼働データからremote_addr32jを抽出する。remote_addr32jは、Webシステム2を構成するWebサーバの識別子である。
 抽出部22は、稼働データからhttp_port32kを抽出する。http_port32kは、httpのリモートポートである。
 抽出部22は、稼働データから、処理識別子単位での内部保留リクエスト件数32lを抽出する。ここでは、処理識別子は、http_uriGroupName32gとhttp_queryID32hとで示されるとする。すなわち、http_uriGroupName32gとhttp_queryID32hとを1つの情報とし、その内容が異なれば、処理識別子も異なるとする。つまり、処理リクエストは、http_uriGroupName32gおよびhttp_queryID32hでその種類が分けられるとする。従って、抽出部22は、http_uriGroupName32gおよびhttp_queryID32hで示される情報単位(処理識別子単位)で、受付時刻32aおよび終了時刻32bを参照し、処理識別子単位での処理多重数(内部保留リクエスト件数)を調べ、処理識別子単位での内部保留リクエスト件数32lを抽出する。
 また、抽出部22は、稼働データから、プロセス単位での内部保留リクエスト件数32lを抽出する。ここでは、プロセスは、remote_addr32jとremote_port32kとで示されるとする。すなわち、remote_addr32jとremote_port32kとを1つの情報とし、その内容が異なれば、処理リクエストを処理するプロセスも異なる。従って、抽出部22は、remote_addr32jおよびremote_port32kで示される情報単位(プロセス単位)で、受付時刻32aおよび終了時刻32bを参照し、プロセス単位での処理多重数(内部保留リクエスト件数)を調べ、プロセス単位での内部保留リクエスト件数32lを抽出する。
 図14は、所定の規則を説明する図である。図14の欄33aには、情報の抽出方法を指定する抽出指定パラメータが示してある。欄33bには、抽出指定パラメータの説明が記載されている。抽出部22は、例えば、欄33aの抽出指定パラメータが与えられることによって、稼働データから、上記したhttp_uriGroupName32gを生成する。これにより、抽出部22は、同じ処理内容を示すURLには、同じ処理識別情報を付与することがきる。その他、http_queryID32h等についても同様である。
 なお、図10のデータ処理構造の場合、WebサーバSV3a,SV3bは、同じ処理リクエストを処理する。従って、WebサーバSV3a,SV3bには、同じ識別子が付与されるように、抽出指定パラメータを設定する。つまり、WebサーバSV3a,SV3bで実行されるプロセスは、同じプロセス単位の識別情報(remote_addr32jおよびremote_port32k)を持つこととなる。
 図15は、URLの内部保留リクエスト件数を説明する図である。ここでは、URL単位での内部保留リクエスト件数の数え方の例を説明する。
 図15の(A)~(C)に示す矢印の始点は、URLの受付時刻32aに対応し、終点は、URLの処理の終了時刻32bに対応する。URLは、他のどのURLとも処理が重なっていない場合、1多重と数える。また、URLの多重数は、最大の多重数を採用し、採用した多重数を内部保留リクエスト件数とする。
 図15の(A)の場合、URL1~URL5のそれぞれの内部保留リクエスト件数は「1」となる。
 図15の(B)の場合、URL1の内部保留リクエスト件数は「2」となる。URL2の内部保留リクエスト件数は「3」となる。URL3の内部保留リクエスト件数は「3」となる。URL4の内部保留リクエスト件数は「2」となる。URL5の内部保留リクエスト件数は「3」となる。
 図15の(C)の場合、URL1~URL5のそれぞれの内部保留リクエスト件数は「5」となる。
 このようにして、抽出部22は、処理が異なるURL単位での内部保留リクエスト件数32lを抽出する。なお、図13で説明した処理識別子単位での内部保留リクエスト件数32lの抽出、および、プロセス単位での内部保留リクエスト件数32mの抽出の方法も上記と同様である。
 なお、上記では、抽出部22は、稼動データから採取した、URL毎の開始時刻から終了時刻までの期間が重なるURLの最大値を数え挙げて、内部保留時クエスト件数としていたが、他の方法によっても、内部保留時クエスト件数を抽出することができる。例えば、抽出部22は、URL毎の開始時刻から終了時刻までの期間が重なるURLの走行時間の合計を各URLの処理時間で割って、平均的な内部保留リクエスト件数を算出してもよい。
 また、内部保留リクエスト件数の算出は、適用対象のWebシステム2のデータ処理構造における流量制御パラメータ(最大同時実行件数とキュー長)によって管理されるリソースの数を、データ処理構造のシミュレートによって算出するものである。従って、リクエストデータの受信時刻より受付時刻が遅かった別のリクエストデータの処理がより早く終了しうるならば、独立したキューに一時記憶されるリクエストとして、内部保留リクエスト件数を算出する。
 また、Webシステム2を構成するWebサーバが複数台場合、各Webサーバの時計が同時刻を表示しない場合もあるので、時計が異なりうるWebサーバの稼働データから正確な内部保留時クエスト件数を抽出する為には、Webサーバ毎に順次処理する必要がある。
 抽出部22は、上記したように、稼働データのリクエストデータから一旦一時情報を抽出し、当該リクエストデータの開始時刻から終了時刻までの期間が重なる期間に走行していたリクエストデータと突き合せて、Webシステム2におけるリクエストデータ走行期間中のプロセス毎の内部保留リクエスト件数および処理識別子毎の内部保留時クエスト件数を算出し、図13に示すデータとして稼働データのリクエストデータに1対1に対応するレコードを記録する。
 図13は、抽出部22における第1の抽出結果を示すデータ構成例を示した図である。
ここで、図13中の処理識別情報列に含まれる「http_status32i」が「エラー応答時間」の様に流量制御パラメータの制御によらない内部保留時間を記録していたレコードであった場合は、早期段階で取り除かれても良い。
 図13中の処理識別情報列に含まれるカラムの内「remote_addr32j」「remote_port32k」の組合せは、特に「プロセス単位の識別情報」とする。その他のカラムの組合せは、チューニングポリシーパラメータとして与えられる処理識別子の抽出条件に従って、「処理識別子」の生成に用いる。
 図13に示す稼働データのリクエストデータに1対1に対応するレコード数のデータを、「プロセス単位の識別情報」と「プロセス単位での内部保留リクエスト件数32m」の組合せ、「処理識別子」と「処理識別子単位での内部保留リクエスト件数」の組合せ毎に、内部保留時間の平均値を集計して、図16に示す構造のデータを得る。
 前記抽出部22を構成する処理によって、図16に示す回帰分析用情報は、図13に示した一時情報から抽出され、記憶部26に記憶される。
 図16の識別情報34aは、プロセス単位の識別情報と、処理識別子単位の識別情報とを有する。プロセス単位の識別情報34aは、図13に示したremote_addr32jおよびremote_port32kに対応する。処理識別子単位の識別情報34aは、図13に示したhttp_uriGroupName32gおよびhttp_queryID32hに対応する。なお、処理識別子単位の識別情報34aには、その処理識別子が処理されるプロセスの情報も含まれている。例えば、矢印A23に示す処理識別子「/context001/svcName99;pgCode=xxP11」は、プロセス「/context001/svcName99;pgCode=xxP11」で処理されることを示している。図16の識別情報34aの値は、チューニングポリシーパラメータとして与えられた条件に従って図13の「処理識別情報」の幾つかを連結した文字列である。以下では、プロセス単位の行における識別情報34aを、プロセスの処理識別子と呼ぶことがある。
 内部保留リクエスト件数ごとの内部保留時間の平均値34cは、内部保留リクエスト件数(負荷量)に対する、Webシステム2の内部保留時間の平均値を示す。例えば、図16の例の場合、矢印A21に示すプロセスの内部保留時間の平均値は、内部保留リクエスト件数が「2」の場合、「0.347」である。また、内部保留リクエスト件数が「3」の場合、「0.426」である。
 また、矢印A23に示す処理識別子の内部保留時間の平均値は、内部保留リクエスト件数が「2」の場合、「16.674」である。また、内部保留リクエスト件数が「3」の場合、「27.518」である。
 なお、図16の空欄は、Webシステム2から受信した稼働データに、対応する内部保留リクエスト件数がなかった(例えば、Webシステム2から受信した稼働データの範囲には、その内部保留リクエスト件数が発生しなかった)ことを示す。
 ここで、チューニングポリシーパラメータとして与えられる条件に従って図16に記録されたデータの内、回帰分析用情報として用いないデータを除外しても良い。あるいは、カスタマイズ可能な除外方法として、内部保留リクエスト件数が1以下の平均内部保留時間や稼働データ採取時の最大同時実行件数「M」に等しい内部保留リクエスト件数の平均内部保留時間を回帰分析用情報として用いないデータを除外しても良い。
 図11の説明に戻る。係数算出部23は、Webシステム2のデータ処理構造に応じた近似式と、抽出部22によって抽出された回帰分析用情報とに基づいて、近似式の係数を算出する。なお、係数算出部23は、内部保留リクエスト件数が最大同時実行件数より小さい場合の式(1)を近似式として仮係数を算出し、算出した仮係数に基づいて、Webシステム2のデータ処理構造に応じた近似式を選択する。近似式の仮係数および係数の算出については、以下でフローチャートを用いて詳細に説明する。
 パラメータ算出部24は、係数算出部23によって係数が算出された近似式から、Webシステム2の新たな最大同時実行件数と最大キュー長とを算出する。Webシステム2の新たな最大同時実行件数と最大キュー長との算出については、以下でフローチャートを用いて詳細に説明する。
 送信部25は、パラメータ算出部24によって算出された最大同時実行件数と最大キュー長とをWebシステム2(Webシステム2を構成するWebサーバ2a,2b)に送信する。
 記憶部26には、上記で説明した回帰分析用情報が記憶される。
 図17は、情報処理装置1の動作例を示したフローチャートである。図17に示すフローチャートは、例えば、Webシステム2を管理する管理者の開始の指示に応じて実行される。
 まず、受信部21は、Webシステム2の管理者から、Webシステム2のチューニングポリシーパラメータを受信する(ステップS21)。Webシステム2のチューニングポリシーパラメータには、例えば、Webシステム2で許容される内部保留時間「yLimit」が含まれる。
 次に、受信部21は、Webシステム2から、稼働データとWebシステム2に現在設定されている流量制御パラメータとを受信する(ステップS22)。
 次に、抽出部22は、Webシステム2から受信した稼働データに基づいて、一時情報を抽出する(ステップS23)。例えば、抽出部22は、図14に示した抽出指定パラメータに基づいて、図13に示すような一時情報を抽出する。
 次に、抽出部22は、稼働データより抽出した一時情報から、回帰分析用情報を抽出する(ステップS24)。例えば、抽出部22は、図16に示すような回帰分析用情報を抽出する。
 次に、係数算出部23は、Webシステム2のデータ処理構造の判別前に、抽出部22によって抽出された図16に示す回帰分析用情報の内の稼働データ採取時の最大同時実行件数「M」未満のプロセス単位での内部保留リクエスト件数「L」に対する平均内部保留時間から、式(1)を近似式とする回帰分析によって図16の仮近似式34bの仮係数「p,q」を算出する(ステップS25)。
 ここで、「内部保留時間」の近似式の一般式は、上記したように式(1),(2)で示される。従って、処理識別子ごとの「内部保留時間」の近似式は、式(1),(2)の「p,q,r」を、処理識別子「i」ごとの定数「a,b,c」に置き換えて、次の式(20),(21)で示される。
Figure JPOXMLDOC01-appb-M000020
Figure JPOXMLDOC01-appb-M000021
 また、プロセスごとの「内部保留時間」の近似式は、式(1),(2)の「p,q,r」を、プロセス「j」ごとの定数「v,w,r」に置き換えて、次の式(22),(23)で示される。
Figure JPOXMLDOC01-appb-M000022
Figure JPOXMLDOC01-appb-M000023
 式(20)に処理識別子単位での、L<Mにおける内部保留リクエスト件数ごとの内部保留時間の平均値34cを代入して回帰分析を行えば、式(20)の係数(仮係数)が求まる。求めた仮係数を式(20)に代入すれば、図16の矢印A23~A30に示すような、L<Mでの内部保留時間の仮近似式34bが求まる。
 また、式(22)にプロセス単位での、L<Mにおける内部保留リクエスト件数ごとの内部保留時間の平均値34cを代入して回帰分析を行えば、式(22)の係数(仮係数)が求まる。求めた仮係数を式(22)に代入すれば、図16の矢印A21,A22に示すような、L<Mでの内部保留時間の仮近似式34bが求まる。
 もし、図16に示す回帰分析用情報が、図5に示したデータ処理構造の稼働データから抽出されたものである場合、図16の仮近似式34bの指数部の分母は、どれも概ね同じ値となる。
 例えば、図16に示す矢印A21~A22に示すプロセス単位の仮近似式34bの指数部の分母(式(22)の係数「w」)と、図16に示す矢印A23~A30に示す処理識別子単位の近似式34bの指数部の分母(式(20)の係数「b」)とは、概ね同じ値となる。
 これは、図5のデータ処理構造では、Webシステム2を構成するどのプロセスでも均一な処理内容に対するリクエストが処理され、図6に示したように、図16の仮近似式の分母が示す内部保留リクエスト件数「L」に対する内部保留時間「y」が同じ傾きとなるからである。
 なお、図5に示したデータ処理構造における「内部保留時間」の近似式は、式(20),式(21)で示される。図5のデータ処理構造の場合、流量制御パラメータの数は、Webシステム2全体で1個となる。
 もし、図16に示す回帰分析用情報が、図8に示したデータ処理構造の稼働データから抽出されたものである場合、図16の仮近似式34bの指数部の分母は、同一プロセス内の処理識別子ごとにおいて、概ね同じ値となる。
 例えば、図16の矢印A23~A25,A27,A28の仮近似式34bの指数部の分母は、同一プロセス「WebAPSv01;8009」における処理識別子の、仮近似式34bの指数部の分母であり、どれも概ね同じ値となる(図16では、矢印A23~A25,A27,A28の仮近似式34bの指数部の分母は概ね同じ値となっていない)。また、図16の矢印A26,A29,A30の仮近似式34bの指数部の分母は、同一プロセス「WebAPSv01;8008」における処理識別子の、仮近似式34bの指数部の分母であり、どれも概ね同じ値となる(図16では、矢印A26,A29,A30の仮近似式34bの指数部の分母は概ね同じ値となっていない)。これは、図8のデータ処理構造では、プロセス毎に均一な処理内容に対するリクエストが処理され、図6に示したように、図16の仮近似式の分母が示す内部保留リクエスト件数「L」に対する内部保留時間「y」が同じ傾きとなるからである。
 なお、図8に示したデータ処理構造における「内部保留時間」の近似式は、式(22),式(23)で示される。なお、図8のデータ処理構造の場合、流量制御パラメータの数は、プロセスの種類の数分存在する。例えば、図8の例の場合、流量制御パラメータの数は、7個となる。
 もし、図16に示す回帰分析用情報が、図9、図10に示したデータ処理構造の稼働データから抽出されたものである場合、図16の仮近似式34bの指数部の分母は、同一プロセス内の処理識別子ごとにおいて異なる値をとる。例えば、矢印A21~A30に示す仮近似式34bの指数部の分母は、ばらばらの値となる。これは、図9、図10に示すデータ処理構造では、プロセスごとにおいて、不均一な処理内容に対するリクエストが入力されるからである。
 なお、図9、図10に示したデータ処理構造における「内部保留時間」の近似式は、次の式(24),(25)で示される。
Figure JPOXMLDOC01-appb-M000024
Figure JPOXMLDOC01-appb-M000025
 図9、図10のデータ処理構造に対応する近似式(24),(25)には、処理識別子「i」ごとの定数とプロセス「j」ごとの定数が含まれる。これは、プロセスごとのキューに、不均一な処理識別子単位の処理リクエストが入力されるためである。つまり、図9、図10に示したデータ処理構造では、ある処理識別子「i」における処理リクエストの内部保留時間は、自分自身以外の処理識別子による処理リクエストの内部保留時間に依存するからである。
 例えば、処理識別子「a」,「b」の不均一な処理内容に対するリクエストが、処理識別子「a」,「b」の順にデータ処理されるよう、あるプロセスのキューに一時記憶されたとする。この場合、処理識別子「b」の処理リクエストの内部保留時間「y」は、処理識別子「a」の処理リクエストの内部保留時間「y」に依存する。具体的には、処理識別子「a」の内部保留時間が短ければ、処理識別子「b」の処理リクエストのデータ処理が早く開始され、処理識別子「b」の処理リクエストの内部保留時間は短くなる。また、処理識別子「a」の処理リクエストの内部保留時間が長ければ、処理識別子「b」の処理リクエストのデータ処理開始時間が遅くなり、処理識別子「b」の処理リクエストの内部保留時間は長くなる。
 このように、図9、図10に示したデータ処理構造では、内部保留時間は、自分自身以外の処理識別子にも依存する。そのため、式(25)には、自分自身以外の全ての処理識別子の平均的な依存度を考慮したプロセス「j」ごとの係数「vj」と「w」を導入し、さらに式(21)における処理識別子「i」毎の係数「r」とは異なる値となるような式(25)における処理識別子「i」毎の係数「r」を、「L=M」において式(24)と式(25)とが交差するような値として算出する。つまり、式(25)の処理識別子「i」毎の係数「r」および当該処理識別子「i」が属するプロセス「j」毎の係数「v」「w」は、自分自身以外の処理識別子の処理リクエストが、算出しようとする自分自身の内部保留時間に干渉する構造を反映している。
 次に、係数算出部23は、ステップS25にて算出した仮係数に基づいて、Webシステム2のデータ処理構造に応じた近似値の係数を算出する。そして、パラメータ算出部24は、算出された係数から、流量制御パラメータを算出する(ステップS26)。
 次に、送信部25は、パラメータ算出部24によって算出された、新たな流量制御パラメータをWebシステム2に送信する(ステップS27)。
 図18は、係数算出部23とパラメータ算出部24の動作例を示したフローチャートである。図18のフローチャートは、図17のステップS26の詳細な動作例を示している。
 まず、係数算出部23は、プロセスごとにおける仮近似式34bの係数(指数部の分母)と、処理識別子ごとにおける仮近似式34bの係数(指数部の分母)とが、概ね同じか否か判定する(ステップS31)。例えば、係数算出部23は、図16の矢印A21~A30に示す仮近似式34bの指数部の分母を切り上げて整数値化した値が、概ね同じであるか否か判定する。係数算出部23は、プロセスごとにおける仮近似式34bの係数と、処理識別子ごとにおける仮近似式34bの係数とが、概ね同じであると判定した場合、ステップS32の処理へ移行する。係数算出部23は、プロセスごとにおける仮近似式34bの係数と、処理識別子ごとにおける仮近似式34bの係数とが、概ね同じでないと判定した場合、ステップS34の処理へ移行する。なお、複数の値が概ね同じであるか否かは(同様の値であるか否かは)、例えば、複数の値の平均値を算出し、複数の値のそれぞれと平均値との差が、所定の範囲内であれば、複数の値は、概ね同じであるとする等、チューニングポリシーパラメータの一つとして与えられる条件またはカスタマイズ可能なロジックで判別する。
 ステップS31にて、係数算出部23は、プロセスごとにおける仮近似式34bの係数と、処理識別子ごとにおける仮近似式34bの係数とが、概ね同じであると判定した場合(ステップS31の「Yes」の場合)、回帰分析により、図5のデータ処理構造に応じた近似式(20)の係数「a」および「b」を算出する(ステップS32)。図5のデータ処理構造の場合、処理識別子ごとの仮近似式34bの係数およびプロセスごとの仮近似式34bの係数は、概ね同じとなるからである。なお、係数「a」および「b」は、図16の矢印A23~A30に示す仮近似式34bの係数の算出段階で求まっている。
 次に、パラメータ算出部24は、ステップS32にて算出された係数より、図5のデータ処理構造に応じた、新たな流量制御パラメータを算出する(ステップS33)。例えば、パラメータ算出部24は、新たな流量制御パラメータの最大同時実行件数「M」を、M=max(ceiling(b))で算出する。なお、上記したように、Webシステム2のリクエストされる処理の種類が均一の場合である場合、式(17)の「r」は、「r=1」となる。そして、「r=1」の場合、式(17)が「0」となる条件は、q=Mとなる。従って、図5のデータ処理構造における最大同時実行件数「M」は、M=max(ceiling(b))で算出することができる。
 また、パラメータ算出部24は、式(21)に、ステップS33で算出した最大同時実行件数「M」を代入し、図17のステップS21でチューニングポリシーパラメータの一つとして入力されるWebシステム2で許容される内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」をシミュレーションによって求める。
 例えば、パラメータ算出部24は、ステップS33にて、図22のグラフに示すように、いくつかの「L」の値を式(21)に代入し、内部保留時間「yLimit」を超えないような内部保留リクエスト件数「LLimit」を求める。そして、パラメータ算出部24は、(LLimit-M)により、最大キュー長(QueueSize)を算出する。もし、(LLimit-M)が0以下になった場合、最大キュー長(QueueSize)は0、最大同時実行件数「M」は「LLimit」の値で、再度置き換える。
 前記のステップS33において、図5の流量制御パラメータ「M,QueueSize」が求まる。図5のデータ処理構造の場合、Webシステム2全体で1種類の値の流量制御パラメータを反映する。
 ステップS31にて、係数算出部23は、プロセスごとにおける仮近似式34bの係数と、処理識別子ごとにおける仮近似式34bの係数とが、概ね同じでないと判定した場合(ステップS31の「No」の場合)、処理識別子ごとの仮係数が、同一プロセス内において概ね同じであるか否か判定する(ステップS34)。例えば、係数算出部23は、図16の矢印A23~A30に示す仮近似式34bの指数部の分母を切り上げて整数値化した値が、同一プロセス内において、概ね同じであるか否か判定する。具体的には、係数算出部23は、チューニングポリシーパラメータの一つとして与えられる処理識別子毎の類似度判定条件に従って、図16の矢印A23~A25,A27,A28に示すプロセス「WebAPSv01;8009」の仮近似式34bの指数部の分母を切り上げて整数値化した値が、概ね同じ値であるか否か判定し、また、図16の矢印A26,A29,A30に示すプロセス「WebAPSv02;8008」の仮近似式34bの指数部の分母を切り上げて整数値化した値が、概ね同じ値であるか否か判定する。係数算出部23は、処理識別子ごとの仮近似式34bの係数が、同一プロセス内において概ね同じであると判定した場合、ステップS35の処理へ移行する。係数算出部23は、処理識別子ごとの仮近似式34bの係数が、同一プロセス内において概ね同じでないと判定した場合、ステップS37の処理へ移行する。
 係数算出部23は、ステップS34にて、処理識別子「i」ごとの仮近似式34bの係数「bi」が、処理識別子「i」が属する同一プロセス「j」内において概ね同じであると判定した場合(ステップS34の「Yes」の場合)、ステップS35において、図5のデータ処理構造に応じた近似式(22)と近似式(23)の係数を算出する。
 ただし、「L<M」、すなわち内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数「M」の値未満である場合、近似式(22)は、先行ステップS25で用いた仮近似式(1)と同形であるので、係数「v」および「w」、図16の矢印A21,A22に示す仮近似式34bの係数の算出段階で求まっている。
 従って、図16の矢印A21,A22に示す仮近似式34bの係数の算出段階で求まっており、仮近似式34bの定数項の係数「p」を近似式(22)での係数「v」、仮近似式34bの指数部分母の係数「q」を近似式(22)での係数「w」として引き当てる。
 次に、稼働データから抽出した負荷量(内部保留リクエスト件数)と内部保留時間とのうち、Webシステム2に設定されている現在の最大同時実行件数「M」を超える負荷量(内部保留リクエスト件数)「L」と、その負荷量(内部保留リクエスト件数)「L」における内部保留時間「y」と、「L≧M」の場合の式(15)と、を用いて回帰分析し係数δを算出し、式(22)と式(23)とが「L=M」で交差することを条件とするような式(16)に示す1次方程式を解いて、係数「r」を算出する。
 次に、パラメータ算出部24は、ステップS35までに算出された係数を式(23)に代入し、図8のデータ処理構造に応じた、新たな流量制御パラメータを算出する(ステップS36)。
 例えば、パラメータ算出部24は、ステップS25にて算出された係数「v、w」と、ステップS35にて算出された係数「r」と、図17のステップS21でチューニングポリシーパラメータの一つとして入力された想定負荷量「L」とを式(23)に代入し、図4のG12のグラフに示すように、いくつかの「M」値を式(23)に代入し、内部保留時間「y」が最少となるような「M」の値を最大同時実行件数「M」の改善値として採択する。
 また、パラメータ算出部24は、式(23)中の「M」をステップS36で算出した最大同時実行件数「M」の値で固定し、図17のステップS21でチューニングポリシーパラメータの一つとして入力されたプロセス「j」で許容される内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」をシミュレーションによって求める。
 例えば、パラメータ算出部24は、ステップS36にて、図22のグラフに示すように、いくつかの「L」の値を式(23)に代入し、内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」を求める。そして、パラメータ算出部24は、(L-M)により、最大キュー長(QueueSize)を算出する。もし、(L-M)が0以下になった場合、最大キュー長(QueueSize)は0、最大同時実行件数「M」は「L」の値で、再度置き換える。
 前記のステップS36において、図8のプロセス「j」ごとの流量制御パラメータ「M、QueueSize」が求まる。図8のデータ処理構造の場合、プロセス毎に異なりうる値の流量制御パラメータをWebシステム2に反映する。
 ステップS34にて、係数算出部23は、処理識別子ごとの仮近似式34bの係数が、同一プロセス内において概ね同じでないと判定した場合(ステップS34の「No」の場合)、図17のステップS22で受信したWebシステム2の流量制御パラメータの種類が、プロセスごとのみか否か判定する(ステップS37)。
 ここで、ステップS34にて、係数算出部23が、処理識別子ごとの仮近似式34bの係数が、同一プロセス内において概ね同じでないと判定したということは、Webシステム2のデータ処理構造は、プロセス(キュー)に不均一な処理内容に対するリクエストが入力されるということになる。すなわち、Webシステム2は、図9または図10のどちらかのデータ処理構造を有することになる。
 係数算出部23は、図17のステップS22で受信したWebシステム2の流量制御パラメータの種類が、プロセスごとのみにおいて存在するか否か判定することによって、Webシステム2のデータ処理構造が、図9のデータ処理構造であるか、または、図10のデータ処理構造であるか、を判定する。係数算出部23は、図17のステップS22で受信したWebシステム2の流量制御パラメータの種類が、プロセスごとのみであると判定した場合、ステップS38の処理へ移行する。係数算出部23は、図17のステップS22で受信したWebシステム2の流量制御パラメータの種類が、プロセスごとのみでないと判定した場合、ステップS40の処理へ移行する。
 なお、図9のデータ処理構造の場合、プロセスの種類ごとにおける流量制御パラメータと、処理識別子の種類ごとにおける流量制御パラメータとが存在する。例えば、図9では、点線枠D1全体(プロセスP1)における流量制御パラメータ(1個)と、処理リクエスト(処理識別子)a,bごとにおける流量制御パラメータ(2個)が存在する。また、点線枠D2全体(プロセスP2)における流量制御パラメータ(1個)と、処理リクエスト(処理識別子)c,dごとにおける流量制御パラメータ(2個)が存在する。また、点線枠D3全体(プロセスP3)における流量制御パラメータ(1個)と、処理リクエスト(処理識別子)e,f,gごとにおける流量制御パラメータ(3個)が存在する。すなわち、図9では、合計10個の流量制御パラメータが存在する。
 一方、図10のデータ処理構造の場合、プロセスの種類ごとにおける流量制御パラメータが存在する。例えば、図10では、点線枠D1(プロセスP1)における流量制御パラメータ(1個)と、点線枠D2(プロセスP2)における流量制御パラメータ(1個)と、点線枠D3a,S3b(プロセスP3)における流量制御パラメータ(1個)とが存在する。すなわち、図10では、合計3個の流量制御パラメータが存在する。
 係数算出部23は、ステップS37にて、Webシステム2の流量制御パラメータの種類が、プロセスごとのみであると判定した場合(ステップS37の「Yes」の場合)、ステップS38において、図10のデータ処理構造に応じた近似式(24)の係数「a」「b」と、処理識別子「i」が属するプロセス「j」毎の近似式(25)の係数「v」「w」と、処理識別子「i」毎の係数「r」と、を算出する。
 ただし、「L<M」、すなわち内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数「M」の値未満である場合、近似式(24)は、先行ステップS25で用いた仮近似式(1)と同形であるので、処理識別子「i」毎の係数「a」および「b」は、図16の矢印A23~A30に示す仮近似式34bの係数の算出段階で求まっている。同様に、処理識別子「i」が属するプロセス「j」毎の係数「v」とおよび「w」も、図16の矢印A21,A22に示す仮近似式34bの係数の算出段階で求まっている。
次に、稼働データから抽出した負荷量(内部保留リクエスト件数)と内部保留時間とのうち、稼動データ採取時に処理識別子「i」毎に設定されていた最大同時実行件数「M」を超える負荷量(内部保留リクエスト件数)「L」と、その負荷量(内部保留リクエスト件数)「L」における内部保留時間「y」と、「L≧M」の場合の式(15)と、を用いて回帰分析し係数δを算出し、式(24)と式(25)とが「L=M」で交差することを条件とするような式(16)に示す1次方程式を解いて、係数「r」を算出する。
 次に、パラメータ算出部24は、ステップS38までに算出された係数を式(25)に代入し、図10のデータ処理構造に応じた、新たな流量制御パラメータを算出する(ステップS39)。
 例えば、パラメータ算出ステップS39は、ステップS25にて算出された「a、b、v、w」とステップS38にて算出された係数「r」と、チューニングポリシーパラメータの一つとして与えられる想定負荷量「L」とを式(25)に代入し、図4のG12のグラフに示すように、いくつかの「M」値を式(25)に代入し、内部保留時間「y」が最少となるような「M」の値を最大同時実行件数「M」の改善値として採択する。
 また、パラメータ算出部24は、式(23)中の「M」をステップS39で算出した最大同時実行件数「M」の値で固定し、図17のステップS21でチューニングポリシーパラメータの一つとして入力される処理識別子「i」が属するプロセス「j」で許容される内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」をシミュレーションによって求める。
 例えば、パラメータ算出部24は、ステップS39にて、図22のグラフに示すように、いくつかの「L」の値を式(23)に代入し、内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」を求める。そして、パラメータ算出部24は、(L-M)により、最大キュー長(QueueSize)を算出する。もし、(L-M)が0以下になった場合、最大キュー長(QueueSize)は0、最大同時実行件数「M」は「L」の値で、再度置き換える。
 そして、パラメータ算出部24(ステップS41)は、プロセス「j」に属する処理識別子「i」についての最大同時実行件数「M」の加重平均を算出し、算出した加重平均をプロセス「j」における最大同時実行件数「M」として採用する。また、パラメータ算出部24は、プロセス「j」に属する処理識別子「i」についての最大キュー長(QueueSize)の加重平均を算出し、算出した加重平均をプロセス「j」における最大キュー長(QueueSize)として採用する。
 ここで、「処理識別子毎の改善値に対する加重の係数」については、チューニングポリシーパラメータの1つとして直接的または間接的に入力される、あるいは、処理装置の中のカスタマイズ可能なロジックとして組込んで、入力操作を省力化しても良い。
 図10のデータ処理構造では、プロセス「j」毎の流量制御パラメータである最大同時実行件数「M」と最大キュー長(QueueSize)のみをWebシステム2に反映し、処理識別子「i」毎の流量制御パラメータは反映しない。
 係数算出部23は、ステップS37にて、Webシステム2の流量制御パラメータの種類が、プロセスごとのみであると判定した場合(ステップS37の「Yes」の場合)、ステップS40において、図9のデータ処理構造に応じた近似式(24)の係数「a」「b」と、処理識別子「i」が属するプロセス「j」毎の近似式(25)のの係数「v」「w」と、処理識別子「i」毎の係数「r」と、を算出する。
 ただし、「L<M」、すなわち内部保留リクエスト件数「L」が稼働データ採取時の最大同時実行件数「M」の値未満である場合、近似式(24)は、先行ステップS25で用いた仮近似式(1)と同形であるので、処理識別子「i」毎の係数「a」および「b」は、図16の矢印A23~A30に示す仮近似式34bの係数の算出段階で求まっている。同様に、処理識別子「i」が属するプロセス「j」毎の係数「v」とおよび「w」も、図16の矢印A21,A22に示す仮近似式34bの係数の算出段階で求まっている。
 次に、稼働データから抽出した負荷量(内部保留リクエスト件数)と内部保留時間とのうち、稼動データ採取時に処理識別子「i」毎に設定されていた最大同時実行件数「M」を超える負荷量(内部保留リクエスト件数)「L」と、その負荷量(内部保留リクエスト件数)「L」における内部保留時間「y」と、「L≧M」の場合の式(15)と、を用いて回帰分析し係数δを算出し、式(24)と式(25)とが「L=M」で交差することを条件とするような式(16)に示す1次方程式を解いて、係数「r」を算出する。
 次に、パラメータ算出部24は、ステップS40までに算出された係数を式(25)に代入し、図9のデータ処理構造に応じた、新たな流量制御パラメータを算出する(ステップS41)。
 例えば、パラメータ算出部24は、ステップS25にて算出された係数「a、b、v、w」と、ステップS40にて算出された係数「r」と、図17のステップS21でチューニングポリシーパラメータの一つとして入力された想定負荷量「L」とを、式(25)に代入し、図4のG12のグラフに示すように、いくつかの「M」値を式(25)に代入し、内部保留時間「y」が最少となるような「M」の値を最大同時実行件数「M」の改善値として採択する。
 また、パラメータ算出部24は、式(25)中の「M」をステップS41で算出した最大同時実行件数「M」の値で固定し、図17のステップS21でチューニングポリシーパラメータの一つとして入力される処理識別子「i」で許容される内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」をシミュレーションによって求める。
 例えば、パラメータ算出部24は、ステップS41にて、図22のグラフに示すように、いくつかの「L」の値を式(23)に代入し、内部保留時間「yLimit」を超えないような内部保留リクエスト件数「L」を求める。そして、パラメータ算出部24は、(L-M)により、最大キュー長(QueueSize)を算出する。もし、(L-M)が0以下になった場合、最大キュー長(QueueSize)は0、最大同時実行件数「M」は「L」の値で、再度置き換える。
 また、パラメータ算出部24は、プロセス「j」に属する処理識別子「i」毎の最大同時実行件数「M」の最大値を、そのプロセス「j」における最大同時実行件数「M」とする。また、パラメータ算出部24は、プロセス「j」に属する処理識別子「i」における最大キュー長(QueueSize)の最大値を、そのプロセス「j」における最大キュー長(QueueSize)とする。
 これにより、図9のデータ処理構造に対して、処理識別子「i」の種類ごとにおける流量制御パラメータ「M,QueueSizeM」と、プロセス「j」の種類ごとにおける流量制御パラメータ「M,QueueSize」が求まる。
 図9のデータ処理構造では、プロセス「j」毎の流量制御パラメータである最大同時実行件数「M」と最大キュー長だけではなく、処理識別子「i」毎の流量制御パラメータも、Webシステム2に反映する。
 なお、図9のデータ処理構造に対する流量制御パラメータの算出手順と、図10のデータ処理構造に対する流量制御パラメータの算出手順とは、適用する近似式も処理識別子毎の流量制御パラメータの算出も同一処理であって、処理識別子毎の流量制御パラメータからプロセス単位の流量制御パラメータを算出する加重を最大値に固定している処が異なる。
 以上、図18に示したフローチャートの動作により、Webシステム2のデータ処理構造に応じた流量制御パラメータを算出することができる。
 なお、図10のデータ処理構成では、チューニングポリシーパラメータの一つとして与えられる条件に従って流量制御パラメータを加重平均して求めるとしたが、加重平均の仕方には、例えば、次のような方法がある。例えば、処理識別子「i」の処理リクエストの発生比率を加重パラメータとする。または、処理識別子「i」ごとの合計処理時間の比率を加重パラメータとする。または、想定内部保留リクエスト件数「L」において、最も遅い処理識別子「i」に対する加重パラメータを「1」、その他の処理識別子に対する加重パラメータを「0」とする。または、稼働データ中で内部保留時間の合計が最も長かった処理識別子「i」に対する加重パラメータを「1」、その他の処理識別子に対する加重パラメータを「0」とする。または、処理識別子「i」に対する最大同時実行件数の新たな候補値「M」の最小値に対する加重パラメータを「1」、その他の処理識別子に対する加重パラメータを「0」とする。または、処理識別子「i」に対する最大同時実行件数の新たな候補値「M」の最大値に対する加重パラメータを「1」、その他の処理識別子に対する加重パラメータを「0」とする。または、最大同時実行件数の新たな候補値「M」の中央値を最大同時実行件数の新たな値とする。または、指定された処理識別子「i」に対する最大同時実行件数の新たな候補値「M」の加重パラメータを1、その他の処理識別子に対する加重パラメータを「0」とする。
 上述したフロー図の各処理単位は、情報処理装置1の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。情報処理装置1の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。
 図19は、情報処理装置1の機能を実現するハードウェア構成の一例を示した図である。情報処理装置1は、例えば、図19に示すような、CPU等の演算装置41と、RAM(Random Access Memory)などの主記憶装置42と、HDD(Hard Disk Drive)等の補助記憶装置43と、有線又は無線により通信ネットワークと接続するための通信インターフェイス(I/F)44と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置45と、液晶ディスプレイなどの表示装置46と、DVD(Digital Versatile Disk)などの持ち運び可能な記憶媒体に対する情報の読み書きを行う読み書き装置47と、有している。
 例えば、情報処理装置1の抽出部22と、係数算出部23と、パラメータ算出部24との機能は、補助記憶装置43などから主記憶装置42にロードされた所定のプログラムを演算装置41が実行することで実現される。記憶部26は、例えば、演算装置41が主記憶装置42または補助記憶装置43を利用することで実現される。受信部21と送信部25は、演算装置41が通信I/F64を利用することで実現される。
 なお、上記の所定のプログラムは、例えば、読み書き装置47により読み取られた記憶媒体からインストールされてもよいし、通信I/F44を介してネットワークからインストールされてもよい。
 また、抽出部22と、係数算出部23と、パラメータ算出部24との一部またはすべての機能は、例えば、演算装置、記憶装置、駆動回路などを備えるASIC(Application Specific Integrated Circuit)を備えるコントローラー基板等により実現してもよい。
 上述した情報処理装置1の機能構成は、情報処理装置1の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。情報処理装置1の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
 このように、情報処理装置1は、Webシステム2の稼働データから、内部保留リクエスト件数「L」が最大同時実行件数「M」より小さい場合の近似式の仮係数を算出し、算出した仮係数に基づいて、Webシステム2のデータ処理構造に応じた近似式を選択する。そして、情報処理装置1は、選択した近似式の係数を算出し、係数を算出した近似式から、Webシステム2の新たな流量制御パラメータを算出する。これにより、Webシステム2のデータ処理構造に応じた適切な流量制御パラメータを算出することができる。
 また、情報処理装置1は、Webシステム2の稼働データから、Webシステム2の新たな流量制御パラメータを算出する。すなわち、情報処理装置1は、端末装置3とWebシステム2との間に依存するデータ(例えば、図2のステップS1~S4,S9~S11間)を含まないWebシステム2のデータから、Webシステム2の新たな流量制御パラメータを算出する。 これにより、情報処理装置1は、Webシステム2のデータ処理構造に応じた、高精度な流量制御パラメータを算出することができる。
 図20は、端末装置3からWebシステム2に負荷を与えた場合の最大同時実行件数と応答時間との関係を示した図である。図20の実線で示すグラフは、端末装置3から負荷を与え、端末装置3において、処理の応答時間を測定した、Webシステム2の最大同時実行件数と応答時間との関係を示したグラフである。また、図20の点線で示すグラフは、Webシステム2に直接負荷を与え、Webシステム2において、処理の応答時間を測定した、Webシステム2の最大同時実行件数と応答時間との関係を示したグラフである。
 端末装置3から、Webシステム2に負荷を与え、端末装置3において応答時間を測定し、Webシステム2の最適な最大同時実行件数を求めようとすると、矢印A41a,41bに示すように、誤差を含む恐れがある。これは、Webシステム2以外の端末装置3やネットワーク4による、応答時間の誤差が含まれるからである。
 一方、本願発明の情報処理装置1は、上記したように、Webシステム2の稼働データの内の流量制御パラメータによって制御される内部処理の開始時刻と終了時刻とから、Webシステム2の新たな流量制御パラメータを算出するので、誤差の少ない高精度な流量制御パラメータを算出することができる。
 また、情報処理装置1は、上記したように、Webシステム2の稼働データから、Webシステム2のデータ処理構造に応じた近似式の係数を算出し、流量制御パラメータ変更後の内部保留時間をシミュレートして、内部保留時間が短くなるような流量制御パラメータを採用するので、大量のデータ投入が必要となる負荷投入実験の繰り返しによる応答時間の比較を行う必要がなく、流量制御パラメータを容易に求めることができる。
 また、専門家の分析により、流量制御パラメータを求めることは容易ではなかった。
 図21は、流量制御パラメータのチューニング例を説明する図である。図21には、遅い処理のプロセスと早い処理のプロセスの、負荷量に対する内部保留時間の関係が示してある。
 現在、1つの流量制御パラメータで制御されるプロセスに早い処理と遅い処理とが含まれるようなWebシステムに、最大同時実行件数として、「6」が設定されているとする。この場合において、早い処理のプロセスの内部保留時間を短くするため、最大同時実行件数を「6」から「20」へ変更するとする。この場合、早い処理のプロセスの内部保留時間は、矢印A42aに示すように短くなるが、遅い処理のプロセスの内部保留時間は、矢印A42bに示すように長くなる。すなわち、流量制御パラメータのチューニングは、トレードオフの関係を有する場合があり、流量制御パラメータを求めることは容易ではなかった。特に、図9に示すデータ処理構造の場合、多くの負荷投入実験と専門家の高度な分析を必要とし、流量制御パラメータを求めることは容易でなかった。これに対し、情報処理装置1によれば、高精度な流量制御パラメータを容易に求めることができる。
 また、1段のM/M/Cモデルだけでは、処理窓口に入っている処理リクエストの処理時間を見積もることはできない。すなわち、1段のM/M/Cモデルだけでは、内部保留リクエスト件数「L」と、最大同時実行件数「M」とに対する内部保留時間の式f(M,L)は、内部保留リクエスト件数「L」が最大同時実行件数「M」を超える部分の傾きしか得られず、L<Mの場合の内部保留時間を算出できない。
 図22は、許容待ち時間による最大キュー長の算出を説明する図である。図22には、最大同時実行件数が「10」の場合の、内部保留リクエスト件数に対する内部保留時間の関係の例が示してある。図22において、例えば、Webシステムで許容される内部保留時間を「8秒」とした場合、最大同時実行件数を「9」、最大キュー長を「0」とすることはできなかった。一方、情報処理装置1では、最大同時実行件数において変曲点がある場合でも、流量制御パラメータを算出することができる。
 以上、本発明について実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
 例えば、内部保留リクエスト件数の発生頻度が少ないものに対しては、仮近似式を算出する際、その内部保留リクエスト件数の内部保留時間の平均値を用いないようにしてもよい。例えば、図16の1マスの斜線に示す内部保留リクエスト件数「8」の発生頻度がチューニングポリシーパラメータの一つとして与えられた閾値より少なかった場合、係数算出部23は、1マスの斜線の平均値を回帰分析用のデータとして用いないで、矢印A27に示す仮近似式を算出する。
 また、係数算出部23は、内部保留リクエスト件数の種類が少ないものに対しては、仮近似式を算出しないようにしてもよい。例えば、図16の5マスの斜線に示す内部保留リクエスト件数は、5種類しかない。この場合、係数算出部23は、チューニングポリシーパラメータの一つとして与えられた閾値より内部保留リクエスト件数の種類が少ないもデータを、矢印A28に示す行の仮近似式を算出しないようにしてもよい。
 また、内部保留リクエスト件数に対する内部保留時間の平均値が、隣接する内部保留リクエスト件数に対する内部保留時間の平均値から予想される値の範囲から外れている場合、その平均値を除いて、仮近似式を算出するようにしてもよい。ここで除外する条件もチューニングポリシーパラメータの一つとして与えられてよい。
 図23は、内部保留リクエスト件数に対する内部保留時間の平均値をグラフ化した図である。内部保留リクエスト件数に対する内部保留時間の平均値をグラフ化すると、例えば、図23のようになる。
 図23の内部保留リクエスト件数「5」、「11」に示す矢印A51a,51bは、平均値を結ぶ曲線から外れている。すなわち、矢印A51,A52に示す内部保留リクエスト件数「5」、「11」に対する平均値は、予想される値から外れていると考えられる。この場合、係数算出部23は、矢印A51a,51bに示す内部保留リクエスト件数「5」、「11」に対する平均値を除いて、仮近似式を算出するようにしてもよい。
 また、図23では、内部保留リクエスト件数「2」において変曲点が存在する。このように、内部保留リクエスト件数に対する平均値に変曲点が存在する場合、係数算出部23は、変曲点の内部保留リクエスト件数を、仮近似式を算出する下限値として、再度、仮近似式を算出するようにしてもよい。例えば、係数算出部23は、内部保留リクエスト件数「2」以上の平均値を用いて、仮近似式を算出するようにする(図23の内部保留リクエスト件数「1」の平均値を除いて、仮近似式を算出する)。
 また、上記では、受信部21は、Webシステム2から稼働データを受信するとしたが、例えば、Webシステム2の稼働データをCD-ROMなどの記憶媒体に記憶し、読み書き装置47から、記憶媒体に記憶された稼働データを受信(入力)するようにしてもよい。
 また、受信部21は、Webシステム2から、Webシステム2に現在設定されている流量制御パラメータを受信するとしたが、Webシステム2の管理者から、Webシステム2に現在設定されている流量制御パラメータを受付けるようにしてもよい。
 また、上記では、送信部25は、新たに算出された流量制御パラメータをWebシステム2に送信するとしたが、例えば、端末装置のディスプレイに表示するようにしてもよい。そして、例えば、Webシステム2を管理する管理者が、ディスプレイに表示された流量制御パラメータを、Webシステム2に設定するようにしてもよい。
 また、情報処理装置1は、Webシステム2から、稼働データとWebシステム2に現在設定されている流量制御パラメータとを受信するとしたが、Webシステム2の管理者が、情報処理装置1に入力するようにしてもよい。例えば、Webシステム2の管理者は、Webシステム2の稼働データをCD-ROM等の記憶媒体に記憶し、そのCD-ROMを情報処理装置1に読み込ませるようにしてもよい。
 また、送信部25は、パラメータ算出部24によって算出された流量制御パラメータをWebシステム2に送信するとしたが、Webシステム2の管理者が、パラメータ算出部24によって算出された流量制御パラメータを、Webシステム2に設定してもよい。
 また、チューニングポリシーパラメータには、少なくとも以下のものが含まれる。
・処理識別情報の抽出条件
・処理識別子毎の流量制御パラメータを適用可能か否かの情報
・想定負荷量
・内部保留時間の許容限界(内部保留時間の許容限界「Ylimit」)
(処理識別子毎に異なるキューサイズが設定可能(=処理識別子毎の流量制御パラメータが有るWebシステム)な場合、処理識別子毎の内部保留時間の許容限界
 また、チューニングポリシーパラメータは、以下の情報を、直接的、または、間接的に含み、さらに、処理装置の中のカスタマイズ可能なロジックとして組込んで、入力操作を省力化しても良い。
<稼働データの入力先に関する指定内容>
・読み込み可能な場所に有る稼働データの内、処理対象とするWebサーバやプロセスを選択する手段
・読み込み可能な稼働データの内、分析対象とする期間
(ログレコードに記録されている処理終了時刻の下限と上限)
<処理識別情報の抽出指定パラメータ>
・稼働データの採取元の、物理的なWebサーバの識別情報やプロセスの識別情報から、回帰分析用の情報における、プロセス単位の処理識別子を付与する、情報抽出規則(例えば、負荷分散機を適用するWebシステムで、複数台のWebサーバを、1種類のWebサーバと見なす、等)
・稼働データから、処理識別情報を抽出する条件(図14の33a)、および、処理識別子の付与規則(図14の33b)
・稼働データのログファイルに記録されるダウンロードデータ長等の数量を、処理識別子に反映する条件(例えば、ダウンロードしたデータ長の対数を有効数字2ケタで切り上げた数を、処理識別情報の一部にする、等)
<想定負荷量に関する指定内容>
・内部保留時間の近似式(f(M,L))与えるLの値を直接指定する。
・稼働データ中の内部保留リクエスト件数(L)の最大値を用いる。
・稼働データ中の内部保留リクエスト件数(L)の平均値を用いる。
・許容する内部保留時間の上限値(YLimit)に達するような内部保留リクエスト件数(L)を用いる。
(例えば、流量制御パラメータ設定値を変更する前の稼働システムで、処理識別子「i」の内部保留時間が平均10秒であった内部保留リクエスト件数(L))
・処理識別子毎のジョブミックス(処理識別子毎のリクエスト発生頻度)
<処理識別子毎の改善値に対する加重を間接的に指定する内容>
・処理識別子毎の流量制御パラメータの加重和によってシステム全体の流量制御パラメータを算出する為の係数、または、下段に示すような、係数を導出できるような条件
・採取データの稼働期間のジョブミックスに応じた平均
処理識別子「i」毎の発生比率を加重とする。
・採取データの稼働期間の処理識別子「i」毎の延べ走行時間に応じた平均
処理識別子「i」毎の合計処理時間の比率を加重とする。
・最遅い応答時間の最小化を優先する
想定内部保留リクエスト件数「L」において、最も遅い処理識別子「i」に対する加重を1、その他の処理識別子に対する加重を0とする。
・稼働データ中で内部保留時間の合計が最も長かった処理識別子「i」に対する加重を1、その他の処理識別子に対する加重を0とする。
・最急勾配の処理時間の最小化
処理識別子「i」に対する最大同時実行件数設定値の改善値の候補「M」が最少値に対する加重を1、その他の処理識別子に対する加重を0とする。
・内部保留リクエスト件数の最大化
処理識別子「i」に対する最大同時実行件数設定値の改善値の候補「M」が最大値に対する加重を1、その他の処理識別子に対する加重を0とする。
(特に、この選択肢は、uCosminexus(登録商標)の例のように、URLグループ毎の流量制御パラメータと、プロセス全体の流量制御パラメータ等で、多重に内部保留リクエスト件数を制御するパラメータがある場合にも必要となる)
・中央値
最大同時実行件数設定値の改善値の候補「M」の中央値を最大同時実行件数設定値の改善値とする。
・処理識別子が指定された処理の内部保留時間の最小化
指定された処理識別子「i」に対する最大同時実行件数設定値の改善値の候補「M」の加重を1、その他の処理識別子に対する加重を0とする。
<処理識別子毎の類似度判定条件>
・同一プロセス「j」に属する処理識別子「i」が「均一処理」であるか否かを判別する条件
 処理識別子が「均一処理」であるか否か、仮近似式34bの指数部係値が「概ね同じ」であるか否かを判別する条件として、指数部係数「bi」の逆数を整数に切り上げた値の差異が1以内である場合を均一であると見なす、あるいは、「bi」の比率の差異が10%以内である場合を均一であると見なす、等の条件。
 また、本発明は、情報処理装置1の流量制御パラメータを算出する方法、プログラム、および当該プログラムを記憶した記憶媒体として提供することもできる。
 1 情報処理装置、2 Webシステム、2a,2b Webサーバ、3 端末装置、4 ネットワーク、11a~11d キュー、12a~12d データ処理部、13 分散機、21 受信部、22 抽出部、23 係数算出部、24 パラメータ算出部、25 送信部、26 記憶部、41 演算装置、42 主記憶装置、43 補助記憶装置、44 通信I/F、45 入力装置、46 表示装置、47 読み書き装置。

Claims (12)

  1.  リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出部と、
     前記抽出部によって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出部と、
     前記係数算出部によって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出部と、
     を有することを特徴とする情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記ウェブシステムのデータ処理構造は少なくとも、
     均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される1個のデータ処理部と、を有する第1のデータ処理構造と、
     均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される1個のデータ処理部とが、プロセスに対応して複数設けられる第2のデータ処理構造と、
     不均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、均一な処理内容の前記リクエストデータが入力される複数のデータ処理部とが、プロセスに対応して複数設けられる第3のデータ処理構造と、
     不均一な処理内容の前記リクエストデータが入力される1個のキューと、前記最大同時実行件数の並列処理を行うことができる、不均一な処理内容の前記リクエストデータが入力される1個のデータ処理部と、を有する第4のデータ処理構造と、
     に分けられることを特徴とする情報処理装置。
  3.  請求項1または2に記載の情報処理装置であって、
     前記係数算出部は、
     前記内部保留リクエスト件数が前記最大同時実行件数より小さい場合の近似式によって仮係数を算出し、算出した前記仮係数に基づいて、前記ウェブシステムのデータ処理構造に応じた近似式を選択する、
     ことを特徴とする情報処理装置。
  4.  請求項3に記載の情報処理装置であって、
     前記抽出部は、前記内部保留時間を、プロセス単位による前記内部保留時間と、前記プロセスによって処理される前記処理識別子単位の前記内部保留時間とに区別して抽出し、
     前記係数算出部は、
     前記抽出部によって抽出された前記プロセス単位による前記内部保留時間を近似式に代入して、前記プロセスごとにおける前記仮係数を算出し、
     前記抽出部によって抽出された均一な処理速度の処理を識別する処理識別子単位による前記内部保留時間を近似式に代入して、前記処理識別子ごとにおける前記仮係数を算出する、
     ことを特徴とする情報処理装置。
  5.  請求項4に記載の情報処理装置であって、
     前記係数算出部は、
     前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値である場合、前記第1のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、
     ことを特徴とする情報処理装置。
  6.  請求項4に記載の情報処理装置であって、
     前記係数算出部は、
     前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく、
     前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値である場合、
     前記第2のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、
     ことを特徴とする情報処理装置。
  7.  請求項4に記載の情報処理装置であって、
     前記係数算出部は、
     前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく
     前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値にない場合であって、
     前記流量制御パラメータが前記プロセスごとかつ前記処理識別子ごとにおいて与えられる場合、
     前記第3のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、
     ことを特徴とする情報処理装置。
  8.  請求項4に記載の情報処理装置であって、
     前記係数算出部は、
     前記プロセスごとにおける前記仮係数と、前記処理識別子ごとにおける前記仮係数とが同様の値になく、
     前記処理識別子ごとにおける前記仮係数が、同一プロセス内において同様の値にない場合であって、
     前記流量制御パラメータが前記プロセスごとのみにおいて与えられる場合、
     前記第4のデータ処理構造に応じた前記近似式に基づいて前記係数を算出する、
     ことを特徴とする情報処理装置。
  9.  請求項1~7のいずれか一項に記載の情報処理装置であって、
     前記パラメータ算出部は、
     前記係数が算出された前記近似式から、前記ウェブシステムの想定負荷量における内部保留時間が最少化されるような前記最大同時実行件数を算出する、
     ことを特徴とする情報処理装置。
  10.  請求項9に記載の情報処理装置であって、
     前記パラメータ算出部は、
     前記係数が算出された前記近似式から、前記ウェブシステムで許容される内部保留時間を超えない前記内部保留リクエスト件数の上限値を算出し、
     前記最大同時実行件数と前記内部保留リクエスト件数の上限値とから、前記最大キュー長を算出する、
     ことを特徴とする情報処理装置。
  11.  情報処理装置の流量制御パラメータ算出方法であって、
     リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出ステップと、
     前記抽出ステップによって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出ステップと、
     前記係数算出ステップによって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出ステップと、
     を有することを特徴とする流量制御パラメータ算出方法。
  12.  情報処理装置のプログラムであって、
     リクエストデータを一時記憶するキューの最大サイズを示す最大キュー長と、前記リクエストデータを並列処理できる最大数を示す最大同時実行件数とを含む流量制御パラメータを有するウェブシステムの稼働データから、前記キューの使用数と前記リクエストデータの並列処理数とを合計した内部保留リクエスト件数ごとにおける、前記ウェブシステムのデータ処理に要した内部保留時間を抽出する抽出部と、
     前記抽出部によって抽出された前記内部保留リクエスト件数における前記内部保留時間に対して、前記ウェブシステムのデータ処理構造に応じた近似式を適用して、前記近似式の係数を算出する係数算出部と、
     前記係数算出部によって前記係数が算出された前記近似式から、新たな前記流量制御パラメータを算出するパラメータ算出部と、
     して前記情報処理装置を機能させることを特徴とするプログラム。
PCT/JP2014/060597 2014-04-14 2014-04-14 情報処理装置、流量制御パラメータ算出方法、およびプログラム WO2015159336A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015511825A JP5793259B1 (ja) 2014-04-14 2014-04-14 情報処理装置、流量制御パラメータ算出方法、およびプログラム
US14/432,362 US9317335B2 (en) 2014-04-14 2014-04-14 Reducing internal retention time of processing requests on a web system having different types of data processing structures
PCT/JP2014/060597 WO2015159336A1 (ja) 2014-04-14 2014-04-14 情報処理装置、流量制御パラメータ算出方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/060597 WO2015159336A1 (ja) 2014-04-14 2014-04-14 情報処理装置、流量制御パラメータ算出方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2015159336A1 true WO2015159336A1 (ja) 2015-10-22

Family

ID=54323588

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/060597 WO2015159336A1 (ja) 2014-04-14 2014-04-14 情報処理装置、流量制御パラメータ算出方法、およびプログラム

Country Status (3)

Country Link
US (1) US9317335B2 (ja)
JP (1) JP5793259B1 (ja)
WO (1) WO2015159336A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965323B2 (en) * 2015-03-11 2018-05-08 Western Digital Technologies, Inc. Task queues
US11416912B2 (en) * 2016-05-13 2022-08-16 Digital River, Inc. High volume transaction queueing with machine learning
CN110514982B (zh) * 2019-08-22 2022-03-22 上海兆芯集成电路有限公司 性能分析系统与方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259812A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
US20130024871A1 (en) * 2011-07-19 2013-01-24 International Business Machines Corporation Thread Management in Parallel Processes
JP2013222407A (ja) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd 流量制御機能を有するシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128642A (en) * 1997-07-22 2000-10-03 At&T Corporation Load balancing based on queue length, in a network of processor stations
JP2005184165A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム
JP4646649B2 (ja) 2005-02-14 2011-03-09 株式会社神戸製鋼所 通信サーバ設定値決定装置,そのプログラム及びその方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259812A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
US20130024871A1 (en) * 2011-07-19 2013-01-24 International Business Machines Corporation Thread Management in Parallel Processes
JP2013222407A (ja) * 2012-04-18 2013-10-28 Bank Of Tokyo-Mitsubishi Ufj Ltd 流量制御機能を有するシステム

Also Published As

Publication number Publication date
US20150339162A1 (en) 2015-11-26
US9317335B2 (en) 2016-04-19
JP5793259B1 (ja) 2015-10-14
JPWO2015159336A1 (ja) 2017-04-13

Similar Documents

Publication Publication Date Title
Hung et al. Scheduling jobs across geo-distributed datacenters
Peng et al. Optimus: an efficient dynamic resource scheduler for deep learning clusters
US20160328273A1 (en) Optimizing workloads in a workload placement system
US20090077235A1 (en) Mechanism for profiling and estimating the runtime needed to execute a job
TWI433035B (zh) 按比例調整指令間隔以識別用於代表性指令追蹤的收集點
JPH07281982A (ja) クライアント/サーバ・データ処理システム
US9612751B2 (en) Provisioning advisor
JP2006024017A (ja) コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
JP5938968B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
US10565018B2 (en) Time frame bounded execution of computational algorithms
CN114730277B (zh) 多租户提取变换加载资源共享
Bergsma et al. Generating complex, realistic cloud workloads using recurrent neural networks
US20160019090A1 (en) Data processing control method, computer-readable recording medium, and data processing control device
JP5793259B1 (ja) 情報処理装置、流量制御パラメータ算出方法、およびプログラム
JP2017117242A (ja) 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
US9111022B2 (en) Simulation techniques for predicting in-memory database systems performance
US8544009B2 (en) Method, apparatus, and product for scheduling of distributed processing based on average execution time and communication time
Khomonenko et al. Stochastic models for cloud computing performance evaluation
EP3885910A1 (en) Dynamic quality of service management for deep learning training communication
US9778854B2 (en) Computer system and method for controlling hierarchical storage therefor
CN107493205B (zh) 一种设备集群扩容性能预测方法及装置
JP2017091001A (ja) 仮想インスタンス配置位置決定装置、仮想インスタンス配置位置決定方法および仮想インスタンス配置位置決定プログラム
JP2012128771A (ja) 情報処理装置及びプログラム
Ambati et al. Modeling and analyzing waiting policies for cloud-enabled schedulers

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2015511825

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14432362

Country of ref document: US

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

Ref document number: 14889686

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14889686

Country of ref document: EP

Kind code of ref document: A1