WO2007125942A1 - 負荷制御装置およびその方法 - Google Patents

負荷制御装置およびその方法 Download PDF

Info

Publication number
WO2007125942A1
WO2007125942A1 PCT/JP2007/058918 JP2007058918W WO2007125942A1 WO 2007125942 A1 WO2007125942 A1 WO 2007125942A1 JP 2007058918 W JP2007058918 W JP 2007058918W WO 2007125942 A1 WO2007125942 A1 WO 2007125942A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
response
server
threshold
requests
Prior art date
Application number
PCT/JP2007/058918
Other languages
English (en)
French (fr)
Inventor
Ryosuke Kurebayashi
Osamu Ishida
Satoru Ota
Tsunemasa Hayashi
Kazuaki Obana
Original Assignee
Nippon Telegraph And Telephone Corporation
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 Nippon Telegraph And Telephone Corporation filed Critical Nippon Telegraph And Telephone Corporation
Priority to CN2007800127797A priority Critical patent/CN101421702B/zh
Priority to US12/298,574 priority patent/US8667120B2/en
Priority to EP07742353.1A priority patent/EP2023245B1/en
Priority to JP2008513233A priority patent/JP5189974B2/ja
Publication of WO2007125942A1 publication Critical patent/WO2007125942A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present invention is used in an apparatus that is arranged between a client and a server, forwards a request received from the client to the server, and forwards a response returned from the server in response to the request to the client. To do. In particular, it relates to request scheduling. In addition,
  • Web service The basic mechanism of a service using a Web server (Web service) is as follows. First, the client sends a request with a URL (Uniform Resource Locator) that identifies the content to be acquired to the Web server. When the Web server receives the request, the content corresponding to the URL being requested is sent back to the client as a response. Web services are provided by repeating this request-response.
  • URL Uniform Resource Locator
  • HTTP Hyper Text Transfer Protocol
  • Web server the entire server system that performs Web services
  • HTTP server the function of processing the HTTP protocol on the Web server
  • HTTP server the function of generating content in response to a request
  • Web application the function of generating content in response to a request
  • streaming of video and audio is actively used as content provided by Web services.
  • the basic mechanism of streaming is as follows. [0006] First, the Web browser of the client acquires the metafile of the stream content from the Web server. The meta file describes the URL of the stream content. At the same time, the Web browser starts the player (stream playback application) associated with the metafile extension. Then, based on the URL indicated in the metafile acquired from the Web server, the player requests the streaming server to transmit the stream content. Finally, streaming data is sent to the player.
  • a server In streaming, a server generally uses an RTSP (Real Time Streaming Protocol) protocol for stream content playback control.
  • the RTSP protocol is a protocol based on the HTTP protocol, and plays back stream content by sending and receiving responses to requests and requests between the client and server.
  • RTSP has the concept of a session to control multiple streams simultaneously. In other words, RTSP considers one session from when the player sends a SET UP request to when a streaming ends after sending a TEARDOWN request.
  • the stream server When the stream server receives a SETUP request from the player, the stream server issues a unique session ID. The session ID is given to the response and notified to the client. By giving the session ID notified by the player to subsequent requests, it is possible to identify the session to be controlled in the stream server.
  • Examples of the concentration of service usage include the concentration of requests by buying and selling popular stocks and tickets, and the occasion of a disaster.
  • malicious clients may send a large number of meaningless requests such as F5 attacks. Due to these factors, if excessive requests are sent to the server, the server's request processing performance Decrease.
  • Input / output overhead such as CPZIP processing increases.
  • FIG. 1 is an experimental result showing a decrease in Web server processing performance due to excessive requests.
  • the horizontal axis represents the input request rate, and the vertical axis represents the throughput.
  • a request is sent to a Web server while changing the input request rate, that is, the number of requests per unit time (rps). It measures the throughput, that is, the number of requests (rps) that the Web server was able to complete per unit time.
  • the throughput is proportional to the input rate (Line (a) in Figure 1).
  • the throughput starts to decrease (straight line (c) in Fig. 1). Therefore, even when a request exceeding the maximum performance of the Web server is received, a technology that can maintain the maximum performance of the Web server along the broken line (b) in Fig. 1 is necessary.
  • Figure 2 shows the ideal throughput behavior for reference.
  • Another example of controlling the degree of parallelism is the limitation on the number of sessions of the streaming server. In other words, it is common for streaming servers to place an upper limit on the number of sessions that can be held simultaneously. This avoids server overload associated with an increase in the number of sessions. To do.
  • the performance degradation of the server is caused by an increase in interrupt, input / output, context switching overhead, etc. due to the reception of a new request as shown in FIG. 3 (a).
  • the server does not have a free time until the next request arrives.
  • the present invention has been made under such a background, and an object of the present invention is to provide a load control device and a method thereof capable of avoiding a decrease in server performance when excessive requests are received.
  • the load control device of the present invention is arranged between a client and a server, and mediates transmission / reception of request / response between the two.
  • the request received from the client is sent to the server, and the response returned from Sano is sent to the client.
  • the present invention limits the number of requests waiting for a response, that is, a response that has not been returned from the force sent by the server. In order to perform this restriction, if the number of requests waiting for a response has reached the threshold, the received request is buffered, and the request transmission is waited until the number of requests waiting for a response falls below the threshold.
  • the present invention limits the request transmission of the server so as to simulate the arrival of the ideal request in Fig. 3 (b).
  • the threshold for the number of requests waiting for a response is set to "1" is shown in Fig. 4 (a).
  • Figure 3 (b) it is first necessary to know the completion of thread execution on the server.
  • the completion of execution of a thread in the server is recognized by receiving a response from Sano.
  • the next request is sent to the server only after the response to the previously sent request is returned.
  • the A request that the server cannot handle is not sent to the server. This reduces the server overhead associated with request reception processing.
  • FIG. 4 (a) there is a vacancy in the server from when the server returns responsiveness to when the load control device sends the next request.
  • a value larger than “1” can be set as the threshold of the number of requests waiting for a response.
  • Figure 4 (b) shows an example of execution when the threshold for the number of requests waiting for a response is set to "2".
  • the present invention it is possible to automatically adjust the threshold of the number of requests waiting for a response.
  • the optimal threshold for the number of requests waiting for a response varies depending on the server system configuration (number of servers, number of CPUs, etc.) and application execution time. Therefore, when the threshold for the number of requests waiting for response is set statically, the burden on the administrator of the load control device is heavy, such as the need for prior performance evaluation.
  • a server with two CPUs can process more requests simultaneously than a server with one CPU. Therefore, in order to maximize the throughput of the server, it is necessary to set a larger threshold for the number of requests waiting for a response when the number of CPUs is 2 than when the number of CPUs is 1.
  • the load controller requests the server. There is a problem that the response time until a force response is returned after sending a strike is poor.
  • the response time or throughput of the server is measured, and the threshold of the number of requests waiting for response is automatically adjusted according to the measurement result. This makes it possible to obtain desired response time and throughput regardless of the system configuration or application of the server. As a result, the burden on the administrator required to set the threshold for response-waiting requests can be reduced.
  • a Web server places an upper limit on the number of simultaneous TCP connections.
  • load control based on the number of response-waiting requests may not work.
  • the present invention uses load control based on the number of response-waiting requests in combination with one connection aggregation of the conventional technology.
  • Connection aggregation is a technology that uses the Keep-Alive function of HT TP1.1 to share the TCP connection established between the load control device and the server among multiple clients.
  • connection aggregation When connection aggregation is not used, connections are made between the number of TCP connection force load control devices and servers that exceed the number of currently connected clients. Therefore, even if the frequency of request transmission is low and the client tries many connections, the number of TCP connection connections of the server may reach the upper limit before the response waiting request threshold is exceeded. is there. As a result, it is not possible to supply a sufficient amount of requests to the server to use the server's computational resources. In contrast, when connection aggregation is used, the load control device can adjust the number of TCP connections so that it does not exceed the threshold for the number of response-waiting requests. In other words, as long as the upper limit of the number of simultaneous TCP connections of the server is larger than the threshold for the number of requests waiting for a response, the restriction on the number of simultaneous TCP connections is invalidated.
  • the present invention is arranged between a client and a server, transmits a request received from the client to the server, and transmits a response returned from the sano to the client in response to the request. It is a load control device.
  • the feature of the present invention is that the server has been transmitted to the server.
  • the means for limiting includes a buffer for temporarily storing received requests and a response if the number of requests waiting for a response reaches a threshold.
  • the threshold for the number of requests waiting for the response is increased. And means for decreasing the threshold for the number of requests waiting for a response when the response time exceeds an allowable range.
  • the throughput which is the number of requests processed by the server per unit time, is determined for each threshold of the number of requests waiting for response. And the threshold is increased if the throughput for the current threshold exceeds the throughput for a threshold that is less than the current threshold, and the throughput for the current threshold is less than the threshold for a threshold that is less than the current threshold. It is desirable to provide a means for reducing the threshold.
  • a means for determining whether or not the number of response waiting requests has reached the threshold and a means for determining whether or not the power to increase or decrease the threshold when the request has reached the threshold.
  • the buffer may include means for performing priority control of a request based on identification information of a transmission source client.
  • the buffer may include means for preferentially controlling a request based on whether or not a specific pattern is included in a specific position or range in the request.
  • the buffer may include means for preferentially controlling the request based on whether a specific variable in the request is larger than a preset threshold value.
  • the buffer may include means for preferentially controlling the request based on whether or not the request is encrypted.
  • the buffer may include means for notifying a busy message in response to a request accumulated for a predetermined time or more.
  • the server may be a Web server
  • the buffer may include means for performing priority control of the request based on the display priority of the page display of the request.
  • the request is transmitted from the client to the load control apparatus via a TCP connection, and the buffer is connected to another T connected between the client and the load control apparatus.
  • the means for temporarily storing the pair of identification information of the response transmission destination and the URL The buffer preferentially controls the request based on whether the combination of the identification information of the request source and the URL matches the temporarily stored identification information of the response destination and the URL. Means can be provided.
  • the buffer may include means for preferentially controlling a request based on suspicion of unauthorized access to traffic transmitted from a client.
  • the present invention can also be viewed as a program. That is, the present invention is a program that, when installed in a general-purpose information processing apparatus, causes the general-purpose information processing apparatus to realize a function corresponding to the function of the load control apparatus of the present invention.
  • the present invention can also be viewed as a recording medium. That is, the present invention is a recording medium on which the program of the present invention is recorded.
  • the program of the present invention is recorded on the recording medium of the present invention.
  • the general-purpose information processing apparatus can install the program of the present invention using this recording medium.
  • the program of the present invention can be installed directly from the Sano holding the program of the present invention into the general-purpose information processing apparatus via a network.
  • the load control device of the present invention can be realized using a general-purpose information processing device.
  • the present invention can be viewed as an invention of a load control method executed by the load control device of the present invention. That is, the present invention includes a step of limiting the number of response waiting requests that have been transmitted to the server but a response is returned from the server, and the step of limiting includes the number of response waiting requests. If the threshold value has reached the threshold value, the method includes a step of temporarily storing the received request in a buffer and a step of waiting for transmission of the request with the buffer power until the number of requests waiting for a response falls below the threshold value. This is a load control method. For example, the threshold value is larger than “1”.
  • the threshold of the number of requests waiting for response is set. And increasing the response time if the response time exceeds an allowable range.
  • the threshold of the number of requests waiting for a response is set as the number of requests processed by the server per unit time based on the monitoring status of the server and the monitoring result of the monitoring step. Step by step and increase the threshold if the throughput for the current threshold exceeds the throughput for a threshold less than the current threshold, and increase the throughput for the threshold below the current threshold. It is desirable to have a step of reducing the threshold if it is below.
  • the number of simultaneous TCP connections between the server and itself is determined by the response wait request. It is desirable to have a step of aggregating TCP connections between the client and the client so that the number of clients is less than or equal to the threshold of the number of guests.
  • FIG. 1 is a diagram for explaining a decrease in processing performance of a server due to excessive requests.
  • FIG. 3 Diagram showing the server behavior at the time of excessive requests and the arrival status of the request to the ideal server.
  • FIG. 4 is a diagram showing a state of arrival of a request to a server according to the present invention.
  • FIG. 5 is an overall configuration diagram of the first embodiment.
  • FIG. 6 is a flowchart showing a processing procedure of the load control device of the first embodiment.
  • FIG. 7 is a flowchart showing an execution procedure of request reception processing according to the first embodiment.
  • FIG. 8 is a flowchart showing an execution procedure of a response reception process according to the first embodiment.
  • FIG. 9 is a diagram showing an example of class classification based on the method name of the RTSP request.
  • FIG. 10 is a block diagram of a load control device according to a second embodiment.
  • FIG. 11 is a flowchart illustrating a processing procedure of a request reception unit according to the second embodiment.
  • FIG. 12 A diagram showing a request table.
  • FIG. 13 is a flowchart illustrating a processing procedure of a request transmission unit according to the second embodiment.
  • FIG. 14 is a diagram showing a server-side socket table.
  • FIG. 15 is a flowchart showing a processing procedure of a response receiving unit according to the second embodiment.
  • FIG. 16 is a flowchart illustrating a processing procedure of a response transmission unit according to the second embodiment.
  • FIG. 17 is a flowchart illustrating a processing procedure of a scheduling unit according to the second embodiment.
  • FIG. 18 is a diagram showing the configuration of an experiment that demonstrates the effect of the present invention.
  • FIG. 19 is a diagram showing a configuration table of a server and a load control device for an experiment.
  • FIG. 20 is a diagram showing the effect of the present invention.
  • FIG. 21 An example demonstrating the effect of automatically adjusting the threshold of the number of requests waiting for a response of the present invention
  • FIG. 22 is a diagram showing a change in throughput with respect to a threshold value setting value for the number of requests waiting for a response.
  • FIG. 23 is a diagram showing the effect of automatically adjusting the threshold value of the number of requests waiting for a response according to the present invention.
  • FIG. 24 is a diagram showing the effect of request priority control according to the present invention.
  • FIG. 5 is a block diagram showing a first embodiment of the present invention.
  • the present invention includes clients 1-1 to l-n that issue requests, a server 4 that returns a response corresponding to the request, and a load control device 3 that mediates the request and response.
  • the server 4 may be a software module such as Apache, and may be a hardware module that is independent of physical resources such as a CPU and memory from the load control device 3.
  • the load control device 3 may be connected to two or more servers 4, and the load control may be performed on a plurality of servers 4 with one load control device 3.
  • the load control device 3 may be implemented by extending existing technologies such as reverse proxy, web accelerator, firewall, and load distribution system.
  • the load control device 3 monitors the number of requests that have been sent to the server 4 but have not yet returned a response, that is, the number of requests waiting for a response. If the number of requests waiting for a response exceeds the specified threshold, the received request is buffered. The request transmission is postponed until the number of requests waiting for a response falls below the threshold.
  • FIG. 6 shows a processing procedure of the load control device 3.
  • the load control device 3 first waits until a message is received (Sl).
  • the load control device receives only two types of messages: request or response.
  • S2 When a message is received (S2), if the message is a request, request reception processing is started (S3), and if it is a response, response reception processing is started (S4).
  • FIG. 7 shows the execution procedure of the request reception process.
  • the load control device 3 stores the request in the buffer (S10).
  • a threshold value S11
  • a response waiting request It is assumed that an arbitrary value is given statically as the threshold value for the number of images. If it is above the threshold
  • FIG. 8 shows an execution procedure of the response reception process.
  • the received response is returned to the client that sent the response request (S20).
  • the response waiting request count is decremented by 1 (S21). Then, it is judged whether or not there is a transmission waiting request in the noffer (S22). If there is no request (S22), the process is terminated. If there is a request (S22), an attempt is made to send a request as in the request reception process. That is, it is determined whether or not the number of requests waiting for a response is less than the threshold (S23). If it is equal to or greater than the threshold (S23), the transmission of the request to the server 4 is postponed, and this process ends. If it is less than the threshold value (S23), one request is selected from the noferer (S24). Next, after incrementing the number of requests waiting for a response by 1 (S25), the request is transmitted to server 4 (S26).
  • a request can be processed based on FIFO (First-In First-Out) using a single queue as an algorithm for scheduling the execution order of requests in the buffer. It is also possible to implement priority control using multiple queues according to the importance of the request and the required quality.
  • the requests are classified based on certain rules, and priority control parameters (for example, priority, weight, timeout time) are set according to the result.
  • priority control parameters for example, priority, weight, timeout time
  • a set of requests resulting from classification based on certain rules is defined as a class. Requests are stored in queues by class, and the order of request retrieval between each queue is scheduled based on priority control parameters. As this scheduling algorithm, for example, a request belonging to the class with the highest priority is processed.
  • the number of requests in the notifier may reach the maximum number that can be stored. In this case, select one of the requests in the noffer and execute one of the following.
  • Discard Discard the request.
  • ⁇ Rejection Cancel sending the request to Sano. Then, a busy message or the like is transmitted from the load control device 3 to the clients 1-1 to 1-n. Unlike request discard, the client 1-1—n can clearly indicate that the cause of the request failure is request concentration.
  • ⁇ Transfer Transfers a request to a standby server for overload. This allows the standby server to process the request instead of the server 4 where the load is concentrated.
  • requests are classified into classes based on certain rules, and scheduling is performed based on parameters such as priority, weight, and timeout time set for each class.
  • scheduling is performed based on parameters such as priority, weight, and timeout time set for each class.
  • the class to which the request belongs should be classified based on the following rules.
  • 'Class classification based on source IP address When TCPZIP is used as a protocol for transmitting a request, the client can be identified from the source IP address. Therefore, the request from a specific client can be prioritized or non-prioritized by selecting a queue based on the source IP address.
  • the IP address of the administrator's host is registered in advance in the load control device.
  • the load control device receives the request, it is registered, and if it is a request from a host, it is stored in the high priority class. This protects the administrator's access to the server.
  • 'User Classification based on Agent field: If the server is a Web server, the client can include the User—Agent field in the request header based on the HTTP protocol.
  • the Web server issues a user ID according to the client, and can instruct the client to include the issued user ID in the HTTP request.
  • This user ID can be included in the cookie field, URL query, and request body. Therefore, the client user ID that has been prioritized (or not prioritized) in advance is registered in the load control device.
  • a class is selected according to whether or not the user ID included in the HTTP request matches the registered user ID. This allows, for example, a client paying an additional fee. You can prioritize requests from ant, or conversely, de-prioritize requests from blacklisted clients.
  • [0081] 'Class classification based on methods In HTTP, multiple methods are prepared according to the operation contents for resources. For example, the GET method is used for resource acquisition, and the POST method is used for data transmission to the server. For important processes such as online shopping and updating personal information, it is necessary to send the information entered by the user to the server, so the POST method is used instead of the GET method.
  • the method name is specified on the request line in the request. Therefore, by classifying the request whose method name on the request line matches the pattern "POST" into a high priority class, the priority is high and the request can be preferentially processed.
  • 'Class classification based on file type There is a case where a load such as dynamic content is high and a request for processing is not prioritized. Whether it is dynamic content or static content, the requested file name can also be identified. For example, if CGI is used as dynamic content, the suffix of the requested file name will be .cgi. Therefore, when de-prioritizing CGI, requests to files whose request URL matches the pattern ". Cgi" should be classified into a low-priority class.
  • the threshold value is the value of the Content—Length field that represents the request size of the HTTP header. And classify them into low priority classes for requests that exceed the threshold.
  • a request sent without encryption contains more important information than a request sent without encryption. Therefore, important requests can be protected by classifying encrypted requests into high priority classes. For example, in a Web service, you can select either HTTP communication without encryption or HTTPS communication with encryption as the request transmission method.
  • page processing In Web services, multiple requests may be required before a client browser can display a single page. Repeating a request for displaying one page is referred to as page processing in this specification.
  • the basic procedure for page processing is as follows. First, the client inputs the URL of the resource (hereinafter referred to as “page root resource”) that is the root of the page to be acquired to the browser. Next, the browser sends a request to the Web server based on the input URL, and acquires the page root resource.
  • page root resource the URL of the resource
  • the URL of another resource required for page display is indicated in the page root resource.
  • the browser automatically issues a request for the URL indicated. The above is recursively repeated until all resources necessary for page display are acquired.
  • An example of class classification based on the progress of page processing is shown below.
  • ⁇ Class classification based on whether or not it is a request for a page root resource By classifying requests to a page root resource into a low-priority class, page processing that is already in progress is preferentially processed. . This solves the problem that requests during page processing fail during server congestion and incomplete pages are displayed on the client browser.
  • Priority Queuing described above is used as an algorithm for scheduling requests in the noffer, requests to the page root resource are not processed as long as the page processing request is in the buffer. Therefore, the start of new page processing can be effectively blocked when the server is busy.
  • HTTP1.1 allows multiple requests' responses to be sent and received over a single TCP connection. For this reason, when a browser automatically sends a request to display a page, the TCP connection used to acquire the page route resource is usually reused.
  • a specific execution procedure in the load control device is as follows.
  • Registration of page root resource URL A list of page root resource URLs is registered in advance in the load control device. Then, the classes are classified using the “class classification based on the request contents” described above. In other words, when receiving a request, the load control device first compares the URL of the request with the URL in the table. If the URL of the request matches the URL of the page root resource, the request is classified into a low priority class.
  • Web services may be completed for the first time by browsing or inputting information across multiple pages. For example, in online shopping, you can select items to purchase or enter client information, and finally confirm the purchase details. This completes the purchase procedure for the first time.
  • a session from when the client acquires the first page until it completes acquiring the last page is called a session.
  • the session is used for performing important processing such as money and transactions, and updating personal information.
  • important processing such as money and transactions, and updating personal information.
  • the load control device classifies the class based on the progress of the session to which the request belongs so that high session throughput can be maintained even when the server is busy.
  • session identification information such as a session ID is used in session processing.
  • a web server receives a request for the first page of a session, it issues a unique session ID for each session and returns it to the client along with the response.
  • a typical web server stores the session ID in the Set—Cookie field of the HT TP response.
  • the client includes the session ID notified from the server in the request and sends it to the server.
  • the session ID is stored in the Cookie field of the request when the session ID is notified by the Set—Cookie field of the response.
  • the Web server can identify the session to which the request belongs by the session ID in the request.
  • RTSP used in a streaming server has a standard session concept.
  • a session ID is issued and attached to subsequent requests' responses.
  • the session ID is stored in the Session field of the RTSP header.
  • the progress status of the session to which the request belongs is evaluated using the session ID in the request as a key. For example, to prioritize requests that belong to sessions that have already started, the Cookie field in the request is used for the HTTP protocol, and the Session field in the request is used for the RTSP protocol. Check whether the session ID is included in the request. Then, classify the request including the session ID into a high priority class. As a result, the started session can be preferentially processed by the server. In particular, when Priority Queuing is used as an algorithm for scheduling requests in the noffer, a request for starting a new session is not processed as long as there are requests belonging to the ongoing started session in the buffer. Therefore, the start of new session processing can be effectively blocked when the server is busy.
  • the validity of the session ID can be verified in order to avoid an unauthorized use of the session ID by a malicious client.
  • the execution procedure in a load control apparatus is shown.
  • the session ID of the request if the session ID of the request does not exist in the cache, the request was held when the request was processed by the server.
  • the session ID may be re-registered in the cache.
  • Client identification information such as a request source IP address and user ID may be used as session identification information to be cached. For example, instead of the session ID, the IP address of the client that processed the request at the server is cached, so that the started session is prioritized for each source IP address. An example of this method is shown below. [0117] 1) The load control device caches the IP address of the destination client of the response received from Sano for a certain period of time.
  • the source IP address of the request received by the load control device Verify whether it matches any of the cached session IDs. If they match, it is regarded as a request from a client that has been approved to start processing on the server, and the request is classified into a high-priority class.
  • this method may prioritize even sessions that do not need to be prioritized. For example, when multiple clients access the load control device via the same proxy, the source IP address of the request received by the load control device is all the IP address of the proxy.
  • the cache of session identification information can also be applied to the "class classification based on whether or not the request is for a page root resource" in the class classification based on the progress of the page processing described above.
  • page processing can be regarded as special session processing that is completed in one page. Therefore, the session identification information cache period is limited to the time required to complete one page (typically several seconds). This clears the session identification information in the cache before the client accesses a new page.
  • requests for page root resources for new pages are classified as low priority classes because there is no session identification information in the cache.
  • the session identification information is re-registered in the cache to classify the request for the remaining resources necessary for page display into a high-priority class. be able to.
  • Session progress may be evaluated based on the URL of the request rather than the session ID.
  • the resources of each page constituting the session are stored in a different directory for each page in advance. This makes the request URL
  • the directory indicated by the can identify the page to which the resource requested by the request belongs. Therefore, by using the “class classification based on the request contents” described above, the load control device can classify the requests for each page to which the requested resource belongs. At this time, set a lower priority for pages closer to the start of the session.
  • the server is a streaming server based on RTSP
  • the progress of the session may be evaluated based on the method of the request.
  • RTSP provides methods such as SETUP, PLAY, and TEARDOWN according to the control content of the stream. These methods can be categorized as those used before session establishment and those used after session establishment.
  • Unauthorized access by a malicious client may occupy server computing resources.
  • the load control device of this embodiment is also used with an intrusion detection function that detects traffic that is suspected of unauthorized access, and requests that are determined to have a high possibility of unauthorized access have a low priority. You may classify into classes. Furthermore, in cooperation with “class classification based on client identification information”, it is possible to de-prioritize clients that have sent traffic that has been determined to have a high possibility of unauthorized access for a certain period of time. That is, 1) In the load control device, evaluate the possibility that the traffic being received is unauthorized access.
  • the intrusion detection function includes a load control device and an existing intrusion detection device (IDS: Intru S i 0n Dicti on System) may be realized as an external device of the load control device.
  • the intrusion detection device transmits information related to unauthorized access, that is, the type of unauthorized access and the client identification information as the transmission source as an alert. Based on the alert in the load control device, the request priority control is performed.
  • the threshold value for the number of response wait requests is statically given. However, as described above, manually setting a threshold for the number of response waiting requests places a heavy burden on the administrator of the load control device 3. Therefore, the first embodiment was expanded, and a) the processing performance of server 4 can be maximized, and b) the threshold of the number of response waiting requests is dynamically set so that the response time is within the allowable range. Make it configurable.
  • LN and LT are set as thresholds for N and T. At this time, if N ⁇ LN, the number of requests waiting for response is considered to have not reached the threshold because the amount of requests is small. If T ⁇ LT, it is considered that a good response is returned. Therefore: • If T ⁇ LT, decrease the threshold for the number of requests waiting for a response.
  • N Periodically measure the number (N) of requests waiting in the nofer and the response time T from when the load control device 3 returns a request to the server 4 until receiving a response.
  • LN and LT are set as thresholds for N and T.
  • N Average number of requests waiting in the noffer and Sano CPU usage U.
  • LN and LU are defined as thresholds for N and L.
  • the memory usage rate, bandwidth, and degree of parallelism monitored by the CPU usage rate alone may be monitored, and the maximum value may be set as U.
  • the throughput with respect to the threshold value R of the number of response-waiting requests is expressed as T [R].
  • LN is set as a threshold for the number N of requests in the noffer. At this time, perform the following according to the measured N and T values.
  • T [R] ⁇ kl XT [R,] Means that the throughput is improved by increasing the threshold of the number of requests waiting for response. Therefore, further increase the threshold value of the number of requests waiting for a response.
  • kl is a constant and kl ⁇ l. 0.
  • the present invention based on the number of waiting requests in the notifier, it is determined whether the number of response waiting requests has reached the threshold value. Then, when it is determined that the number of requests waiting for a response has reached the threshold, it is determined whether or not the response waiting request count should be increased.
  • the maximum and minimum thresholds for the number of response-waiting requests are determined. If the threshold for response-waiting requests after correction is out of the range, the correction is not performed. You may do it.
  • TCPZlP Transfer Control Protocol / Internet
  • TCPZlP Transfer Control Protocol / Internet
  • FIG. 10 is a block diagram showing a second embodiment of the present invention.
  • FIG. This embodiment also has the power of the clients 1-1 to 1-n that issue requests, the server 4 that returns a response corresponding to the request, and the load control device 3 that mediates the request 'response.
  • the load control device 3 may be implemented by extending existing technologies such as reverse proxy, Web accelerator, firewall, and load balancing system.
  • the load control system of the present embodiment is also configured with the following seven functional block forces.
  • the request receiving unit 30 transmits the requests received from the clients 1-1 to 1 -n to the scheduling unit 31.
  • Figure 11 shows the processing procedure of the request receiver 30.
  • a socket for sending and receiving requests and responses between clients 1-1-1n and load controller 3 Is generated (S31).
  • an ID socket ID that uniquely identifies the socket is assigned to the generated socket.
  • one client side socket is selected (S32), and the client side socket is inspected (S33).
  • the client side socket is inspected (S33).
  • a request reception process for reading the request from each socket is performed (S35).
  • a request ID that uniquely identifies the request is assigned to each request.
  • the request transmission unit 32 performs management of a socket for transmitting a request from the load control device 3 to the server 4, and processing for transmitting the request.
  • Figure 13 shows the processing procedure of the request transmitter 32.
  • the request transmission unit 32 receives a new transmission request from the scheduling unit 31 (S50)
  • the request transmission unit 32 refers to the server-side socket table shown in FIG. 14 and determines whether there is a free state socket with the destination server 4. Whether or not is searched (S51).
  • a free socket is a TCP connection established between the load control device 3 and the destination Sano, and a response corresponding to a request sent to the server 4 so far. Refers to the socket that receives all.
  • a free socket is detected (S52)
  • the socket is selected as a socket for request transmission. If there is no free socket (S52), a new TCP connection is established with the destination server 4 and a request transmission socket is generated (S53). At this time, the socket is assigned a unique ID. Then, the ID of the generated socket is registered in the server-side socket table (S54), and the state is made free. If a free socket is selected, the request ID is registered in the server-side socket table (S56). At this time, the socket state is changed from free to busy (S55). Finally, a request is transmitted to the server 4 (S57).
  • the request transmission unit 32 constantly monitors and detects whether there is a power having a TCP connection that is disconnected due to a timeout or the like (S58). If a disconnected TCP connection is detected (S59), the corresponding socket is discarded (S60) and deleted from the server-side socket table (S61).
  • connection aggregation enables the load control device 3 side to adjust so that the number of TCP connections between the server 4 and the load control device 3 does not exceed the number of clients. Therefore, the number of sockets on the server side does not exceed the threshold for the number of requests waiting for responses. Therefore, if the threshold for the number of requests waiting for a response is smaller than the limit on the number of TCP connections, request transmission will not be blocked by the limit on the number of TCP connections.
  • the number of requests that one socket can send to the server 4 at the same time is one. However, multiple requests may be sent continuously with one socket without waiting for a response to be returned. By continuously sending multiple requests from one socket to server 4, the overhead of creating or discarding sockets can be reduced.
  • the processing procedure of the response receiver 34 is shown in FIG.
  • the response receiving unit 34 receives the response returned from the server 4 (S70).
  • the server-side socket that received the response is selected (S71).
  • the response is read (S72), and the request ID corresponding to the ID power of the server side socket table is acquired (S73).
  • the same ID as the corresponding request is assigned as the received response ID.
  • the response is transmitted to the scheduling unit 31 and the response transmission unit 33 (S74).
  • the busy state is changed to free so that the next request can be sent from the socket (S75).
  • the processing procedure of the response transmitter 33 is shown in FIG.
  • the response sending unit 33 receives the response (S80), it refers to the request table based on the response ID (matches the request ID), and connects to the client to send the response. Get the ID (S81) and select the client side socket. Next, the response is returned to the client by writing the response to the socket (S82).
  • the scheduling unit 31 buffers the received request in the buffer, as in the first embodiment. If the number of requests waiting for a response is below the threshold, the request stored in the notifier is selected and transmitted to the server 4.
  • the processing procedure of the scheduling unit 31 is shown in FIG.
  • a request is received, first, the request is stored in a buffer (S90). Next, it is determined whether or not there is a transmission waiting request in the notifier (S91). If there is a transmission waiting request, it is determined whether or not the current response waiting request count exceeds the threshold (S92). If it is equal to or greater than the threshold value, the process ends. If the number of requests being sent is less than the threshold, the response wait request count is incremented by 1 (S93). Next, one request is extracted from the noffer and transmitted to the request transmission unit 32 (S94).
  • a response wait request is sent so that the next request can be sent. Decrease the number of taests by 1 (S95). Subsequent processing is the same as when a request is received, after step S91 “Request is in the buffer?” In FIG.
  • the number of servers is one, but a plurality of servers may be used.
  • the scheduling unit 31, the response transmission unit 33, and the response reception unit 34 are duplicated for the number of servers. Then, the request receiving unit 30 may distribute the request to each processing unit for each server according to the destination.
  • the load control device 3 of the present invention is mounted on a PC (personal computer) and experimentally evaluated.
  • the evaluation is based on the throughput (rps) of the Web sano when the input request rate (request per second: rps) from the client l—l to l—n is changed to the load control device 3 of the present invention. Compare with and without.
  • Figure 18 shows the experimental setup. As shown in Figure 18, clients 1-1-1-n and Sano
  • the upper limit of the number of TCP connections that the server 4 can simultaneously connect is set to 150.
  • the timeout period from when the client 1-1 to 1-n sends a request and receives power is set to 10 seconds. When the timeout is reached, clients l—l to l—n disconnect the TCP connection and cancel the request.
  • Fig. 20 shows the experimental results.
  • the horizontal axis represents the input request rate and the vertical axis represents the throughput.
  • Figure 20 shows the change in server 4 throughput (rps) versus the input request rate (rps) from clients 1-1 to 1-n.
  • the “present invention” in FIG. 20 shows the results when the load control device 3 is provided, and the “conventional method” connects the servo and the clients 1-1 to 1-n without going through the load control device 3. The results will be shown.
  • the throughput of Sano increases in proportion to the input request rate regardless of the presence or absence of the load control device 3.
  • the throughput will be significantly reduced if there is no load control device 3.
  • the throughput at an input rate of 200rps is about 60% of the peak.
  • the throughput can be maintained at 90% or more of the peak even when the input request rate increases from lOOrps.
  • the above results can be said to prove the effectiveness of the load control device 3 according to the present invention.
  • the client program automatically accesses the Web server and tries to execute the session. At this time, the behavior of the client program considers the think time from acquiring one page to moving to the next page and the page reading timeout, as in the real client. If it times out, try to get the page again. Also, with a certain probability, it will go back to the previous page or interrupt the session. In this evaluation, first, requests exceeding the maximum processing performance of Sano are sent to the load controller 3. Next, the throughput, which is the number of requests processed per unit time by Sano, is measured and compared when statically setting the threshold for the number of requests waiting for response and when adjusting automatically based on the present invention. .
  • FIG. 22 shows the evaluation results.
  • the graph in Fig. 22 shows the change in throughput with respect to the threshold value setting for the number of requests waiting for response.
  • the horizontal axis in FIG. 22 is a threshold value setting value for the number of requests waiting for a response
  • the vertical axis is Sano throughput (rps). From the graph in Figure 22 As a result, it can be seen that the throughput of Sano reaches the maximum at 671 rps when the threshold power of the number of requests waiting for response is “2”, and gradually decreases as the number of requests waiting for responses increases. Assuming that you want to maintain more than 97% of the maximum value, it is necessary to set the threshold of the number of response waiting requests to the range of “2” to “6”.
  • Ci-l and Ti ⁇ Ti-l increase the degree of parallelism.
  • Ci-l and Ti ⁇ Ti-l reduce the degree of parallelism.
  • Ci ⁇ Ci-l and Ti ⁇ Ti-l increase the degree of parallelism.
  • the graph of Fig. 23 shows a temporal change in the threshold value of the number of response-waiting requests.
  • the horizontal axis is time (seconds)
  • the vertical axis is the threshold for the number of requests waiting for a response.
  • the time during which the threshold of the number of requests waiting for a response is between “2” and “6” has reached 96.9% of the observation time. Power!
  • the average throughput when automatically adjusted according to the present invention is 660 rps, which reaches 98% of the maximum throughput when statically set.
  • the increase / decrease in the threshold value of the number of requests waiting for a response is determined by comparing the previous and current throughput measurement results and the local throughput changing power. For this reason, in cases such as when the throughput drops temporarily and gradually recovers, the throughput can be improved over the long term, but the threshold for the number of requests waiting for response increases (or decreases) indefinitely. ) Occurs.
  • the threshold is not increased unless the increase in throughput is obtained by recording and comparing the throughput for each threshold of the number of requests waiting for response. It has been.
  • a threshold is set for the response time, thereby avoiding the problem that the threshold for the number of requests waiting for a response increases indefinitely.
  • an evaluation result of class classification based on the progress of a session is shown. That is, classify requests based on whether they contain a valid session ID. Then, using Priority Queuing, the server preferentially processes requests that contain valid session IDs. In this evaluation, the same configuration as in Fig. 18 is used. The details of the server 4 and the load control device 3 in this evaluation are the same as in FIG. However, the threshold of the number of requests waiting for response of the load control device is statically set to 10. Under the above conditions, the number of sessions that the Web server was able to complete per unit time (hereinafter referred to as session throughput) when the number of clients attempting session processing on the Web server was changed. Compare with and without controller.
  • session throughput the number of sessions that the Web server was able to complete per unit time
  • Fig. 24 shows the experimental results.
  • the vertical axis represents the number of clients
  • the horizontal axis represents session throughput.
  • the server's session throughput increases in proportion to the number of clients regardless of the presence or absence of a load control device.
  • the server is overloaded and the client Server resources will compete with each other.
  • timeouts and interruptions will occur equally at each client, and session throughput will begin to decline.
  • session throughput will begin to decline.
  • the session never completes.
  • the load control apparatus preferentially processes a more ongoing session. As a result, even when the Web server is overloaded, the session throughput is maintained at its maximum. The above results demonstrate the effect of priority control based on the load control device of this embodiment.
  • the present embodiment is implemented as a program that is installed in a general-purpose information processing apparatus, thereby realizing the function corresponding to the load control apparatus 3 described in the present embodiment in the information processing apparatus. Can do.
  • This program is recorded on a recording medium and installed in a general-purpose information processing apparatus, or is installed in a general-purpose information processing apparatus via a communication line to explain the general-purpose information processing apparatus in this embodiment. It can be a device corresponding to the load control device 3 described above.
  • the program of the present embodiment includes a program that can be executed by being installed on a hard disk or the like that can be directly executed by a general-purpose information processing apparatus. Also included are those that are compressed or encrypted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 サーバ(4)に送信済みであるがサーバ(4)からレスポンスが返されていない応答待ちリクエストの数を制限する。この制限を行うためには、応答待ちリクエスト数が閾値に達しているならば、受信したリクエストをバッファに一時蓄積し、応答待ちリクエスト数が閾値を下回るまでバッファからのリクエストの送信を待ち合わせる。また、サーバ(4)の実行状況を監視し、サーバ(4)のリクエストに対する応答時間が許容範囲内であるときには前記閾値を増加させ、当該応答時間が許容範囲を超える場合には前記閾値を減少させる。さらに、サーバ(4)と負荷制御装置(3)との間のTCPコネクション同時接続数が応答待ちリクエスト数の閾値以下となるように負荷制御装置(3)とクライアント(1-1、・・・、1-n)との間のTCPコネクションを集約する。

Description

明 細 書
負荷制御装置およびその方法
技術分野
[0001] 本発明は、クライアントとサーバとの間に配置され、クライアントから受信したリクエス トをサーバに転送し、当該リクエストに対してサーノくから返却されるレスポンスをクライ アントに転送する装置に利用する。特に、リクエストのスケジューリングに関する。なお
、本明細書では、 Webサーバに着目して説明する力 必ずしも他のサーバへの本発 明の適用を制限するものではな 、。
背景技術
[0002] インターネットの普及に伴 、、ネットワークを介して様々なサービスを利用できるよう になっている。メール、ホームページの閲覧、検索、オンライン取引、 IP電話、ビデオ オンデマンドなどは、その一例である。これらのネットワークサービスは様々な形態で 提供し得るが、近年、クライアントとのインタフェースとして、 Webサーバの利用が主 流となっている。
[0003] Webサーバを用いたサービス (Webサービス)の基本的な仕組みは以下のとおりで ある。まず、クライアントが Webサーバに対して、取得したいコンテンツを識別する UR L(Uniform Resource Locator)を付与したリクエストを送信する。 Webサーバがリクエス トを受け取ると、リクエスト中の URLに対応するコンテンツをレスポンスとしてクライァ ントに送り返す。 Webサービスは、このリクエスト一レスポンスの繰り返しによって提供 される。
[0004] リクエスト レスポンスを転送する通信プロトコルとして、 HTTP(Hyper Text Transfe r Protocol)が用いられる。本明細書では、 Webサービスを行うサーバシステム全体を Webサーバ、また、 Webサーバ上で HTTPプロトコルを処理する機能を HTTPサー ノ 、リクエストに応じたコンテンツを生成する機能を Webアプリケーションと呼ぶ。
[0005] また、 Webサービスによって提供されるコンテンツとして映像や音声のストリーミング が盛んに利用されるようになっている。ストリーミングの基本的な仕組みは以下のとお りである。 [0006] まず、クライアントの Webブラウザは、ストリームコンテンツのメタファイルを Webサー ノくから取得する。メタファイルには、ストリームコンテンツの URLが記述される。同時 に、 Webブラウザは、メタファイルの拡張子に関連付けられたプレイヤ (ストリーム再生 用アプリケーション)を起動する。そして、 Webサーバから取得したメタファイルに示さ れる URLに基づき、プレイヤがストリーミングサーバに対し、ストリームコンテンツの送 信を要求する。最後に、ストリーミングサーバ力 プレイヤに対してストリーミングデー タを送信する。
[0007] ストリーミングでサーバは一般的に、ストリームコンテンツの再生制御に RTSP (Real Time Streaming Protocol)プロトコルを使用する。 RTSPプロトコルは HTTPプロトコ ルをベースとするプロトコルであり、クライアントとサーバとの間で、リクエストとリクエス トに対するレスポンスを送受信することによって、ストリームコンテンツを再生帘 U御する
[0008] RTSPのリクエストが使用できる主な制御メソッドとして、初期設定(SETUP)、再生
(PLAY)、停止(TEARDOWN)、などがある。 RTSPでは、同時に複数のストリーム を制御するため、セッションの概念を有する。すなわち、 RTSPでは、プレイヤが SET UPリクエストを送信してから、 TEARDOWNリクエストを送信してストリーミングが終 了するまでを一つのセッションとみなす。
[0009] そして、ストリームサーバは、 SETUPリクエストをプレイヤから受け取ると、一意のセ ッシヨン IDを発行する。セッション IDは、レスポンスに付与されてクライアントに通知さ れる。プレイヤが通知されたセッション IDを後続のリクエストに付与することで、ストリ ームサーバにおいて制御対象となるセッションを識別することができる。
[0010] Webサービスが普及するにつれて、サービスを快適に利用していくための課題も明 らかになりつつある。その課題の一つとして、サービス利用が集中した際の過剰トラヒ ックへの対応が挙げられる。
[0011] サービス利用の集中の例として、人気の高い銘柄の株やチケットの売買によるリク ェスト集中や、災害発生時の見舞呼などがある。また、悪意のあるクライアントによつ て、 F5アタックなどの無意味なリクエストが大量に送信される場合もある。これらの要 因によって、サーバにリクエストが過剰に送信されると、サーバのリクエスト処理性能 の低下が生じる。
[0012] リクエスト過剰時におけるサーバのリクエスト処理性能の低下要因は以下のとおりで ある。すなわち、第一に、サーバが処理しきれないリクエストの受信に伴う、割込み、 T
CPZIP処理といった入出力オーバヘッドが増加する。第二に、リクエストを処理する スレッドまたはプロセス数が増大し、スレッドまたはプロセスの切替え処理に要するォ ーバヘッドである文脈切替えオーバヘッドが顕在化する。第三に、クライアントにレス ポンスが返されるまでの応答時間が増加するため、応答を待ちきれないクライアント 力 Sリクエストを途中でキャンセルするようになる。これらの結果、サーバが混雑すれば するほど、サーバの処理性能が低下するという問題が生じる。
[0013] 図 1は、リクエスト過剰による Webサーバの処理性能の低下を示す実験結果である 。横軸に入力リクエストレートをとり、縦軸にスループットをとる。図 1では、ある Webサ ーバに対して、入力リクエストレート、すなわち、単位時間当りのリクエスト数 (rps)を 変化させてリクエストを送信する。そして、スループット、すなわち、 Webサーバが単 位時間当りに完了できたリクエスト数 (rps)を計測している。図 1に示されるように、入 力リクエストレートが一定範囲内であるならば、入力レートに対してスループットは比 例する(図 1直線 (a) )。し力しながら、 Webサーバの最大スループットに達すると、ス ループットが低下に転じる(図 1直線 (c) )。故に、 Webサーバの最大性能を超えるリ タエストを受信した場合でも、図 1破線 (b)にそって、 Webサーバの最大性能を維持 できる技術が必要といえる。参考のため、理想的なスループットの挙動を図 2に示す
[0014] 過剰トラヒックによるサーバ性能低下を防ぐため、サーバに送信されるリクエスト量を 予め制限する手法が提案されている。リクエスト量を制限する指標として、(a)TCPコ ネクシヨン数、(b)サーバ負荷状態、(c)帯域、(d)並列度などが用いられる。
[0015] (a) TCPコネクション数を用いる場合は、同時接続可能な TCPコネクション数の上限 を定めることによって、サーバの過負荷回避を試みる。 Apacheなどの汎用的な HTT Pサーバ、負荷分散システムなどで用いられる。し力しながら、リクエストの種類、クラ イアントの回線速度などによって、 TCPコネクション毎にその負荷が大きく異なる。こ のため、 TCPコネクション数の上限に達する前に、サーバが過負荷となったり、逆に、 サーバリソースが余っていても、 TCPコネクション数が上限に達していることによって 、新たな TCPコネクションを確立できない、といった問題が生じる。
[0016] (b)サーバの負荷状態を用いる場合は、 CPU占有率、メモリ使用量、応答時間など 力 サーバの負荷状態を推測し、過負荷力否かを判定し、過負荷と判定した場合は 、新規リクエストの転送、拒絶など、サーバの負荷を軽減させるためのトラヒック制御を 行う。しかし、過負荷と判定されて力 初めてトラヒック制御を行うため、一時的なサー バの性能低下が免れない。
[0017] (c)帯域を用いる場合は、シェーバーなどの帯域制御機能を用いて、サーバに到達 されるトラヒック量を制限する。し力しながら、帯域はサーバの負荷を正確に測る指標 とはならない。例えば、画像ファイルのダウンロードは、大きな帯域を占めるがサーバ に与える負荷は比較的小さい。故に、帯域制限によって、サーバのリソースを十分に 活用しつつ、過負荷を確実に回避することは難しい。
[0018] (d)並列度を用いる場合は、サーバが同時に実行するスレッドまたはプロセス数を制 限する。これにより、リクエストを処理するスレッドまたはプロセス数の増大に伴う文脈 切替えオーバヘッドを削減できる。
[0019] 並列度を制御する具体例として、ページ単位に並列度を制限するように、 HTTPサ ーバを拡張した文献 1 (松沼正浩、日比野秀章、佐藤芳榭、光来健一、千葉滋著、 " 過負荷時の Webアプリケーションの性能劣化を改善する Session— Level Queue Scheduling",第 2回ディペンダブルソフトウェアワークショップ(DSW, 05)、 pp. 1 05 - 114, 2005年 1月)がある。し力し、サーバ上で並列度を制御しても、リクエスト 処理性能低下の第一要因である、サーバが処理しきれないリクエストの受信に伴う、 割込み、 TCP/IP処理などのオーバヘッドを避けることができない。その結果、他の 手法と同様に、過剰トラヒック時におけるサーバの処理性能の低下が生じる。また、 H TTPサーバまたは Webアプリケーションの変更が必要になるため、既に運用中のサ 一ビスへの導入障壁が高 、と 、つた問題がある。
[0020] 並列度を制御するもう一つの例として、ストリーミングサーバのセッション数制限があ る。すなわち、ストリーミングサーバでは、同時に保持できるセッション数に上限を設 けることが一般的である。これにより、セッション数の増大に伴うサーバ過負荷を回避 する。
[0021] しかし、セッション数の制限は、 RTSPによる制御リクエストの受信までを制限するも のではない。このため、 RTSPリクエストがストリームサーバに集中すると、リクエストに 対する処理オーバヘッドが顕在化し、ストリームサーバの処理性能の低下が生じる、 という問題が生じる。
[0022] サーバの性能低下は、図 3 (a)に示すような、新規リクエストの受信によって、割り込 み、入出力、文脈切替オーバヘッドなどが増加することによって生じる。このようなォ ーバヘッドを取り除き、サーバの性能を最大限に発揮させるためには、図 3 (b)のよう に、サーバでの処理が完了した瞬間に次のリクエストが到着することが理想である。こ の場合は、サーバで処理しきれないリクエストの受信によるオーバヘッドがない。また 、処理完了力 次のリクエスト到着までの空き時間がサーバに生じない。
発明の開示
[0023] 本発明は、このような背景の下に行われたものであって、過剰リクエスト受信時にお けるサーバの性能低下を回避することができる負荷制御装置およびその方法を提供 することを目的とする。
[0024] 本発明の負荷制御装置は、クライアントとサーバとの間に配置され、両者のリクエス ト 'レスポンスの送受信を仲介する。すなわち、クライアントから受信したリクエストをサ ーバに送信し、さらにサーノくから返されるレスポンスをクライアントに送信する。このと き、本発明は、サーバに送信済みである力 サーノくからレスポンスが返されていない リクエスト、すなわち、応答待ちリクエストの数を制限する。この制限を行うためには、 応答待ちリクエスト数が閾値に達しているならば、受信したリクエストをバッファリングし 、応答待ちリクエスト数が閾値を下回るまで、リクエストの送信を待ち合わせる。
[0025] 本発明は、図 3 (b)の理想的なリクエストの到着を模擬するように、サーバのリクエス ト送信を制限する。説明を単純化するため、まず、応答待ちリクエスト数の閾値を" 1" とした場合を図 4 (a)に示す。図 3 (b)を模擬するには、まず、サーバでのスレッドの実 行完了を知る必要がある。本発明では、サーバでのスレッドの実行完了をサーノくから レスポンスの受信によって認識する。そして、先に送信したリクエストに対するレスボン スが返されて初めて、次のリクエストをサーバに送信する。本発明に基づけば、サー バが処理しきれないリクエストがサーバに送信されない。このため、リクエストの受信 処理に伴うサーバのオーバヘッドが削減される。
[0026] 図 4 (a)では、サーバがレスボスンスを返してから、負荷制御装置が次のリクエストを 送信するまでの間、サーバに空きが生じる。この問題を回避するため、本発明では、 応答待ちリクエスト数の閾値として、 "1"より大きい値を設定できる。図 4 (b)は応答待 ちリクエスト数の閾値を" 2"とした場合の実行例を示している。応答待ちリクエスト数を 複数とすることによって、サーバ上で実行可能状態にあるスレッド数が増加する。ある スレッドの実行が完了すると、次のスレッドの実行を即時に開始できるため、サーバの リソースに空きが生じ難くなる。さらに、本発明に基づけば、サーバの負荷を、サーバ の内部情報を参照することなぐサーバの外部力も制御できる。故に、既に稼働中の サーバに対して付加的な機能の追加または変更を行わないで、本発明を導入するこ とがでさる。
[0027] また、本発明に基づけば、応答待ちリクエスト数の閾値を自動調整できる。最適な 応答待ちリクエスト数の閾値は、サーバのシステム構成 (サーバ台数、 CPU数など)、 アプリケーションの実行時間などによって異なる。故に、応答待ちリクエスト数の閾値 を静的に設定する場合は、事前の性能評価が必要になるなど、負荷制御装置の管 理者に力かる負担が大きい。
[0028] 例えば、 CPU数が 2つであるサーバが同時に処理できるリクエスト数は、 CPU数が 1つであるサーバよりも多い。故に、サーバのスループットを最大化するためには、 C PU数が 2である場合の応答待ちリクエスト数の閾値は、 CPU数が 1である場合よりも 大きく設定することが必要である。
[0029] また、アプリケーションに着目すると、その実行時間が短いほど、負荷制御装置とサ ーバとの間の送信遅延が相対的に大きくなる。故に、実行時間が短いアプリケーショ ンほど、応答待ちリクエスト数の閾値を大きく設定し、送信遅延時間によるサーバ空き 時間を隠蔽できるようにする必要がある。
[0030] また、応答待ちリクエスト数の閾値が大きくなると、サーバ上で多重に処理されるリク エスト数も増加する。故に、閾値が大きくなり過ぎると、サーバでの文脈切替えオーバ ヘッドが増加し、スループット低下が生じる。さらに、負荷制御装置がサーバにリクェ ストを送信して力 レスポンスが返ってくるまでの応答時間が悪ィ匕する、といった問題 が生じる。
[0031] 故に、本発明では、サーバの応答時間またはスループットを計測し、その計測結果 に応じて応答待ちリクエスト数の閾値を自動調整する。これによりサーバのシステム 構成またはアプリケーションによらず、望ま 、応答時間およびスループットを得るこ とができる。その結果、応答待ちリクエストの閾値の設定に要する管理者の負担を軽 減することができる。
[0032] また、従来技術 a)で示したように、一般的に Webサーバでは、 TCPコネクションの 同時接続数に上限を設けている。しかし、 TCPコネクションの同時接続数に制限が 設けられると、応答待ちリクエスト数に基づく負荷制御が機能しなくなる場合がある。 この問題を解決するため、本発明では、応答待ちリクエスト数による負荷制御を、従 来技術の一つのコネクション集約と組み合わせて利用する。コネクション集約とは HT TP1. 1の Keep— Alive機能を利用し、負荷制御装置とサーバとの間で張られた TC Pコネクションを複数のクライアントで共有する技術である。
[0033] コネクション集約を用いない場合には、現在接続中のクライアント数を超えた数の T CPコネクション力 負荷制御装置とサーバとの間で接続される。したがって、リクエス トの送信頻度が低 、クライアントが多数接続を試みて 、る場合などにぉ 、て、応答待 ちリクエスト数の閾値を超える前にサーバの TCPコネクション接続数が上限に達する 可能性がある。その結果、サーバの計算リソースを活用するために十分な量のリクェ ストをサーバに供給できなくなる。これに対し、コネクション集約を用いる場合には、負 荷制御装置側で、 TCPコネクション数が応答待ちリクエスト数の閾値を超えな 、よう に調整できる。すなわち、サーバの TCPコネクションの同時接続数の上限が応答待 ちリクエスト数の閾値より大きい限り、 TCPコネクション同時接続数の制限が無効化さ れる。
[0034] すなわち、本発明は、クライアントとサーバとの間に配置され、前記クライアントから 受信したリクエストを前記サーバに送信し、当該リクエストに対して前記サーノから返 されるレスポンスを前記クライアントに送信する負荷制御装置である。
[0035] ここで、本発明の特徴とするところは、前記サーバに送信済みであるが前記サーバ 力もレスポンスが返されていない応答待ちリクエストの数を制限する手段を備え、この 制限する手段は、応答待ちリクエスト数が閾値に達しているならば、受信したリクエス トを一時蓄積するバッファと、応答待ちリクエスト数が閾値を下回るまで前記バッファ 力ものリクエストの送信を待ち合わせる手段とを備えたところにある。例えば、前記閾 値は" 1"よりも大きい値とする。
[0036] また、前記サーバの実行状況を監視する手段と、この監視する手段の監視結果に 基づいて前記サーバのリクエストに対する応答時間が許容範囲内であるときには前 記応答待ちリクエスト数の閾値を増加させ、当該応答時間が許容範囲を超える場合 には前記応答待ちリクエスト数の閾値を減少させる手段とを備えることが望ましい。
[0037] あるいは、前記サーバの実行状況を監視する手段と、この監視する手段の監視結 果に基づ 、て単位時間あたりにサーバが処理したリクエスト数であるスループットを 応答待ちリクエスト数の閾値毎に測定する手段と、現在の閾値に対するスループット が現在の閾値より小さい閾値に対するスループットを上回る場合には閾値を増加さ せ、現在の閾値に対するスループットが現在の閾値より小さい閾値のスループットを 下回る場合には閾値を減少させる手段とを備えることが望ましい。
[0038] また、このときには、応答待ちリクエスト数がその閾値に達している力否かを判定す る手段と、閾値に達している場合に、閾値を増加または減少させる力否かを判定する 手段とを備えることにより、サーバに負荷が十分に力かっていない状態において、応 答待ちリクエスト数の閾値が無制限に増カロしてしまう問題を解消することができる。
[0039] また、前記サーバと自己との間の TCPコネクション同時接続数が前記応答待ちリク ェスト数の閾値以下となるように自己と前記クライアントとの間の TCPコネクションを集 約する手段を備えることが望まし 、。
[0040] また、前記バッファは、送信元クライアントの識別情報に基づきリクエストを優先制御 する手段を備えることができる。
[0041] あるいは、前記バッファは、リクエスト中の特定の位置または範囲に特定のパターン が含まれる力否かに基づきリクエストを優先制御する手段を備えることができる。
[0042] あるいは、前記バッファは、リクエスト中の特定の変数が予め設定した閾値より大き いか否かに基づきリクエストを優先制御する手段を備えることができる。 [0043] あるいは、前記バッファは、リクエストが暗号ィ匕されている力否かに基づきリクエスト を優先制御する手段を備えることができる。
[0044] あるいは、前記バッファは、所定時間以上蓄積されたリクエストに対して、ビジーメッ セージを通知する手段を備えることができる。
[0045] あるいは、前記サーバは Webサーバであり、前記バッファは、リクエストのページ表 示の表示優先度に基づきリクエストを優先制御する手段を備えることができる。
[0046] あるいは、前記リクエストは TCPコネクションによってクライアントから負荷制御装置 に送信され、前記バッファは、クライアントと負荷制御装置との間に接続された他の T
CPコネクションの有無または TCPコネクションの数および当該リクエストが TCPコネク シヨンの最初のリクエストである力否かに基づきリクエストを優先制御する手段を備え ることがでさる。
[0047] あるいは、レスポンスにブラウザが自動取得すべきページ構成要素の URLが指し 示されて!/ヽる場合に、レスポンス送信先の識別情報と当該 URLとの組を一時的に記 憶する手段を備え、前記バッファは、リクエストの送信元の識別情報と URLとの組が 、一時記憶されたレスポンス送信先の識別情報と URLとの組と一致するカゝ否かに基 づきリクエストを優先制御する手段を備えることができる。
[0048] あるいは、前記リクエストが属するセッションの進行状況に基づきリクエストを優先制 御する手段を備えることができる。
[0049] あるいは、前記サーバで処理されたリクエストが属するセッションのセッション識別情 報を一定期間キャッシュする手段と、キャッシュされているセッション識別情報を持つ か否かに基づきリクエストを優先制御する手段を備えることができる。
[0050] あるいは、前記バッファは、クライアントから送信されたトラヒックの不正アクセスの疑 わしさに基づきリクエストを優先制御する手段を備えることができる。
[0051] 本発明を、プログラムとしてみることもできる。すなわち、本発明は、汎用の情報処 理装置にインストールすることにより、その汎用の情報処理装置に、本発明の負荷制 御装置の機能に相応する機能を実現させるプログラムである。
[0052] また、本発明を、記録媒体としてみることもできる。すなわち、本発明は、本発明の プログラムが記録された記録媒体である。本発明のプログラムは本発明の記録媒体 に記録されることにより、汎用の前記情報処理装置は、この記録媒体を用いて本発 明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持 するサーノからネットワークを介して直接汎用の前記情報処理装置に本発明のプロ グラムをインストールすることもできる。
[0053] これにより、汎用の情報処理装置を用いて、本発明の負荷制御装置を実現すること ができる。
[0054] また、本発明を、本発明の負荷制御装置が実行する負荷制御方法の発明としてみ ることができる。すなわち、本発明は、前記サーバに送信済みであるが前記サーバか らレスポンスが返されて 、な 、応答待ちリクエストの数を制限するステップを有し、こ の制限するステップは、応答待ちリクエスト数が閾値に達しているならば、受信したリ タエストをバッファに一時蓄積するステップと、応答待ちリクエスト数が閾値を下回るま で前記バッファ力ものリクエストの送信を待ち合わせるステップとを有することを特徴と する負荷制御方法である。例えば、前記閾値は" 1"よりも大きな値とする。
[0055] また、前記サーバの実行状況を監視するステップと、この監視するステップの監視 結果に基づいて前記サーバのリクエストに対する応答時間が許容範囲内であるとき には前記応答待ちリクエスト数の閾値を増加させ、当該応答時間が許容範囲を超え る場合には前記応答待ちリクエスト数の閾値を減少させるステップとを有することが望 ましい。
[0056] あるいは、前記サーバの実行状況を監視するステップと、この監視するステップの 監視結果に基づ 、て単位時間あたりにサーバが処理したリクエスト数であるスループ ットを応答待ちリクエスト数の閾値毎に測定するステップと、現在の閾値に対するスル 一プットが現在の閾値より小さい閾値に対するスループットを上回る場合には閾値を 増加させ、現在の閾値に対するスループットが現在の閾値より小さい閾値のスループ ットを下回る場合には閾値を減少させるステップとを有することが望ましい。
[0057] また、このときには、応答待ちリクエスト数がその閾値に達している力否かを判定す るステップと、閾値に達している場合に、閾値を増加または減少させるカゝ否かを判定 するステップとを有することが望ま 、。
[0058] また、前記サーバと自己との間の TCPコネクション同時接続数が前記応答待ちリク ェスト数の閾値以下となるように自己と前記クライアントとの間の TCPコネクションを集 約するステップを有することが望まし 、。
[0059] 本発明によれば、過剰リクエスト受信時におけるサーバの性能低下を回避すること ができる。この際に、適切な制御のための閾値の設定も自動化することができるため 、装置管理者の負担を軽減させることができる。
図面の簡単な説明
[0060] [図 1]過剰リクエストによるサーバの処理性能低下を説明するための図。
[図 2]理想的なスループットの挙動を示す図。
[図 3]過剰リクエスト時のサーバの振る舞いおよび理想的なサーバへのリクエストの到 着の状態を示す図。
[図 4]本発明によるサーバへのリクエストの到着の状態を示す図。
[図 5]第一の実施形態の全体構成図。
[図 6]第一の実施形態の負荷制御装置の処理手順を示すフローチャート。
[図 7]第一の実施形態のリクエスト受信処理の実行手順を示すフローチャート。
[図 8]第一の実施形態のレスポンス受信処理の実行手順を示すフローチャート。
[図 9]RTSPリクエストのメソッド名に基づくクラス分類の一例を示す図。
[図 10]第二の実施形態の負荷制御装置のブロック構成図。
[図 11]第二の実施形態のリクエスト受信部の処理手順を示すフローチャート。
[図 12]リクエスト表を示す図。
[図 13]第二の実施形態のリクエスト送信部の処理手順を示すフローチャート。
[図 14]サーバ側ソケット表を示す図。
[図 15]第二の実施形態のレスポンス受信部の処理手順を示すフローチャート。
[図 16]第二の実施形態のレスポンス送信部の処理手順を示すフローチャート。
[図 17]第二の実施形態のスケジューリング部の処理手順を示すフローチャート。
[図 18]本発明の効果を実証する実験の構成を示す図。
[図 19]実験のためのサーバおよび負荷制御装置の構成表を示す図。
[図 20]本発明の効果を示す図。
[図 21]本発明の応答待ちリクエスト数の閾値を自動調整することの効果を実証する実 験のためのサーバおよび負荷制御装置の構成表を示す図。
[図 22]応答待ちリクエスト数の閾値の設定値に対するスループットの変化を示す図。
[図 23]本発明の応答待ちリクエスト数の閾値を自動調整することの効果を示す図。
[図 24]本発明のリクエストの優先制御をすることの効果を示す図。
発明を実施するための最良の形態
[0061] (第一の実施形態)
本発明の第一の実施形態について図面を参照して説明する。
[0062] 図 5は、本発明の第一の実施形態を示すブロック図である。本発明は、リクエストを 発行するクライアント 1—1〜l—nと、リクエストに対応するレスポンスを返すサーバ 4 、および、リクエストおよびレスポンスを仲介する負荷制御装置 3とからなる。なお、サ ーバ 4は、 Apacheなどのソフトウェアモジュールであってもよぐ負荷制御装置 3とは C PUやメモリなどの物理リソースが独立であるハードウェアモジュールであってもよい。 また、本負荷制御装置 3を 2つ以上のサーバ 4に接続し、 1つの負荷制御装置 3で、 複数のサーバ 4に対して負荷制御をしてもよい。さらに、負荷制御装置 3は、リバース Proxy, Webァクセラレータ、 Firewall,負荷分散システムなどの既存技術を拡張し て実装してもよい。負荷制御装置 3にて、サーバ 4に送信済みであるが、まだ、レスポ ンスが返されていないリクエスト数、すなわち応答待ちリクエスト数を監視する。応答 待ちリクエスト数が定められた閾値を超える場合は、受信したリクエストをバッファリン グする。そして、応答待ちリクエスト数が閾値を下回るまで、リクエストの送信を見合わ せる。
[0063] 図 6に、負荷制御装置 3の処理手順を示す。実行が開始されると負荷制御装置 3は 、まず、メッセージを受信するまで待ち合せる(Sl)。ここで、負荷制御装置が受信す るメッセージは、リクエストまたはレスポンスの 2種類のみとする。メッセージを受信する と(S2)、そのメッセージがリクエストである場合はリクエスト受信処理を起動し (S3)、 レスポンスである場合はレスポンス受信処理を起動する(S4)。
[0064] リクエスト受信処理の実行手順を図 7に示す。リクエストを受信した場合に、負荷制 御装置 3はそのリクエストをバッファに格納する(S10)。次に、応答待ちリクエスト数が 閾値未満であるか否かを判定する(S 11)。なお、本実施形態では、応答待ちリクエス ト数の閾値は、任意の値が静的に与えられているものとする。閾値以上である場合は
(S 11)、サーノ へのリクエストの送信を見合せ、本処理を終了する。閾値未満の場 合は(S11)、 ノ ッファ力もリクエストを一つ選択して取り出す (S12)。次に、応答待ち リクエスト数を 1インクリメントさせた後(S13)、サーバ 4にリクエストを送信する(S14)
[0065] 次に、レスポンス受信処理の実行手順を図 8に示す。まず、受信したレスポンスを、 当該レスポンスのリクエストを送信したクライアントに対して返送する(S20)。次に、応 答待ちリクエスト数を 1デクリメントする(S21)。そして、ノッファ中に送信待ちリクエス トが存在する力否かを判定する(S22)。リクエストが存在しない場合は(S22)、当該 処理を終了する。リクエストが存在する場合は(S22)、リクエスト受信処理と同様に、リ タエストの送信を試みる。すなわち、応答待ちリクエスト数が閾値未満であるか否かを 判定する(S23)。閾値以上の場合は(S23)、サーバ 4へのリクエストの送信を見合せ 、本処理を終了する。閾値未満の場合は(S23)、ノ ッファからリクエストを一つ選択し て取り出す (S24)。次に、応答待ちリクエスト数を 1インクリメントさせた後(S25)、サ ーバ 4にリクエストを送信する(S26)。
[0066] このように、応答待ちリクエスト数が閾値を超える場合には、リクエストの送信を見合 わせることで、サーバ 4に過剰なリクエストが送信されなくなる。また、閾値を超える場 合はリクエストをバッファ中に蓄えることで、瞬時的なリクエスト量の増減を吸収するこ とができる。この結果、サーバ 4に対して安定してリクエストを供給することができる。
[0067] バッファ中のリクエストの実行順序をスケジューリングするアルゴリズムとして単一の キューを用いて FIFO(First- In First- Out)に基づきリクエストを処理することができる。 また、複数のキューを用いてリクエストの重要度や要求品質に応じて優先制御を実施 することもできる。この場合は、リクエストは一定のルールに基づき分類され、その結 果に応じて優先制御のパラメータ(例えば、優先度、重み、タイムアウト時間)などが 設定される。ここで、一定のルールに基づき分類された結果生じるリクエストの集合を クラスと定義する。そしてクラス別にリクエストをキューに格納し、各キュー間のリクエス ト取り出し順序を優先制御パラメータに基づきスケジューリングする。このスケジユーリ ングアルゴリズムとして、例えば、最も優先度が高いクラスに属するリクエストから処理 する Priority Queuing、クラス毎の重みに基づきレート制御する Waited Fair Q ueuing、 Waited Round Robinなど、既存の優先スケジューリングアルゴリズムを 利用できる。また、キューの代わりとして、タイムアウトするまでの時間長が昇順となる ようにリクエストを並べる、 EDF(Earliest Deadline First)を用いることができる。リクエス トの優先制御を行うことで、重要なリクエストや時間制約が厳し 、リクエストを優先的に サーノ で処理させることが可能になる。
[0068] また、ノ ッファにリクエストを格納する際に、ノ ッファ中のリクエスト数が格納可能な 最大数に達している場合がある。この場合は、ノ ッファ中のいずれかのリクエストを選 択し、以下のいずれかを実行する。
[0069] ·廃棄:リクエストを廃棄する。
[0070] ·拒絶:サーノ へのリクエスト送信を取りやめる。そして、負荷制御装置 3からビジー メッセージなどをクライアント 1— 1〜1— nに送信する。リクエストの廃棄と異なり、リク ェストが失敗した原因がリクエスト集中であることをクライアント 1— 1〜1—nに明示で きる。
[0071] ·転送:過負荷時用の待機サーバにリクエストを転送する。これにより、負荷が集中し ているサーバ 4に代わって、待機サーバが当該リクエストを処理できる。
[0072] また、ノ ッファ中の各リクエストにタイムアウトを設定することもできる。タイムアウトに 達したリクエストを検出した場合にも、バッファ中のリクエスト数が格納可能な最大数 に達した場合と同様の処理を実施できる。
[0073] リクエストの優先制御を実施する場合には、リクエストを一定ルールに基づきクラス に分類し、クラス毎に設定された優先度、重み、タイムアウト時間などのパラメータに 基づきスケジューリングする。 Webサービスを効果的に提供するためには、以下に示 すルールに基づき、リクエストが属するクラスを分類すればよい。なお、これらの実施 例の 、ずれかのみを用いることも、複数の実施例を組み合わせてクラスを分類するこ とも可能である。
[0074] 'クライアント識別情報に基づくクラス分類
•リクエストの内容に基づくクラス分類
•暗号ィ匕の有無に基づくクラス分類 'ページ処理の進行状況に基づくクラス分類
•セッション処理の進行状況に基づくクラス分類
•不正の疑わしさに基づくクラス分類
(クライアント識別情報に基づくクラス分類)
リクエストの送信元クライアントに応じてクラス分類する。以下に実施例を示す。
[0075] '送信元 IPアドレスに基づくクラス分類:リクエストを送信するプロトコルとして TCPZI Pを用いる場合には、クライアントを送信元 IPアドレスカゝら識別できる。故に、送信元 I Pアドレスに基づ 、てキューを選択することで、特定のクライアントからのリクエストを優 先化または非優先化することができる。
[0076] 例えば、負荷制御装置に管理者のホストの IPアドレスを予め登録しておく。次に、 負荷制御装置がリクエストを受信すると、登録されて 、るホストからのリクエストである ならば高優先なクラスに格納する。これにより、管理者によるサーバへのアクセスを保 護することができる。
[0077] 'User— Agentフィールドに基づくクラス分類:サーバが Webサーバである場合は、 クライアントは HTTPプロトコルに基づきリクエストのヘッダに User— Agentフィール ドを含めることができる。
[0078] User— Agentフィールドには、リクエストを発行したクライアントアプリケーションの 情報が格納される。故に、負荷制御装置において、受信したリクエストの User— Age ntの種類に応じてクラスに分類することで、当該 Webサービス専用のブラウザを利用 するクライアントからのリクエストを優先化したり、また、検索ロボットなどによって機械 的に発行されたリクエストを非優先化したりすることができる。
[0079] 'ユーザ IDに基づくクラス分類: Webサーバは、クライアントを識別するため、クライア ントに応じてユーザ IDを発行し、クライアントに発行したユーザ IDを HTTPリクエスト 中に含ませるように指示できる。このユーザ IDは、 Cookieフィールド、 URLのクエリ、 リクエストのボディにユーザ IDを含ませることができる。したがって、負荷制御装置に お!、て、予め優先化 (または非優先化)した 、クライアントのユーザ IDを登録しておく 。次に、 HTTPリクエストに含まれるユーザ IDと登録されているユーザ IDとが一致す る力否かに応じてクラスを選択する。これにより、例えば、追加料金を払っているクライ アントからのリクエストを優先化したり、逆に、ブラックリストに載っているクライアントか らのリクエストを非優先化させたりできる。
[0080] (リクエストの内容に基づくクラス分類)
リクエスト中のヘッダまたはコンテンツの任意の位置(HTTPリクエストである場合は 、例えばリクエスト行、各フィールドなど)に任意のパターンと一致するか否力、リクェ スト中の任意の変数が閾値を超えているか否かに応じて、リクエストを格納するクラス を選択する。 HTTPプロトコルを用いた場合の実施例を以下に列挙する。なお、以下 の実施例ではパターンを""中に正規表現で記述して!/、る。
[0081] 'メソッドに基づくクラス分類: HTTPでは、リソースに対する操作内容に応じて、複数 のメソッドが用意される。例えば、リソースの取得には GETメソッドが利用され、サーバ へのデータ送信には、 POSTメソッドが用いられる。オンラインショッピングや個人情 報の更新などの重要な処理では、ユーザが入力した情報をサーバに送信することが 必要となるため、 GETメソッドではなく POSTメソッドが用いられる。ここで、 HTTPで は、メソッド名はリクエスト中のリクエスト行で指定する。故に、リクエスト行のメソッド名 がパターン" POST"と一致するリクエストを高優先なクラスに分類することで、重要度 が高 、リクエストを優先処理することができる。
[0082] 'ファイルの種別に基づくクラス分類:動的コンテンツのような負荷が高 、処理へのリク エストを非優先化した 、場合がある。動的コンテンツであるか静的コンテンツであるか は、リクエストされるファイル名力も識別できる。例えば、動的コンテンツとして CGIを 用いる場合は、そのリクエストするファイル名の接尾語は. cgiとなる。故に、 CGIを非 優先化する場合は、リクエストの URLがパターン". cgi"と一致するファイルへのリク エストを低優先なクラスに分類すればよい。
[0083] 'ファイルサイズに基づくクラス分類:非常に大き 、サイズのファイルのアップロードを 試みるようなリクエストを非優先化した ヽ場合は、 HTTPヘッダのリクエストサイズを表 す Content— Lengthフィールドの値に閾値を設定し、閾値を超えるリクエストの低優 先なクラスに分類すればよい。
[0084] (暗号化の有無に基づくクラス分類)
リクエストが暗号ィ匕されているカゝ否かに応じて、リクエストのクラスを選択する。一般 的に、暗号ィ匕して送信されたリクエストは、暗号ィ匕しないで送信されたリクエストより重 要な情報が含まれる。そこで、暗号化されているリクエストを、高優先なクラスに分類 することで、重要リクエストを保護できる。例えば、 Webサービスでは、リクエストの送 信方法として、暗号ィ匕しない HTTP通信、暗号ィ匕する HTTPS通信のいずれかを選 択できる。
[0085] このとき、 HTTP通信、 HTTPS通信であるかは、 TCPコネクションの接続先ポート 番号によって識別できる。故に、暗号化されたリクエストを優先化する場合は、 HTTP S通信用のポートに接続する TCPコネクション力 送信されたリクエストを高優先なク ラスに分類すればよい。
[0086] (ページ処理の進行状況に基づくクラス分類)
Webサービスでは、クライアントのブラウザが 1ページを表示するまでに複数のリク ェストが必要となる場合がある。 1つのページを表示するためのリクエストの繰り返しを 、本明細書ではページ処理と呼ぶ。ページ処理の基本的な進行手順は以下のとおり である。まず、クライアントはブラウザに対して取得したいページのルートとなるリソー ス(以下、ページルートリソース)の URLを入力する。次に、ブラウザは、入力された U RLに基づき、 Webサーバに対してリクエストを送信し、ページルートリソースを取得 する。
[0087] このとき、ページルートリソースにはページ表示に必要となる他のリソースの URLが 指し示される。次に、ブラウザは、指し示される URLに対して自動的にリクエストを発 行する。以上を、ページ表示に必要な全リソースを取得するまで再帰的に繰り返す。 ページ処理の進行に基づくクラス分類の実施例を以下に示す。
[0088] 'URLに基づくクラス分類:ページの表示には不可欠なリソースに対するリクエストを 優先処理することで、サーバ混雑時において、必要最小限のページ構成でより多く のクライアントにサービスを提供することができる。例えば、 Webサーバにおいて、ぺ ージ表示に不可欠なリソースとそうでないリソースとを Webサーバの異なるディレクトリ に保管しておく。そして、負荷制御装置において、前述した「リクエストの内容に基づ くクラス分類」を用いて、ページ表示に不可欠なリソースが保管されるディレクトリの配 下のリソースに対するリクエストを優先度が高いクラスに分類すればよい。 [0089] ·ページルートリソースへのリクエストであるか否かに基づくクラス分類:ページルートリ ソースへのリクエストを低優先なクラスに分類することで、既に継続中のページ処理を 優先的に処理する。これにより、サーバ混雑時にページ処理中のリクエストが途中失 敗し、クライアントのブラウザ上に不完全なページが表示される、という問題を解消で きる。特に、ノッファ中のリクエストをスケジューリングするアルゴリズムとして前述した Priority Queuingを用いる場合には、ページ処理中のリクエストがバッファにある 限り、ページルートリソースへのリクエストが処理されない。故に、サーバ混雑時に新 規ページ処理の開始を効果的にブロッキングすることができる。
[0090] ページルートリソースへのリクエストを低優先化するための手法は以下のとおりであ る。
[0091] 'TCPコネクションの最初のリクエストであるか否力 : HTTP1. 1では、 1つの TCPコ ネクシヨンで複数のリクエスト 'レスポンスを送受信することができる。このため、ページ 表示のためブラウザが自動的にリクエストを送信する場合には、通常、ページルートリ ソースへの取得に用いられた TCPコネクションが再利用される。
[0092] したがって、 TCPコネクションが接続されてから 2つ目以降のリクエストを高優先なク ラスに分類することで、継続中のページ処理を保護することができる。また、ブラウザ が同じサーバに対して複数のコネクションを接続し、ページ表示に必要なリソースを 複数コネクションで並列に受信することもできる。故に、 TCPコネクションが接続され て力も最初のリクエストであっても、同一のクライアントから既にサーバ(または負荷制 御装置)に接続された TCPコネクションが存在するならば、そのリクエストを例外的に 高優先なクラスに分類してもよい。
[0093] 負荷制御装置における具体的な実行手順は以下のとおりである。
[0094] 1)サーノ からレスポンスを受信すると、返送先となるクライアントの識別情報を表 (クラ イアント識別情報表)に追加する。既に、表中に当該クライアントの識別情報が存在 する場合は、当該ステップを省略してよい。
[0095] 2)リクエストを受信すると、クライアント識別情報表を参照する。
[0096] 3)表中に当該リクエストの送信元であるクライアントの識別情報がある場合は、当該リ タエストを高優先なクラスに分類する。一方で、表中にない場合は、当該リクエストを 低優先なクラスに分類する。
[0097] 4)同一クライアントから接続される TCPコネクションが全て切断されると、そのクライァ ントの識別情報をクライアント識別情報表力 削除する。
[0098] ·ページルートリソースの URLの登録:予めページルートリソースの URLの一覧表を 負荷制御装置に登録しておく。そして、前述した「リクエストの内容に基づくクラス分 類」を用いてクラスを分類する。すなわち、負荷制御装置は、リクエストを受け取ると、 まず、リクエストの URLと表中の URLとを比較する。そして、当該リクエストの URLが ページルートリソースの URLと一致するならば、当該リクエストを低優先なクラスに分 類する。
[0099] 'URLのキャッシュ:サーバから返送されたレスポンス中にブラウザが自動的に取得 すべきリソースの URLが指し示されて!/、た場合は、その URLを一定時間キャッシュし 、当該 URLに対するリクエストを優先化する。 HTTPプロトコルでは、 HTMLファイル の Srcタグになどによって、ブラウザが自動的に取得すべき URLが指し示される。し たがって、負荷制御装置における実行手順は以下のようになる。
[0100] 1)レスポンスのファイルタイプが HTMLファイルである場合は、コンテンツ中にパター ン "Src = "と一致する文字列を検索する。
[0101] 2)パターン" Src = "と一致する文字列が存在する場合は、次に、ノターン" Src = " に続く URLを抽出する。
[0102] 3)抽出した URLとレスポンス送信先のクライアント識別情報との組を一定期間キヤッ シュする。
[0103] 4)前述した「送信元クライアント識別情報に基づくクラス分類」「リクエストの内容に基 づくクラス分類」を併用して、キャッシュされているクライアントからキャッシュされてい る URLに対するリクエストを受け取った場合に、そのリクエストを高優先なクラスに分 類する。
[0104] (セッション処理の進行状況に基づくクラス分類)
Webサービスでは、複数ページに跨がって閲覧または情報入力することで、初めて 1つのサービスが完了する場合がある。例えば、オンラインショッピングでは、購入す べき商品の選択あるいはクライアント情報の入力などをし、最後に購入内容の確認を することで、初めて購入手続きが完了する。本明細書では、完了までに複数ページを 要するサービスにおいて、クライアントが先頭ページを取得して力 最後のページを 取得完了するまでをセッションと呼ぶ。
[0105] セッションは、金品や取引や、個人情報の更新など、重要な処理を行う場合に用い られる。しかし、サーバが混雑すると、セッションがほとんど完了しなくなる、という問題 がある。これは、サーバ上で並列処理されるセッションの数が増加すると、セッション 間でサーノ リソースが競合し、途中失敗するセッションが増加するためである。したが つて、負荷制御装置において、サーバ混雑時においても高いセッションスループット を維持できるよう、リクエストが属するセッションの進行状況に基づきクラスを分類する
[0106] セッション処理を行う場合には、 Webサーバは、受信したリクエストがどのセッション に属するかを識別する必要がある。このため、セッション処理では、セッション IDなど のセッション識別情報が用いられる。例えば、 Webサーバは、セッションの先頭ぺー ジに対するリクエストを受け取ると、セッション毎に一意なセッション IDを発行し、レス ポンスと共にクライアントに返送する。典型的な Webサーバでは、セッション IDを HT TPレスポンスの Set— Cookieフィールドに格納する。次に、クライアントはサーバか ら通知されたセッション IDをリクエストに含めてサーバに送信する。このときセッション I Dは、セッション IDがレスポンスの Set— Cookieフィールドによって通知された場合 に、リクエストの Cookieフィールドに格納される。 Webサーバは、リクエスト中のセッシ ヨン IDによって、そのリクエストが属するセッションを識別できる。
[0107] また、前述したように、ストリーミングサーバで用いられる RTSPは、セッションの概念 を標準で備えている。すなわち、 SETUPリクエストによってセッションが開始されると 、セッション IDが発行され、以降のリクエスト 'レスポンスに付与される。 RTSPでは、 セッション IDを RTSPヘッダの Sessionフィールドに格納する。
[0108] 本実施例の負荷制御装置では、まず、リクエスト中のセッション IDをキーとして、当 該リクエストが属するセッションの進行状況を評価する。例えば、既に開始済みのセッ シヨンに属するリクエストを一律に優先化する場合は、 HTTPプロトコルならばリクエス ト中の Cookieフィールドなどを、 RTSPプロトコルならばリクエスト中の Sessionフィー ルドの有無を検査し、セッション IDがリクエストに含まれるか否かを判定する。そして、 セッション IDを含むリクエストを高優先なクラスに分類する。これにより、開始済みセッ シヨンを優先的にサーバで処理することができる。特に、ノッファ中のリクエストをスケ ジユーリングするアルゴリズムとして前述した Priority Queuingを用いる場合には、 継続中の開始済みセッションに属するリクエストがバッファにある限り、新規セッション の開始を要求するリクエストが処理されない。故に、サーバ混雑時に新規セッション 処理の開始を効果的にブロッキングすることができる。
[0109] さらに、悪意のあるクライアントによる不正なセッション ID使用を回避するため、セッ シヨン IDの有効性を検証することもできる。負荷制御装置における実行手順を示す。
[0110] 1)サーバからのレスポンスを検査し、 HTTPプロトコルならば Set— Cookieフィール ドなどを、 RTSPプロトコルならば Sessionフィールドを調べ、セッション IDが新しく発 行されて!ヽるカゝ否かを判定する。
[0111] 2)新しくセッション IDが発行されている場合は、当該セッション IDを一定期間、キヤッ シュする。
[0112] 3)負荷制御装置が受け取ったリクエストにセッション IDが含まれている力否かを検証 する。
[0113] 4)リクエストにセッション IDが含まれている場合は、キャッシュしたセッション IDのいず れかと一致するか否か検証する。
[0114] 5)いずれのセッション IDとも一致しない場合は、当該リクエストのセッション IDは無効 であり、当該リクエストを高優先なクラスに分類する必要はない。
[0115] なお、キャッシュからセッション IDが漏れることへの対策として、リクエストが持つセッ シヨン IDがキャッシュに存在しなかった場合、サーバにてそのリクエストが処理された 時点で、そのリクエストが持っていたセッション IDをキャッシュに再登録してもよい。
[0116] キャッシュするセッション識別情報として、リクエストの送信元 IPアドレス、ユーザ ID などのクライアント識別情報を用いてもよい。例えば、セッション IDの代わりとして、サ ーバでリクエストが処理されたクライアントの IPアドレスをキャッシュしておくことで、送 信元 IPアドレス単位で開始済みセッションを優先化する。本手法の実施例を以下に 示す。 [0117] 1)負荷制御装置がサーノから受け取ったレスポンスの送信先クライアントの IPァドレ スを、一定期間、キャッシュする。
[0118] 2)負荷制御装置が受け取ったリクエストの送信元 IPアドレス力 キャッシュしているセ ッシヨン IDのいずれかと一致するか否か検証する。一致する場合は、サーバでの処 理開始が承認されているクライアントからのリクエストとみなし、当該リクエストを高優先 なクラスに分類する。
[0119] セッション IDを用いる場合と比較すると、本手法では優先化する必要がないセッシ ヨンまで優先化する可能性がある、という欠点がある。例えば、複数のクライアントが同 じ Proxyを介して負荷制御装置にアクセスする場合に、負荷制御装置が受け取るリク ェストの送信元 IPアドレスは、全て Proxyの IPアドレスとなる。
[0120] このため、同じ Proxyにアクセスしているクライアントのいずれかで処理が開始され て ヽる場合には、他のクライアントからのリクエストも全て高優先なクラスに分類される ことになる。一方で、送信元 IPアドレスを用いることの利点として、計算コストが小さい こと、設定が容易であること、が挙げられる。
[0121] セッション識別情報のキャッシュを、前述したページ処理の進行状況に基づくクラス 分類における「ページルートリソースへのリクエストであるか否かに基づくクラス分類」 にも応用できる。すなわち、ページ処理は、 1ページで完結する特殊なセッション処 理とみなせる。ゆえに、セッション識別情報をキャッシュしておく期間を、 1つのページ 処理の完了に要する時間(典型的には数秒)に制限する。これにより、クライアントが 新しいページにアクセスする前に、キャッシュ中のセッション識別情報が消去される。 その結果、新しいページのページルートリソースへのリクエストは、キャッシュにセッシ ヨン識別情報が存在しないため、低優先なクラスに分類される。そして、そのページル 一トリソースへのリクエストがサーバで処理された時点で、セッション識別情報をキヤッ シュに再登録することで、ページ表示に必要な残りのリソースへのリクエストを高優先 なクラスに分類することができる。
[0122] セッションの進行状況を、セッション IDではなぐリクエストの URLに基づいて評価 してもよい。例えば、 Webサーバにおいて、セッションを構成する各ページのリソース を、予めページ毎に異なるディレクトリに保管しておく。これにより、リクエストの URL に示されるディレクトリによって、リクエストが要求するリソースが属するページを識別 できる。したがって、負荷制御装置において、前述した「リクエストの内容に基づくクラ ス分類」を用いることで、リクエストを、要求されたリソースが属するページ毎にクラス分 類できる。このとき、セッション開始に近いページほど、その優先度を低く設定してお
<o
[0123] サーバが、 RTSPに基づくストリーミングサーバである場合は、セッションの進行状 況を、リクエストのメソッドに基づいて評価してもよい。前述したように、 RTSPでは、ス トリームの制御内容に応じ、 SETUP, PLAY, TEARDOWNなどのメソッドが用意 されている。これらのメソッドは、セッション確立以前に用いられるもの、セッション確立 後に用いられるものに分類できる。
[0124] したがって、セッション確立後に使用されるメソッドのリクエストを、優先度が高いクラ スに分類することで、確立済みのセッションを優先化することが可能となる。図 9に、 R TSPで使用されるメソッドとその分類先クラスの設定例を示す。
[0125] (不正アクセスの疑わしさに基づくクラス分類)
悪意のあるクライアントによる不正アクセスによってサーバの計算リソースが占有さ れることがある。この問題を回避するため、本実施例の負荷制御装置に、不正ァクセ スが疑われるトラヒックを検知する侵入検知機能を併用し、不正アクセスの可能性が 高いと判定されたリクエストを優先度が低いクラスに分類してもよい。さらに、「クライア ント識別情報に基づくクラス分類」と連携し、不正アクセスの可能性が高いと判定され たトラヒックを送信したクライアントを一定期間非優先化することもできる。すなわち、 1)負荷制御装置において、受信中のトラヒックが不正アクセスである可能性を評価す る。
[0126] 2)不正アクセスの可能性が高 ヽと判定されたトラヒックの送信元識別情報を一定期 間記録する。
[0127] 3)リクエストを受け取ると、そのクライアントの識別情報が記録された識別情報と一致 するか判定する。
[0128] 4)一致する場合は、低優先クラスに分類する。
[0129] また、侵入検知機能は、負荷制御装置と既存の侵入検知装置 (IDS:IntruSi0nDicti on System)などと接続することで、負荷制御装置の外部装置として実現してもよい。こ の場合は、侵入検知装置から負荷制御装置に、不正アクセスに関する情報、すなわ ち、不正アクセスの種類や送信元となるクライアント識別情報をァラートとし送信する 。負荷制御装置にてァラートに基づき、リクエストの優先制御を実施する。
[0130] このように、不正アクセスが疑われるリクエストを低優先クラスに分類することで、サ ーバ混雑時に、正常である可能性が高いリクエストから優先的に処理することが可能 である。同様の不正アクセスを規制する装置として侵入防御システムがある。侵入防 御システムでは、不正アクセスと判定されたトラヒックを即時的に廃棄する。このため、 正常なリクエストを誤って不正と判定することによって、正常リクエストを誤って規制す る、誤規制の問題がある。しかし、本発明では、サーバが混雑しない限り、不正が疑 われるリクエストもサーバ上で処理されるため、侵入防御システムにおける誤規制の 問題を緩和できる。
[0131] 第一実施例では、応答待ちリクエスト数の閾値を静的に与えている。しかし、前述し たように、人手による応答待ちリクエスト数の閾値設定は、負荷制御装置 3の管理者 に大きな負担をかける。そこで、第一実施例を拡張し、 a)サーバ 4の処理性能を最大 限に引き出すことができ、かつ b)応答時間が許容範囲に収まるように、応答待ちリク ェスト数の閾値を動的に設定できるようにする。
[0132] 応答待ちリクエスト数の閾値を自動調整するための実施例を列挙する。
[0133] (自動調整の実施例 1)
ノ ッファで待機している(平均)リクエスト数 N、および、負荷制御装置 3がリクエスト をサーバ 4に送信してからレスポンスを受け取るまでの(平均)応答時間 Tを定期的に 測定する。また、 N、 Tに対する閾値として、 LN、 LTを定めておく。このとき、 N<LN ならば、リクエスト量が少ないため、応答待ちリクエスト数がその閾値に達していないと みなす。また、 T<LTならば、良好な応答が返ってきているとみなす。故に、 •T≥LTならば、応答待ちリクエスト数の閾値を減少させる。
[0134] -T<LT
N≥LNならば、応答待ちリクエスト数の閾値を増加させる。
[0135] N<LNならば、応答待ちリクエスト数の閾値を変化させない。 [0136] (自動調整の実施例 2)
ノ ッファで待機している(平均)リクエスト数 N、および、負荷制御装置 3がリクエスト をサーバ 4に返信してからレスポンスを受け取るまでの応答時間 Tを定期的に測定す る。また、 N、 Tに対する閾値として、 LN、 LTを定めておく。さらに、 T>LTとなったリ タエストの割合を する。このとき、定数 k (0≤k≤l)を用いて、
• r≥ kならば、応答待ちリタエスト数の閾値を減少させる。
[0137] -r< k
N≥LNならば、応答待ちリクエスト数の閾値を増加させる。
[0138] N<LNならば、応答待ちリクエスト数の閾値を変化させない。
[0139] (自動調整の実施例 3)
ノ ッファで待機している(平均)リクエスト数 N、および、サーノ の CPU使用率 Uを 定期的に測定する。また、 N、 Lに対する閾値として、 LN、 LUを定めておく。
[0140] ·υ≥ΙΑΙならば、応答待ちリクエスト数の閾値を減少させる。
[0141] -U<LU
N≥LNならば、応答待ちリクエスト数の閾値を増加させる。
[0142] N<LNならば、応答待ちリクエスト数の閾値を変化させない。
[0143] CPU使用率のみでなぐメモリ使用率、帯域、並列度を監視し、その最大値を Uと してちよい。
[0144] (自動調整の実施例 4)
定期的にバッファで待機している(平均)リクエスト数 N、および、サーバ 4が単位時 間あたりに処理できたリクエスト数であるスループット Tを測定する。また、現在の応答 待ちリクエスト数の閾値を Rとする。また、応答待ちリクエスト数の閾値 R毎にスループ ットを記録できるようにする。
[0145] ここで、応答待ちリクエスト数の閾値 Rに対するスループットを T[R]と表記する。ま た、ノ ッファ中のリクエスト数 Nに対する閾値として、 LNを定めておく。このとき、測定 された Nおよび Tに応じて、以下を実施する。
[0146] 1) Nく LNならば、応答待ちリクエスト数が閾値に達していないことを意味する。故に
、応答待ちリクエスト数の閾値を更新しないで終了する。 N≥LNならば、 2)を実施す る。
[0147] 2)現在の応答待ちリクエスト数の閾値に対するスループット T[R]を、 Tを用いて更新 する。次に 3)を実施する。
[0148] 3)現在の応答待ちリクエスト数の閾値 Rに対するスループット T[R]と、閾値がより小 さい場合のスループット T[R' ] (R, <R)とを比較する。
[0149] A)T[R]≥kl XT[R,]の場合:応答待ちリクエスト数の閾値の増加によって、スルー プットの向上が得られていることを意味する。故に、さらに応答待ちリクエスト数の閾 値を増カロさせる。ここで、 klは定数であり、 kl≥l . 0。
[0150] B)T[R]≤k2 XT[R' ]の場合:応答待ちリクエスト数の閾値の増加によってスルー プットが減少していることを意味する。故に、応答待ちリクエスト数の閾値を減少させ る。ここで、 k2は定数であり、 k2≤l. 0。
[0151] C)上記以外の場合は、応答待ちリクエスト数の閾値を変化させない。
[0152] 本発明では、ノ ッファ中の待機リクエスト数に基づき、応答待ちリクエスト数がその 閾値に達しているかを判定している。そして、応答待ちリクエスト数がその閾値に達し ていると判定された場合に、応答待ちリクエスト数の閾値を増カロさせるべき力否かを 判定している。
[0153] これにより、サーバ 4に負荷が十分に力かっていない状態において、応答待ちリクェ スト数の閾値が無制限に増加してしまう問題を解消している。なお、上記実施例では 、 N<LN、すなわち応答待ちリクエスト数がその閾値に達していない場合に、応答待 ちリクエスト数の閾値を変化させていない。しかし、 Nく LNの場合に、応答待ちリクェ スト数の閾値を減少させてもょ 、。
[0154] 上記の実施例において、応答待ちリクエスト数の閾値の最大値と最小値とを定めて おき、修正後の応答待ちリクエストの閾値がその範囲外となる場合は、その修正を実 施しないようにしてもよい。
[0155] (第二の実施形態)
次に、第二の実施形態として、リクエストおよびレスポンスを送受信するプロトコルと して、インターネットで広く利用される TCPZlP(Transfer Control Protocol/Internet
Protocol)を用いる場合について示す。図 10は、本発明の第二の実施形態を示すブ ロック図である。本実施形態は、リクエストを発行するクライアント 1— 1〜1— nと、リク ェストに対応するレスポンスを返すサーバ 4、および、リクエスト 'レスポンスを仲介す る負荷制御装置 3と力もなる。負荷制御装置 3は、リバース Proxy、 Webァクセラレー タ、 Firewall,負荷分散システムなどの既存技術を拡張して実装してもよい。
[0156] 本実施形態の負荷制御システムは、次の 7つの機能ブロック力も構成される。
[0157] 'リクエスト受信部 30
'リクエスト送信部 32
'レスポンス受信部 34
'レスポンス送信部 33
•スケジューリング部 31
リクエスト受信部 30は、クライアント 1— 1〜1—nから受信したリクエストをスケジユー リング部 31に送信する。リクエスト受信部 30の処理手順を図 11に示す。まず、クライ アント 1— 1〜1—nからの TCPコネクションが新規に確立されると(S30)、クライアント 1 1〜1 nと負荷制御装置 3との間でリクエストおよびレスポンスを送受信するため のソケットを生成する(S31)。このとき、生成されたソケットには、ソケットを一意に識別 する ID (ソケット ID)が振られる。
[0158] 次に、クライアント側ソケットを一つ選択し (S32)、そのクライアント側ソケットを検査 する(S33)。検査した結果、ソケットに新規リクエストが含まれている場合には(S34) 、各ソケットからリクエストを読み出すリクエスト受信処理を行う(S35)。リクエストを読 み出すたび、各リクエストにリクエストを一意に識別するリクエスト IDが振られる。
[0159] 次に、リクエストとクライアント側のソケットとの対応関係を維持するため、図 12に示 すリクエスト表に、リクエスト IDおよびソケット IDの組を登録しておく(S36)。最後に、 受信したリクエストはスケジューリング部 31に送信される(S37)。
[0160] また、クライアント側ソケットを検査した結果 (S33)、そのソケットに新規リクエストが 含まれて 、な 、場合には(S34)、次のクライアント側ソケットを一つ選択 (S32)して 処理(S33〜S37)を繰り返す(S38)。
[0161] さらに、リクエストの読み出しと並行し、タイムアウトなどの要因によって TCPコネクシ ヨンが切断された力否かを検査する(S39)。コネクションが切断されている場合には、 そのソケットを廃棄する(S40)。
[0162] リクエスト送信部 32は、リクエストを負荷制御装置 3からサーバ 4に送信するための ソケットの管理、および、リクエストの送信処理を行う。リクエスト送信部 32の処理手順 を図 13に示す。リクエスト送信部 32は、スケジューリング部 31から新規送信リクエスト を受け取ると(S50)、図 14に示されるサーバ側ソケット表を参照し、送信先のサーバ 4との間にフリー状態のソケットが存在する力否かを検索する(S51)。ここで、フリー 状態のソケットとは、負荷制御装置 3と送信先のサーノ との間で TCPコネクションが 確立されており、かつ、これまでにサーバ 4に対して送信されたリクエストに対応する レスポンスを全て受信して 、るソケットを指す。
[0163] フリー状態のソケットを検出した場合は(S52)、そのソケットをリクエスト送信用ソケッ トとして選択する。フリー状態のソケットが存在しない場合は(S52)、送信先のサーバ 4と新規に TCPコネクションを確立し、リクエスト送信用ソケットを生成する(S53)。こ のとき、ソケットは一意の IDが割当てられる。そして、サーバ側ソケット表に、生成した ソケットの IDを登録し (S54)、その状態をフリーとする。フリー状態のソケットを選択す ると、次に、サーバ側ソケット表に当該リクエスト IDを登録する(S56)。このとき、ソケッ トの状態はフリーからビジーに変更される(S55)。最後に、サーバ 4に対してリクエス トを送信する(S57)。
[0164] また、リクエスト送信部 32は、タイムアウトなどによって切断された TCPコネクション が有る力否かを常時監視して検出する(S58)。切断された TCPコネクションを検出し た場合は (S59)、対応するソケットを廃棄し (S60)、サーバ側ソケット表から削除する (S61)。
[0165] 本実施形態のように、本発明は、リクエスト送信時に、その送信元クライアントに関 わらず、フリー状態のソケットを再利用する(コネクション集約)。コネクション集約によ り、負荷制御装置 3側において、サーバ 4と負荷制御装置 3との間の TCPコネクション 数がクライアント数を超えないように調整することができる。よって、サーバ側ソケット 数が応答待ちリクエスト数の閾値を超えることがない。故に、応答待ちリクエスト数の 閾値が TCPコネクション数の制限より小さ 、ならば、リクエスト送信が TCPコネクショ ン数の制限によってブロックされることがなくなる。 [0166] 図 13の実施例では、 1つのソケットが同時にサーバ 4に送信できるリクエスト数を 1と している。し力し、レスポンスの返却を待たずに、 1つのソケットで複数のリクエストを連 続送信してもよい。 1つのソケットから複数のリクエストを連続的にサーバ 4に送信する ことで、ソケットの生成または廃棄オーバヘッドを軽減できる。
[0167] レスポンス受信部 34の処理手順を図 15に示す。レスポンス受信部 34は、サーバ 4 力も返送されたレスポンスを受信する(S70)。次に、サーバ側ソケット表を参照し、レ スポンスを受信したサーバ側ソケットを選択する(S71)。次に、レスポンスを読み込み (S72)、サーバ側ソケット表の ID力も対応するリクエスト IDを取得する(S73)。そして 、受信したレスポンス IDとして、対応するリクエストと同じ IDを割当てる。次に、レスポ ンスをスケジューリング部 31、レスポンス送信部 33に送信する(S74)。最後に、当該 ソケットから次のリクエストを送信できるように、ソケットの状態をビジー力もフリーに変 更する(S75)。
[0168] レスポンス送信部 33の処理手順を図 16に示す。レスポンス送信部 33では、レスポ ンスを受け取ると(S80)、そのレスポンス ID (リクエスト IDと一致する)を基にリクエスト 表を参照し、レスポンスを送信すべきクライアントと接続されて ヽるクライアント側ソケッ ト IDを取得 (S81)してクライアント側ソケットを選択する。次に、ソケットにレスポンスを 書き込むことでそのレスポンスをクライアントに返送する(S82)。
[0169] スケジューリング部 31では、第一の実施形態と同様に、受信したリクエストをバッフ ァにバッファリングする。そして、応答待ちリクエスト数が閾値を下回っている場合には 、ノ ッファに格納されているリクエストを選択し、サーバ 4に対して送信する。
[0170] スケジューリング部 31の処理手順を図 17に示す。リクエスト受信した場合は、まず、 リクエストをバッファに格納する(S90)。次に、ノ ッファ中に送信待ちリクエストが存在 するか否かを判定する(S91)。送信待ちリクエストが存在する場合は、現在の応答待 ちリクエスト数がその閾値を超えている力否かを判定する(S92)。閾値以上である場 合は当該処理を終了する。送信中リクエスト数が閾値未満である場合は、応答待ちリ タエスト数を 1増加させる(S93)。次に、ノ ッファからリクエストを一つ取り出し、リクェ スト送信部 32に対して送信する(S94)。
[0171] 一方で、レスポンスを受信した場合は、次のリクエストを送信できるように応答待ちリ タエスト数を 1減じる(S95)。その後の処理は、リクエスト受信時と同様に、図 17のス テツプ S91「リクエストがバッファに存在?」以降を実行する。
[0172] 上述した実施例では、サーバ台数は 1台としているが、複数のサーバを用いてもよ い。複数サーバを用いる場合は、スケジューリング部 31、レスポンス送信部 33、レス ポンス受信部 34を、サーバ台数分複製する。そして、リクエスト受信部 30において、 宛先にしたがって各サーバ用の各処理部にリクエストを振り分ければよい。
[0173] 本発明の効果を示すため、本発明の負荷制御装置 3を PC (パーソナル'コンビユー タ)上に実装し、実験的に評価する。評価は、クライアント l— l〜l—nからのサーバ 4への入力リクエストレート (request per second:rps)を変化させた場合の Webサーノ のスループット (rps)を、本発明の負荷制御装置 3が有る場合と無い場合とで比較す る。
[0174] 実験の構成を図 18に示す。図 18に示すように、クライアント 1— 1〜1— nとサーノ
(Webサーノ とは、 L2スィッチ 5および負荷制御装置 3を介して通信をする。サーバ 4と負荷制御装置 3との間および負荷制御装置 3と L2スィッチ 5との間のネットワーク( 図示省略)の帯域は lGbpsである。一方、クライアント 1— 1〜1— nと L2スィッチ 5と の間のネットワーク(図示省略)の帯域は 100Mbpsである。ここで、サーバ 4および負 荷制御装置 3の構成を図 19に示す。本実験では、負荷制御装置 3の応答待ちリクェ スト数の閾値を" 10"で固定している。
[0175] 従来の負荷制御手法と比較するため、サーバ 4が同時に接続可能な TCPコネクシ ヨン数の上限を 150に設定しておく。また、クライアント 1— 1〜1— nがリクエストを送 信して力も受信するまでのタイムアウト時間を 10秒に設定する。タイムアウトに達する と、クライアント l— l〜l—nは TCPコネクションを切断し、当該リクエストをキャンセル する。
[0176] 図 20に実験結果を示す。図 20は横軸に入力リクエストレートをとり、縦軸にスルー プットをとる。図 20はクライアント 1— 1〜1—nからの入力リクエストレート(rps)に対す るサーバ 4のスループット(rps)の変化を示している。図 20中の「本発明」は、負荷制 御装置 3が有る場合の結果を示し、「従来手法」は、負荷制御装置 3を介さずにサー ノ とクライアント 1— 1〜1—nを接続した場合の結果を示して 、る。 [0177] 図 20から、入力リクエストレートが lOOrps以下ならば、負荷制御装置 3の有無に関 わらず、サーノ のスループットは入力リクエストレートに比例して増加する。しかし、 入力リクエストレートが lOOrpsを超えると、負荷制御装置 3がない場合では、スルー プットの低下が顕著に生じる。例えば、入力レートが 200rpsにおけるスループットは ピーク時の約 60%となる。
[0178] 一方で、本発明の負荷制御装置 3を用いると、入力リクエストレートが lOOrpsより増 加しても、そのスループットをピーク時の 90%以上に維持できている。以上の結果は 、本発明による負荷制御装置 3の有効性を実証するものと 、える。
[0179] 次に、応答待ちリクエスト数の閾値を自動調整することによる効果を示す。本評価で は図 18と同様の構成を用いる。また、本評価におけるサーバ 4および負荷制御装置 3の詳細を図 21に示す。本評価では、 Webアプリケーションとして、オンラインショッ ピングを想定し、ベンチマークソフトウェア SPEC WEB2005 Ecommerceを用い ている(例えば、 http : //www. spec, org参照)。この Webアプリケーションでは、 ショッピングを完了するまでにおよそ 13ページを必要とする。またクライアント PC上に 現実のクライアントの動作をエミュレートするプログラムを実行する。
[0180] クライアントプログラムでは、自動的に Webサーバにアクセスし、セッションの実行を 試みる。このとき、クライアントプログラムの振る舞いは、現実のクライアントと同様に、 一つのページを取得してから次のページに移動するまでの思考時間、ページ読み 込みのタイムアウトを考慮する。タイムアウトした場合は、再度、当該ページの取得を 試みる。また一定の確率で、前のページに後戻りしたり、セッション途中中断したりす る。本評価では、まず、サーノ の最大処理性能を上回る量のリクエストを負荷制御 装置 3に送信する。次に、サーノ で単位時間に処理されたリクエスト数であるスルー プットを、応答待ちリクエスト数の閾値を静的に設定する場合と、本発明に基づき自 動調整する場合とで測定して比較する。
[0181] まず、応答待ちリクエスト数の閾値を静的に設定する場合を評価する。その評価結 果を図 22に示す。図 22のグラフは、応答待ちリクエスト数の閾値の設定値に対する スループットの変化を示している。すなわち、図 22の横軸は、応答待ちリクエスト数の 閾値の設定値であり、縦軸はサーノ のスループット (rps)である。図 22のグラフから 、サーノ のスループットは応答待ちリクエスト数の閾値力 ' 2"の場合に 671rpsで最 大となり、応答待ちリクエスト数の増加に伴って徐々に低下することがわかる。この結 果から、仮に、スループットを最大値の 97%以上に維持したいと仮定すると、応答待 ちリクエスト数の閾値を" 2"〜"6"の範囲に設定することが必要となる。
[0182] 次に、上述した(自動調整の実施例 4)を用いて、本発明に基づいて応答待ちリクェ スト数の閾値を自動調整した結果を示す。なお、本発明に基づく閾値の自動調整法 の有効性を示すため、非特許文献 1に示されるページ単位の並列度自動調整法を、 応答待ちリクエスト数の閾値の制御に応用した場合の結果を併せて示す。なお、非 特許文献 1に示される並列度自動調整法は以下のとおりである。まず、定期的にスル 一プットを測定し、並列度を増カロさせる力減少させるかを決定する。ここで、 i回目の 測定におけるスループットを Tiとする。また、 i回目の測定時の並列度を とする。こ のとき、
•Ci>Ci-lかつ Ti≥Ti-lならば並列度を増加させる。
[0183] *Ci>Ci-lかつ Ti<Ti-lならば並列度を減少させる。
[0184] *Ci< Ci-lかつ Ti≥Ti-lならば並列度を減少させる。
[0185] *Ci< Ci-lかつ Ti<Ti-lならば並列度を増加させる。
[0186] すなわち、前回の測定結果と比較し、スループットの向上が得られているならば前 回と同じオペレーション(並列度の増加または減少)を行う。逆に、スループットが減 少していたら、前回と逆のオペレーションを施す。
[0187] 図 23のグラフは、応答待ちリクエスト数の閾値の時間的変化を示している。図 23の 横軸は時間(秒)であり、縦軸は応答待ちリクエスト数の閾値である。図 23において、 本発明に基づく自動調整法では、応答待ちリクエスト数の閾値が" 2"〜"6"の間に収 まっている時間が、観測時間の 96. 9%に達している。力!]えて、本発明に基づいて自 動調整した場合の平均スループットは 660rpsであり、これは静的に設定した場合の 最大スループットの 98%に達している。一方で、図 23から、非特許文献 1に基づく手 法では、応答待ちリクエスト数の閾値が異常増加していることがわかる。非特許文献 1 による手法でこのような異常増加が生じる要因として以下がある。
[0188] (1)非特許文献 1に基づく手法では、現在の応答待ちリクエスト数がその閾値に達し ている力否かを判定する手段がない。故に、サーバへの入力リクエストレートを徐々 に増加させると、応答待ちリクエスト数の閾値に達する前にその閾値が際限なく増加 するという問題がある。これに対し、本発明では、キュー中のリクエストが十分な数に 達しない限り、応答待ちリクエスト数の閾値を増加させないことで、この問題を回避し ている。
[0189] (2)非特許文献 1に基づく手法では、応答待ちリクエスト数の閾値の増減は、前回と 今回のスループット計測結果の比較と 、う、局所的なスループットの変化力 決定さ れる。このため、スループットが一時的に大きく下がって徐々に回復した場合などで、 長期的にはスループットの向上が得られて 、な 、にも関わらず応答待ちリクエスト数 の閾値が際限なく増加 (または減少)するという問題が生じる。これに対して本発明の 自動調整の実施例 4では、応答待ちリクエスト数の閾値毎にスループットを記録し比 較することで、スループットの増加が得られない限り閾値が増加しな 、ように設計され ている。また、自動調整の実施例 1〜3では、応答時間に閾値を設定することで、応 答待ちリクエスト数の閾値が際限なく増加する問題を回避している。
[0190] 次に、本発明に基づくリクエストの優先制御の効果の一例として、セッションの進行 状況に基づくクラス分類の評価結果を示す。すなわち、有効なセッション IDを含むか 否かに基づき、リクエストをクラス分類する。そして、 Priority Queuingを用いて、有 効なセッション IDを含むリクエストを優先的にサーバで処理させる。本評価では図 18 と同様の構成を用いる。また、本評価におけるサーバ 4および負荷制御装置 3の詳細 は図 21と同様である。ただし、負荷制御装置の応答待ちリクエスト数の閾値は静的に 10に設定している。以上の条件のもと、 Webサーバ上に対してセッション処理を試み るクライアントの数を変化させたときの、 Webサーバが単位時間当りに完了できたセッ シヨン数 (以下、セッションスループット)を、負荷制御装置がある場合とない場合とで 比較する。
[0191] 図 24に実験結果を示す。図 24の縦軸はクライアントの数であり、横軸はセッション スループットを示している。図 24に示されるとおり、 400クライアントまでは、負荷制御 装置の有無に関わらず、クライアント数に対してサーバのセッションスループットが比 例して増加する。しかし、 400クライアントを超えると、サーバが過負荷となり、クライア ント間でサーバリソースが競合するようになる。この結果、負荷制御装置が無い場合 では、各クライアントで等しくタイムアウトや途中中断が生じるようになり、セッションス ループットが低下に転じる。そして、 800クライアントでセッションが全く完了しなくなる 。これに対して、本実施例の負荷制御装置では、より進行しているセッションを優先的 に処理する。この結果、 Webサーバが過負荷となった状態においても、セッションス ループットを最大のまま維持している。以上の結果は、本実施例の負荷制御装置に 基づく優先制御の効果を実証するものである。
[0192] 以上の結果は本発明の有効性を示すものといえる。
[0193] 本実施例は、汎用の情報処理装置にインストールすることにより、その情報処理装 置に、本実施例で説明した負荷制御装置 3に相応する機能を実現させるプログラムと して実施することができる。このプログラムは、記録媒体に記録されて汎用の情報処 理装置にインストールされ、あるいは通信回線を介して汎用の情報処理装置にインス トールされることにより当該汎用の情報処理装置を本実施例で説明した負荷制御装 置 3に相応する装置とすることができる。
[0194] なお、本実施例のプログラムは、汎用の情報処理装置によって直接実行可能なも のだけでなぐハードディスクなどにインストールすることによって実行可能となるもの も含む。また、圧縮されたり、暗号化されたりしたものも含む。
産業上の利用可能性
[0195] 本発明によれば、過剰リクエスト受信時におけるサーバの性能低下を回避すること ができ、また、この際に、適切な制御のための閾値の設定も自動化することができる ため装置 (ネットワーク)管理者およびネットワーク 'ユーザの双方にとって利便性を向 上させることができる。

Claims

請求の範囲
[1] クライアント(1— 1、 · · ·、 l—n)とサーバ (4)との間に配置され、前記クライアント(1 1、 · · ·、 l—n)力も受信したリクエストを前記サーバ (4)に送信し、当該リクエストに対 して前記サーバ (4)から返されるレスポンスを前記クライアント(1— 1、 · · ·、 1— n)に 送信する負荷制御装置(3)にお 、て、
前記サーバ (4)に送信済みであるが前記サーバ (4)からレスポンスが返されて 、な い応答待ちリクエストの数を制限する手段を備え、
この制限する手段は、
応答待ちリクエスト数が閾値に達しているならば、受信したリクエストを一時蓄積す るノ ッファと、
応答待ちリクエスト数が閾値を下回るまで前記バッファ力 のリクエストの送信を待 ち合わせる手段と、
を備えたことを特徴とする負荷制御装置 (3)。
[2] 前記閾値は 1よりも大きな値である請求の範囲第 1項記載の負荷制御装置(3)。
[3] 前記サーバ (4)の実行状況を監視する手段と、
この監視する手段の監視結果に基づいて前記サーバ (4)のリクエストに対する応答 時間が許容範囲内であるときには前記応答待ちリクエスト数の閾値を増加させ、当該 応答時間が許容範囲を超える場合には前記応答待ちリクエスト数の閾値を減少させ る手段と、
を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[4] 前記サーバ (4)の実行状況を監視する手段と、
この監視する手段の監視結果に基づ!、て単位時間あたりにサーバ (4)が処理した リクエスト数であるスループットを応答待ちリクエスト数の閾値毎に測定する手段と、 現在の閾値に対するスループットが現在の閾値より小さい閾値に対するスループッ トを上回る場合には閾値を増加させ、現在の閾値に対するスループットが現在の閾 値より小さい閾値のスループットを下回る場合には閾値を減少させる手段と、 を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[5] 応答待ちリクエスト数がその閾値に達している力否かを判定する手段と、 閾値に達して 、る場合に、閾値を増加または減少させる力否かを判定する手段と、 を備えた請求の範囲第 3項または第 4項記載の負荷制御装置 (3)。
[6] 前記サーバ (4)と自己(3)との間の TCPコネクション同時接続数が前記応答待ちリク ェスト数の閾値以下となるように自己(3)と前記クライアント(1— 1、 · · ·、 l—n)との間 の TCPコネクションを集約する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[7] 前記バッファは、送信元クライアント(1— 1、 · · ·、 l—n)の識別情報に基づきリクエス トを優先制御する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[8] 前記バッファは、リクエスト中の特定の位置または範囲に特定のパターンが含まれる か否かに基づきリクエストを優先制御する手段を備えた請求の範囲第 1項記載の負 荷制御装置 (3)。
[9] 前記バッファは、リクエスト中の特定の変数が予め設定した閾値より大きいか否かに 基づきリクエストを優先制御する手段を備えた請求の範囲第 1項記載の負荷制御装 置 (3)。
[10] 前記バッファは、リクエストが暗号ィ匕されているか否かに基づきリクエストを優先制御 する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[11] 前記バッファは、所定時間以上蓄積されたリクエストに対して、ビジーメッセージを通 知する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[12] 前記サーバ(4)は Webサーバであり、
前記バッファは、リクエストのページ表示の表示優先度に基づきリクエストを優先制 御する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[13] 前記リクエストは TCPコネクションによってクライアント(1— 1、 · · ·、 l—n)力も負荷制 御装置 (3)に送信され、
前記バッファは、クライアントと負荷制御装置との間に接続された他の TCPコネクシ ヨンの有無または TCPコネクションの数および当該リクエストが TCPコネクションの最 初のリクエストである力否かに基づきリクエストを優先制御する手段を備えた請求の範 囲第 1項記載の負荷制御装置 (3)。
[14] レスポンスにブラウザが自動取得すべきページ構成要素の URLが指し示されて 、る 場合に、レスポンス送信先の識別情報と当該 URLとの組を一時的に記憶する手段を 備え、
前記バッファは、リクエストの送信元の識別情報と URLとの組力 一時記憶されたレ スポンス送信先の識別情報と URLとの組と一致するカゝ否かに基づきリクエストを優先 制御する手段を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[15] 前記リクエストが属するセッションの進行状況に基づきリクエストを優先制御する手段 を備えた請求の範囲第 1項記載の負荷制御装置 (3)。
[16] 前記サーバ (4)で処理されたリクエストが属するセッションのセッション識別情報を一 定期間キャッシュする手段と、キャッシュされているセッション識別情報を持つか否か に基づきリクエストを優先制御する手段を備えた請求の範囲第 1項記載の負荷制御 装置 (3)。
[17] 前記バッファは、クライアント(1— 1、 · · ·、 1—n)力 送信されたトラヒックの不正ァク セスの疑わしさに基づきリクエストを優先制御する手段を備えた請求の範囲第 1項記 載の負荷制御装置 (3)。
[18] 汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、請 求の範囲第 1項ないし第 17項のいずれかに記載の負荷制御装置の機能に相応する 機能を実現させるプログラム。
[19] 請求の範囲第 18項記載のプログラムが記録された前記汎用の情報処理装置が読取 可能な記録媒体。
[20] クライアント(1— 1、 · · ·、 1 n)とサーバ (4)との間に配置され、前記クライアント(1 1、 · · ·、 1—n)力も受信したリクエストを前記サーバ (4)に送信し、当該リクエストに対 して前記サーバ (4)から返されるレスポンスを前記クライアント(1— 1、 · · ·、 1— n)に 送信する負荷制御装置 (3)が実行する負荷制御方法にぉ 、て、
前記サーバに送信済みであるが前記サーノからレスポンスが返されていない応答 待ちリクエストの数を制限するステップ(S10— S14、 S20— S26)を有し、
この制限するステップは、
応答待ちリクエスト数が閾値に達しているならば、受信したリクエストをバッファに 一時蓄積するステップ (S 10、 S11)と、 応答待ちリクエスト数が閾値を下回るまで前記バッファ力 のリクエストの送信を待 ち合わせるステップ(Sl l— S14、 S23— S26)と、
を有することを特徴とする負荷制御方法。
[21] 前記閾値は 1よりも大きな値である請求の範囲第 20項記載の負荷制御方法。
[22] 前記サーバ (4)の実行状況を監視するステップと、
この監視するステップの監視結果に基づいて前記サーバのリクエストに対する応答 時間が許容範囲内であるときには前記応答待ちリクエスト数の閾値を増加させ、当該 応答時間が許容範囲を超える場合には前記応答待ちリクエスト数の閾値を減少させ るステップと、
を有する請求の範囲第 20項記載の負荷制御方法。
[23] 前記サーバ (4)の実行状況を監視するステップと、
この監視するステップの監視結果に基づ ヽて単位時間あたりにサーバ (4)が処理 したリクエスト数であるスループットを応答待ちリクエスト数の閾値毎に測定するステツ プと、
現在の閾値に対するスループットが現在の閾値より小さい閾値に対するスループッ トを上回る場合には閾値を増加させ、現在の閾値に対するスループットが現在の閾 値より小さい閾値のスループットを下回る場合には閾値を減少させるステップと、 を有する請求の範囲第 20項記載の負荷制御方法。
[24] 応答待ちリクエスト数がその閾値に達している力否かを判定するステップと、
閾値に達して 、る場合に、閾値を増加または減少させる力否かを判定するステップ と、
を有する請求の範囲第 22項または第 23項記載の負荷制御方法。
[25] 前記サーバ (4)と自己(3)との間の TCPコネクション同時接続数が前記応答待ちリク ェスト数の閾値以下となるように自己(3)と前記クライアント(1— 1、 · · ·、 l—n)との間 の TCPコネクションを集約するステップを有する請求の範囲第 20項記載の負荷制御 方法。
PCT/JP2007/058918 2006-04-26 2007-04-25 負荷制御装置およびその方法 WO2007125942A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2007800127797A CN101421702B (zh) 2006-04-26 2007-04-25 负荷控制装置及其方法
US12/298,574 US8667120B2 (en) 2006-04-26 2007-04-25 Load control device and method thereof for controlling requests sent to a server
EP07742353.1A EP2023245B1 (en) 2006-04-26 2007-04-25 Load control device and its method
JP2008513233A JP5189974B2 (ja) 2006-04-26 2007-04-25 負荷制御装置およびその方法

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2006122196 2006-04-26
JP2006-122196 2006-04-26
JP2006183392 2006-07-03
JP2006-183392 2006-07-03
JP2006-277864 2006-10-11
JP2006277864 2006-10-11

Publications (1)

Publication Number Publication Date
WO2007125942A1 true WO2007125942A1 (ja) 2007-11-08

Family

ID=38655468

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/058918 WO2007125942A1 (ja) 2006-04-26 2007-04-25 負荷制御装置およびその方法

Country Status (5)

Country Link
US (1) US8667120B2 (ja)
EP (1) EP2023245B1 (ja)
JP (1) JP5189974B2 (ja)
CN (2) CN102684988B (ja)
WO (1) WO2007125942A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419699A (zh) * 2008-12-04 2009-04-29 中国工商银行股份有限公司 一种银行保证金数据动态监控方法及装置
JP5543005B1 (ja) * 2013-10-30 2014-07-09 グリー株式会社 サーバ、その制御方法、及びその制御プログラム
JP2015088176A (ja) * 2013-09-27 2015-05-07 日本電気株式会社 情報処理装置、障害回避方法およびコンピュータプログラム
JP2016538621A (ja) * 2013-10-10 2016-12-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ハードウェア・アクセラレータの性能測定のための方法、装置、およびコンピュータ・プログラム
JP2017050001A (ja) * 2015-09-04 2017-03-09 バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC 効果的なニューラルネットワークの配置に用いるシステム及び方法
JP2018049471A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム
JP2019040344A (ja) * 2017-08-24 2019-03-14 富士通株式会社 送信制御プログラム、送信制御装置および送信制御方法
US10476732B2 (en) 2016-11-28 2019-11-12 Fujitsu Limited Number-of-couplings control method and distributing device
JP2020004000A (ja) * 2018-06-27 2020-01-09 富士通株式会社 制御プログラム、制御方法および制御装置

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321573B2 (en) * 2004-09-17 2012-11-27 Sanyo Electric Co., Ltd. Communications terminal with optimum send interval
US8078674B2 (en) * 2007-05-10 2011-12-13 International Business Machines Corporation Server device operating in response to received request
US9800614B2 (en) * 2007-05-23 2017-10-24 International Business Machines Corporation Method and system for global logoff from a web-based point of contact server
US8850029B2 (en) * 2008-02-14 2014-09-30 Mcafee, Inc. System, method, and computer program product for managing at least one aspect of a connection based on application behavior
US8656267B2 (en) * 2008-03-31 2014-02-18 International Business Machines Corporation Method of approximate document generation
US8595847B2 (en) * 2008-05-16 2013-11-26 Yellowpages.Com Llc Systems and methods to control web scraping
US7941538B2 (en) * 2008-06-12 2011-05-10 International Business Machines Corporation Dynamic management of resource utilization
US8856376B1 (en) * 2008-12-18 2014-10-07 Bank Of America Corporation Stabilization tool for a high-capacity network infrastructure
US8321389B2 (en) * 2009-01-08 2012-11-27 International Business Machines Corporation Method, apparatus and computer program product for maintaining file system client directory caches with parallel directory writes
US8238243B2 (en) * 2009-02-12 2012-08-07 Arcsoft, Inc. System and method for network optimization by managing low priority data transfers
US8560604B2 (en) * 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
CN102714603A (zh) * 2009-12-18 2012-10-03 惠普发展公司,有限责任合伙企业 网络中的委托代理
EP2534798B1 (en) * 2010-02-12 2013-12-25 Telefonaktiebolaget LM Ericsson (publ) Rate adaptation
US9058210B2 (en) * 2010-03-23 2015-06-16 Ebay Inc. Weighted request rate limiting for resources
US10034300B2 (en) * 2010-06-10 2018-07-24 Cisco Technology, Inc Load based probe response scheduling
US8706889B2 (en) * 2010-09-10 2014-04-22 International Business Machines Corporation Mitigating connection identifier collisions in a communication network
US9313224B1 (en) * 2010-09-30 2016-04-12 Google Inc. Connectivity protector
EP2487868A1 (en) * 2011-02-10 2012-08-15 Telefonaktiebolaget LM Ericsson (publ) An arrangement and method for handling data to and from a processing engine
US9418064B1 (en) * 2011-03-18 2016-08-16 Emc Corporation Resource queues
US9418109B2 (en) * 2011-03-18 2016-08-16 Emc Corporation Memory quota
JP2012226414A (ja) * 2011-04-15 2012-11-15 Konica Minolta Business Technologies Inc 画像形成装置、通信制御方法、通信制御プログラム、ブラウジング方法およびブラウジングプログラム
US8914521B2 (en) 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
CN103166994A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 获取网络数据的方法及装置
KR20130086408A (ko) * 2012-01-25 2013-08-02 삼성전자주식회사 Http 소켓 제어장치 및 방법
US8793697B2 (en) * 2012-02-23 2014-07-29 Qualcomm Incorporated Method and system for scheduling requests in a portable computing device
US9642066B2 (en) * 2012-03-30 2017-05-02 Sony Corporation Network-controlled adaptive terminal behavior managing high-network-load scenarios
US9311424B2 (en) * 2012-05-17 2016-04-12 Qualcomm Incorporated Center, Inc. HTTP request pipeline optimization
US9742676B2 (en) 2012-06-06 2017-08-22 International Business Machines Corporation Highly available servers
US9542546B2 (en) * 2012-09-28 2017-01-10 Volusion, Inc. System and method for implicitly resolving query scope in a multi-client and multi-tenant datastore
US9548912B2 (en) 2012-10-15 2017-01-17 Oracle International Corporation System and method for supporting smart buffer management in a distributed data grid
CN103841051B (zh) * 2012-11-27 2017-05-10 国基电子(上海)有限公司 服务请求控制系统及其控制方法
JP6107218B2 (ja) * 2013-02-25 2017-04-05 富士通株式会社 制御装置,制御方法,および制御プログラム
US9363132B2 (en) * 2013-04-24 2016-06-07 International Business Machines Corporation Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections
US9832257B2 (en) * 2013-05-02 2017-11-28 Intel Corporation Service acquisition techniques for wireless communications systems
US9270617B2 (en) * 2013-06-05 2016-02-23 Sap Se Load controller framework
US9369525B2 (en) * 2013-06-26 2016-06-14 International Business Machines Corporation Highly resilient protocol servicing in network-attached storage
US9304861B2 (en) 2013-06-27 2016-04-05 International Business Machines Corporation Unobtrusive failover in clustered network-attached storage
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US20150113588A1 (en) * 2013-10-22 2015-04-23 Cisco Technology, Inc. Firewall Limiting with Third-Party Traffic Classification
CN106063205B (zh) * 2013-11-06 2018-06-29 卡尔加里科技股份有限公司 远程访问环境中客户端流量控制的装置和方法
US9602424B1 (en) * 2014-03-31 2017-03-21 Amazon Technologies, Inc. Connection balancing using attempt counts at distributed storage systems
US10061780B2 (en) * 2014-04-28 2018-08-28 Bank Of America Corporation Information management command process device
US9537740B2 (en) 2014-07-31 2017-01-03 International Business Machines Corporation Monitoring device usage
US10169182B2 (en) 2014-07-31 2019-01-01 International Business Machines Corporation Monitoring levels of utilization of device
US9998347B2 (en) 2014-07-31 2018-06-12 International Business Machines Corporation Monitoring device usage
US10310923B1 (en) * 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10310873B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
WO2016032518A1 (en) * 2014-08-29 2016-03-03 Hewlett Packard Enterprise Development Lp Multiplexing network connections
CN105787362B (zh) * 2014-12-25 2018-09-18 航天信息股份有限公司 用于保护网票查询查验系统的方法和装置
US9807813B2 (en) 2015-04-15 2017-10-31 Cisco Technology, Inc. Probe response suppression
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
WO2016208354A1 (ja) * 2015-06-24 2016-12-29 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法、および情報処理プログラム
US10102103B2 (en) 2015-11-11 2018-10-16 International Business Machines Corporation System resource component utilization
US20170147407A1 (en) * 2015-11-24 2017-05-25 International Business Machines Corporation System and method for prediciting resource bottlenecks for an information technology system processing mixed workloads
US11416912B2 (en) * 2016-05-13 2022-08-16 Digital River, Inc. High volume transaction queueing with machine learning
US10142262B2 (en) 2016-05-31 2018-11-27 Anchorfree Inc. System and method for improving an aggregated throughput of simultaneous connections
CN106230627B (zh) * 2016-07-28 2019-05-07 浪潮软件股份有限公司 一种基于可定制策略的web访问高峰缓解方法
US10250517B2 (en) * 2017-02-03 2019-04-02 Microsoft Technology Licensing, Llc Completion-side client throttling
CN106953857B (zh) * 2017-03-16 2020-03-10 郑州云海信息技术有限公司 一种基于cs架构的服务器端多线程管理方法
US10649876B2 (en) 2017-04-20 2020-05-12 International Business Machines Corporation Maintaining manageable utilization in a system to prevent excessive queuing of system requests
US10831403B2 (en) * 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
CN108984571B (zh) * 2017-06-05 2023-08-29 金篆信科有限责任公司 事务标识操作方法、系统和计算机可读存储介质
EP4191981A1 (en) 2017-08-28 2023-06-07 Bright Data Ltd. Improving content fetching by selecting tunnel devices grouped according to geographic location
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
US10565021B2 (en) * 2017-11-30 2020-02-18 Microsoft Technology Licensing, Llc Automated capacity management in distributed computing systems
CN109040246B (zh) * 2018-08-02 2022-03-08 广州虚拟动力网络技术有限公司 一种基于时间队列机制的组网通讯方法和系统
CN110971561B (zh) * 2018-09-28 2022-08-23 阿里巴巴集团控股有限公司 一种访问请求处理方法、装置及设备
EP3750079A4 (en) 2019-02-25 2022-01-12 Bright Data Ltd SYSTEM AND METHOD FOR URL EXTRACTION CHALLENGE MECHANISM
CN109818977B (zh) * 2019-03-18 2021-09-24 深圳市网心科技有限公司 一种接入服务器通信优化方法、接入服务器以及通信系统
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN110333937B (zh) * 2019-05-30 2023-08-29 平安科技(深圳)有限公司 任务分发方法、装置、计算机设备和存储介质
CN110505155B (zh) * 2019-08-13 2023-12-08 北京达佳互联信息技术有限公司 请求降级处理方法、装置、电子设备及存储介质
US11443320B2 (en) 2020-01-07 2022-09-13 Bank Of America Corporation Intelligent systems for identifying transactions associated with an institution impacted by an event using a dashboard
US11238459B2 (en) 2020-01-07 2022-02-01 Bank Of America Corporation Intelligent systems for identifying transactions associated with an institution impacted by an event
CN113765969A (zh) * 2020-09-28 2021-12-07 北京沃东天骏信息技术有限公司 一种流量控制方法和装置
CN112749015B (zh) * 2021-01-25 2023-07-25 杭州迪普科技股份有限公司 负载均衡方法及装置
TWI827974B (zh) * 2021-09-08 2024-01-01 財團法人工業技術研究院 虛擬功能效能分析系統及其分析方法
CN114553806B (zh) * 2022-02-21 2023-09-05 深圳平安智慧医健科技有限公司 一种即时通讯的优化方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094711A (ja) * 2002-09-02 2004-03-25 Hitachi Ltd 負荷バランス機能を有するプログラム制御方法及びシステム
JP3566699B2 (ja) * 2002-01-30 2004-09-15 株式会社東芝 サーバ計算機保護装置および同装置のデータ転送制御方法
JP3646582B2 (ja) * 1998-09-28 2005-05-11 富士通株式会社 電子情報表示方法、電子情報閲覧装置および電子情報閲覧プログラム記憶媒体
JP2005184165A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03278136A (ja) 1989-06-23 1991-12-09 Hitachi Ltd 計算機システムの負荷制御方法及び装置
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6308238B1 (en) * 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
US7340532B2 (en) * 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
JP3736293B2 (ja) 2000-05-31 2006-01-18 日本電信電話株式会社 暗号化通信におけるサービス品質制御方法及び装置サービス品質制御プログラムを格納した記憶媒体
EP1332600A2 (en) 2000-11-03 2003-08-06 The Board of Regents of the University of Nebraska Load balancing method and system
GB0122507D0 (en) 2001-09-18 2001-11-07 Marconi Comm Ltd Client server networks
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
CN100511203C (zh) * 2003-07-11 2009-07-08 日本电信电话株式会社 数据库访问控制方法、控制装置及代理处理服务器装置
US8020185B2 (en) * 2004-03-03 2011-09-13 Alcatel Lucent System and method for retrieving digital multimedia content from a network node
CN101176087B (zh) * 2005-03-23 2011-12-28 阿尔卡特朗讯公司 从网络节点实现对数字多媒体内容的播放列表搜索的系统和方法
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3646582B2 (ja) * 1998-09-28 2005-05-11 富士通株式会社 電子情報表示方法、電子情報閲覧装置および電子情報閲覧プログラム記憶媒体
JP3566699B2 (ja) * 2002-01-30 2004-09-15 株式会社東芝 サーバ計算機保護装置および同装置のデータ転送制御方法
JP2004094711A (ja) * 2002-09-02 2004-03-25 Hitachi Ltd 負荷バランス機能を有するプログラム制御方法及びシステム
JP2005184165A (ja) * 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MASAHIRO MATSUNUMA ET AL., SESSION-LEVEL QUEUE SCHEDULING FOR IMPROVING PERFORMANCE DEGRADATION OF WEB APPLICATION AT OVERLOAD TIME, January 2005 (2005-01-01), pages 105 - 114
See also references of EP2023245A4

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419699A (zh) * 2008-12-04 2009-04-29 中国工商银行股份有限公司 一种银行保证金数据动态监控方法及装置
JP2015088176A (ja) * 2013-09-27 2015-05-07 日本電気株式会社 情報処理装置、障害回避方法およびコンピュータプログラム
JP2016538621A (ja) * 2013-10-10 2016-12-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ハードウェア・アクセラレータの性能測定のための方法、装置、およびコンピュータ・プログラム
JP5543005B1 (ja) * 2013-10-30 2014-07-09 グリー株式会社 サーバ、その制御方法、及びその制御プログラム
JP2015087946A (ja) * 2013-10-30 2015-05-07 グリー株式会社 サーバ、その制御方法、及びその制御プログラム
JP2017050001A (ja) * 2015-09-04 2017-03-09 バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC 効果的なニューラルネットワークの配置に用いるシステム及び方法
US10769533B2 (en) 2015-09-04 2020-09-08 Baidu Usa Llc Systems and methods for efficient neural network deployments
JP2018049471A (ja) * 2016-09-21 2018-03-29 日本電気株式会社 疑似サーバ制御装置、疑似サーバ制御方法、および疑似サーバ制御プログラム
US10476732B2 (en) 2016-11-28 2019-11-12 Fujitsu Limited Number-of-couplings control method and distributing device
JP2019040344A (ja) * 2017-08-24 2019-03-14 富士通株式会社 送信制御プログラム、送信制御装置および送信制御方法
JP2020004000A (ja) * 2018-06-27 2020-01-09 富士通株式会社 制御プログラム、制御方法および制御装置
JP7139721B2 (ja) 2018-06-27 2022-09-21 富士通株式会社 制御プログラム、制御方法および制御装置

Also Published As

Publication number Publication date
CN102684988A (zh) 2012-09-19
US20090077233A1 (en) 2009-03-19
EP2023245B1 (en) 2016-02-17
US8667120B2 (en) 2014-03-04
CN102684988B (zh) 2015-02-11
EP2023245A4 (en) 2012-08-15
CN101421702B (zh) 2012-05-30
JP5189974B2 (ja) 2013-04-24
CN101421702A (zh) 2009-04-29
JPWO2007125942A1 (ja) 2009-09-10
EP2023245A1 (en) 2009-02-11

Similar Documents

Publication Publication Date Title
JP5189974B2 (ja) 負荷制御装置およびその方法
US7747662B2 (en) Service aware network caching
US8799502B2 (en) Systems and methods for controlling the number of connections established with a server
US6912562B1 (en) Cache invalidation technique with spurious resource change indications
JP4916809B2 (ja) 負荷分散制御装置および方法
Casalicchio et al. Static and dynamic scheduling algorithms for scalable web server farm
JP4108486B2 (ja) Ipルータ、通信システム及びそれに用いる帯域設定方法並びにそのプログラム
US20020002602A1 (en) System and method for serving a web site from multiple servers
US20030101265A1 (en) System and method for dynamically allocating processing on a network amongst multiple network servers
EP1335560B1 (en) Server computer protection apparatus and method for controlling data transfer by the same
TW576045B (en) System for controlling network flow by monitoring download bandwidth
JP2008059040A (ja) 負荷制御システムおよび方法
US7730202B1 (en) Dynamic interrupt timer
JP4394710B2 (ja) 負荷制御装置及び方法及びプログラム
JP4350098B2 (ja) 実行制御装置および方法
JP4646931B2 (ja) サーバ装置およびリクエスト整理方法
JP6339974B2 (ja) Api提供システムおよびapi提供方法
JP4722150B2 (ja) クライアントサーバシステム
JP2004206172A (ja) 通信制御方法および装置
KR100440663B1 (ko) 웹가속 기술을 포함한 네트워크 시스템 및 그 동작방법
Demir et al. Securing Grid Data Transfer Services with Active Network Portals
Kurebayashi et al. A Web access SHaping method to improve the performance of congested servers
Chen A framework for service differentiating Internet servers
Sharma et al. Web Switching

Legal Events

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

Ref document number: 07742353

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 200780012779.7

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2008513233

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12298574

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007742353

Country of ref document: EP