WO2014141854A1 - Stabilization system, stabilization method, virtual machine environment, and program - Google Patents

Stabilization system, stabilization method, virtual machine environment, and program Download PDF

Info

Publication number
WO2014141854A1
WO2014141854A1 PCT/JP2014/054143 JP2014054143W WO2014141854A1 WO 2014141854 A1 WO2014141854 A1 WO 2014141854A1 JP 2014054143 W JP2014054143 W JP 2014054143W WO 2014141854 A1 WO2014141854 A1 WO 2014141854A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
virtual machine
communication request
time
transmission
Prior art date
Application number
PCT/JP2014/054143
Other languages
French (fr)
Japanese (ja)
Inventor
亮仁 小比賀
智仁 井口
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2015505353A priority Critical patent/JP5796693B2/en
Publication of WO2014141854A1 publication Critical patent/WO2014141854A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Definitions

  • the present invention relates to a system for stabilizing request processing time, a method for stabilizing request processing time, a virtual machine environment, and a program.
  • Patent Document 1 discloses an example of an interrupt processing synthesis system in a virtual machine.
  • the interrupt processing synthesis system includes a virtual machine 600, a virtual machine environment 700, a virtual disk 800, hardware 900, and a disk 940.
  • the virtual machine 600 includes application software 610, a guest OS (Operating System) 620, and virtual hardware 630.
  • the virtual machine environment 700 includes a VMM (Virtual Machine Monitor) 710 and a VMkernel 720.
  • the hardware 900 includes a CPU 910, a storage adapter 920, and a memory 930.
  • a virtual disk 800 refers to a disk device that is created in the virtual machine environment 700 and that is software-emulated.
  • the application When the computer does not have a virtual machine environment, that is, when the application wants to input / output to the hardware 900 in a combination of the application, the OS, and the hardware 900, the application requests the OS to input / output.
  • the OS processes input / output requests issued by applications, and performs input / output to / from a disk, network, and other peripheral devices.
  • a method generally called DMA is used for the input / output processing.
  • DMA refers to transmitting / receiving data between a predetermined memory area and a peripheral device using dedicated hardware (hereinafter referred to as DMA hardware) without using the CPU 910.
  • DMA hardware dedicated hardware
  • the DMA hardware issues an interrupt signal to the CPU 910.
  • the OS receives the interrupt signal sent to the CPU 910, the OS recognizes that the input / output to the peripheral device is completed and notifies the application of the result.
  • the input / output processing without the virtual machine environment first occurs in the virtual machine 600, and the same processing is also performed in the virtual machine environment 700.
  • an input / output request is issued from the guest OS 620 on the virtual machine to the virtual hardware 630 created by the virtual machine environment 700.
  • the input / output request is sent from the virtual hardware environment to the OS (VMkernel 720) on the physical machine, and input / output processing is performed on the actual physical device.
  • a plurality of virtual machines 600 are executed in one virtual machine environment 700. Therefore, the number of input / output processes executed in the virtual machine environment 700 is increased by the number of virtual machines 600. In other words, assuming that the number of I / O processing requests issued from one virtual machine 600 per second is 10, the virtual machine environment 600 that executes the ten virtual machines 700 has 100 virtual machines per second. I / O requests must be processed.
  • a method in which the virtual machine environment 700 collectively processes received input / output requests is effective. That is, the virtual machine environment 700 does not execute input / output requests issued from the virtual machine 600 each time, but executes processing when a fixed number of input / output requests are issued from the virtual machine 600. As a specific example, when the number of input / output processing requests issued from one virtual machine 600 per second is 10, the virtual machine environment 700 executes 10 input / output requests at a time. By performing such processing, the number of times the OS (VMkernel 720) on the virtual machine environment 700 commands the peripheral device and the virtual machine environment from the peripheral device, compared with the case where the input / output requests are executed one by one.
  • the OS VMkernel 720
  • interrupt processing combining sending a certain number of interrupt signals raised from peripheral devices to the OS on the virtual machine is called interrupt processing combining.
  • FIG. 13 shows a flowchart of the interrupt processing synthesis system.
  • input / output is completed (S101).
  • S102 input / output is completed
  • S103 the combined number of interrupt processes is recalculated
  • a target value for the number of input / output processes (IOPS) per unit time is set. If the IOPS is below the target value, the number of interrupt processing composites is reduced. On the other hand, if the IOPS exceeds the target value, the combined number of interrupt processes is increased.
  • IOPS number of input / output processes
  • S104 it is confirmed whether the number of I / O requests being executed is within a threshold (S104). If the number of I / O requests is within the threshold (YES in S104), it is determined whether to distribute the request according to the number of interrupt requests combined (S105). If the number of I / O requests is not within the threshold (NO in S104), an interrupt request is immediately delivered (S107). Next, when there are more interrupt signals than the combined number of interrupts (YES in S106), an interrupt request is distributed (S107). On the other hand, if there is no interrupt signal equal to or greater than the combined number of interrupts (NO in S106), the process ends. Finally, the delivery time is stored (S108). The delivery time is used when determining the next composite number.
  • Patent Document 1 uses CIF (Commands in Flight) and IOPS (IO Per Second) as judgment criteria for the number of interrupt processing composites. This is because cannot be excluded.
  • CIF represents the number of input / output processes currently being executed.
  • IOPS refers to the number of input / output processes per second. Both CIF and IOPS are indicators for the total number of inputs and outputs. That is, the combined number of interrupt processes cannot be changed based on the individual input / output process status. For example, the case where the virtual machine A that executes the communication process A and the virtual machine B that executes the communication process B are executed in the same virtual machine environment will be described.
  • An example of an object of the present invention is to provide a stabilization system, a stabilization method, a virtual machine environment, and a program that solve the above-described problems.
  • the stabilization system includes a virtual machine environment that virtually generates a virtual machine.
  • the virtual machine environment is generated by receiving a first communication request over a network, sending the first communication request to the virtual machine, and processing the first communication request by the virtual machine.
  • a transmission / reception unit that transmits the second communication request via the network, a reception time at which the transmission / reception unit receives the first communication request, and a transmission time at which the transmission / reception unit transmits the second communication request.
  • a calculation unit that calculates a communication processing time based on the communication processing time, a determination unit that determines a combination number of communication requests based on the communication processing time, and a combination unit that combines the communication requests of the combination number.
  • the transmission / reception unit collectively transmits the communication requests of the combined number combined by the combining unit to the virtual machine.
  • the stabilization method according to the second embodiment of the present invention is used for a virtual machine environment in which a virtual machine is virtually generated.
  • the stabilization method is generated by receiving a first communication request via a network, transmitting the first communication request to the virtual machine, and processing the first communication request by the virtual machine.
  • the second communication request is transmitted via the network, and the reception time when the virtual machine environment receives the first communication request and the transmission time when the virtual machine environment transmits the second communication request.
  • Communication processing time is calculated based on the communication processing time, a composite number of communication requests is determined based on the communication processing time, the composite communication requests are combined, and the combined communication requests are combined into the virtual request. Including sending to the machine.
  • the virtual machine environment virtually generates a virtual machine.
  • the virtual machine environment is generated by receiving a first communication request via a network, sending the first communication request to the virtual machine, and processing the first communication request by the virtual machine.
  • a transmission / reception unit that transmits the second communication request via the network, a reception time at which the transmission / reception unit receives the first communication request, and a transmission time at which the transmission / reception unit transmits the second communication request.
  • a calculation unit that calculates a communication processing time based on the communication processing time, a determination unit that determines a combination number of communication requests based on the communication processing time, and a combination unit that combines the communication requests of the combination number.
  • the transmission / reception unit collectively transmits the communication requests of the combined number combined by the combining unit to the virtual machine.
  • a program receives a first communication request via a network and transmits the first communication request to the virtual machine to a computer that virtually generates a virtual machine.
  • a second communication request generated by the virtual machine processing the first communication request via the network, and a reception time at which the virtual machine environment receives the first communication request;
  • the virtual machine environment calculates a communication processing time based on the transmission time when the second communication request is transmitted, determines a composite number of communication requests based on the communication processing time, and determines the communication request of the composite number. Combining and transmitting the combined number of the combined communication requests to the virtual machine.
  • FIG. 1 It is a block diagram which shows the structure of the stabilization system concerning the 1st Embodiment of this invention.
  • the data structure which shows the content of the communication processing time storage part in the 1st Embodiment of this invention is shown.
  • combination number storage part in the 1st Embodiment of this invention is shown.
  • the stabilization system includes a plurality of virtual machines 100 and a virtual machine environment 200.
  • the virtual machine 100 includes a communication service (application) 110, a guest OS 120, and a communication request receiving unit 130.
  • the transmission / reception unit 130 may be simply referred to as the transmission / reception unit 130.
  • the virtual machine environment 200 includes a communication request transmission / reception unit 210, a network card driver 220, a communication processing time monitoring unit 250, a communication request composition unit 230, a communication request composition number storage unit 280, a communication request composition number determination unit 240, and a communication processing time calculation.
  • Unit 260 and communication processing time storage unit 270 are examples of communication processing time storage unit 270.
  • the communication request transmission / reception unit 210 may be simply referred to as a transmission / reception unit 210.
  • the network card driver 220 may be simply referred to as a driver 220.
  • the communication processing time monitoring unit 250 may be simply referred to as the monitoring unit 250.
  • the communication request combining unit 230 may be simply referred to as a combining unit 230.
  • the communication request composite number determination unit 240 may be simply referred to as a determination unit 240.
  • the communication processing time calculation unit 260 may be simply referred to as the calculation unit 260.
  • the communication processing time storage unit 270 may be simply referred to as a time storage unit 270.
  • the communication request composite number storage unit 280 may be simply referred to as a composite number storage unit 280.
  • the virtual machine 100 is software that emulates a physical machine on the virtual machine environment 200.
  • the communication service 110 is an application that processes communication requests.
  • the communication service 110 processes a communication request sent from the network N and returns a processing result to the transmission source.
  • the communication service 110 is not particularly limited as long as it is an application that processes a communication request sent from the network N.
  • Specific examples of the communication service 110 may include an Internet server such as TELNET or FTP (File Transfer Protocol), and a call service such as SIP (Session Initiation Protocol).
  • the guest OS 120 is an OS executed on the virtual machine 100.
  • the transmission / reception unit 130 transfers the communication request received from the network N to the communication service 110.
  • the transmission / reception unit 130 returns the communication request processed by the communication service 110 to the communication request transmission source on the network N.
  • the transmission / reception unit 210 of the virtual machine environment 200 has a function of distributing a communication request received from the network N to each communication service 110 of the virtual machine 100.
  • the virtual machine environment 200 is software for executing a plurality of virtual machines 100.
  • the driver 220 is software for accessing a network card as a physical device.
  • the driver 220 transfers the communication request arriving at the network card via the network N to the transmission / reception unit 210.
  • the driver 220 returns the communication request processed by the communication service 110 to the transmission source of the communication request on the network N using the network card.
  • the monitoring unit 250 monitors the processing time of the communication request.
  • the processing time here means that a communication request is processed on the virtual machine 100 running on the virtual machine environment 200 after the communication request arrives from outside the virtual machine environment 200, and the processed communication request is sent to the request transmission source. To the time until the virtual machine environment 200 transmits.
  • the communication request identifier 272 is used to indicate that the received communication request and the communication request to be transmitted are a pair.
  • the communication request to be transmitted is a processing result obtained by processing the received communication request by the communication service 110.
  • the communication request identifier 272 is stored in the time storage unit 270. A method for creating the identifier 272 will be described later.
  • the time storage unit 270 has an area for storing data related to the communication processing time.
  • the time storage unit 270 stores the monitoring target application 271, the communication request identifier 272, the communication request reception time 273, the communication request transmission time 274, and the communication processing time 275.
  • the monitoring target application 271 indicates the communication service 110 that is a monitoring target in the embodiment of the present invention.
  • the communication request identifier 272 is a value indicating that the received communication request and the communication request to be transmitted are a pair. A specific example of a method for creating the communication request identifier 272 using TCP / IP will be described with reference to FIG.
  • the communication request identifier 272 in this example is calculated using the source IP address and destination IP address of the IP header, the source port number of the TCP header, and the destination port number.
  • the IP address is broken down into four numbers. A total value of the four numbers of the IP address, the source port number, and the destination port number is set in the communication request identifier 272.
  • a specific calculation example is shown below. Source IP address: 192.168.0.1. Destination IP address: 192.168.0.2.
  • the communication request reception time 273 indicates the time when the communication request arrives at the virtual machine environment 200 (transmission / reception unit 210).
  • the communication request transmission time 274 indicates the time when the communication request is transmitted from the virtual machine environment 200 (transmission / reception unit 210) to the communication request transmission source.
  • the communication processing time 275 indicates a time calculated as the difference between the communication request reception time 273 and the transmission time 274.
  • the time storage unit 270 stores a reception time 273 and a transmission time 274 having a common identifier 272 as a pair.
  • the calculation unit 260 calculates the communication request processing time from the communication request reception time 273 and the communication request transmission time 274. That is, the calculation unit 260 calculates the communication processing time 275 from the difference between the communication request reception time 273 and the communication request transmission time 274 for each communication request.
  • the composite number storage unit 280 has an area for storing data related to communication request composition.
  • the composite number storage unit 280 stores a composite number change threshold (threshold) 281, a communication processing time deterioration rate (deterioration rate) 282, a communication processing time target value (target value) 283, and a communication request composite number (composite number) 284.
  • the threshold value 281 is a threshold value used to determine a change in the number of compositing communication requests. When the deterioration rate 282 exceeds the threshold value 281, the composite number 284 of the composite number storage unit 280 is changed.
  • the deterioration rate 282 indicates the ratio of communication requests in which the communication processing time 275 exceeds the target value 283 with respect to the entire communication requests processed by the monitoring target application 271.
  • the monitoring target application 271 is “Application # 1”
  • the communication processing time 275 is “1.123” and “1.452”.
  • the target value 283 is “0.100”. Therefore, in this example, the communication processing time 275 exceeds the target value 283. That is, the two communication requests exceed the target value 283.
  • the deterioration rate 282 is about 12% ( ⁇ 2/17 * 100).
  • the determination unit 240 determines the composite number 284 of communication requests. Specifically, the determination unit 240 determines the composite number 284 based on the deterioration rate 282. If the determination unit 240 determines that the deterioration rate 282 is greater than the threshold value 281, the determination unit 240 decreases the number of synthesis 284. For example, the determination unit 240 may reduce the composite number 284 by one each time the deterioration rate 282 exceeds the threshold value 281, but is not limited thereto. The number to reduce the composite number 284 may be freely determined.
  • the synthesizing unit 230 synthesizes the communication request.
  • Combining communication requests refers to notifying the arrival of communication requests after a certain number of requests have arrived when the communication request arrives.
  • the composite number of communication requests is determined based on the composite number 284 stored in the composite number storage unit 280 shown in FIG. In the example of FIG. 3, the number of synthesis 284 is 30. Therefore, the transmission / reception unit 210 notifies the virtual machine 100 that a communication request has arrived after 30 requests have arrived.
  • the processing time of the communication request process is monitored, and the composite number of communication request notifications based on the processing time monitoring result is changed. As a result, the communication request processing time can be stabilized.
  • FIG. 4 shows the overall operation of the present embodiment.
  • the monitoring unit 250 monitors the communication request reception time 273 and the communication request transmission time 274.
  • the calculation unit 260 measures the communication processing time 275 (S1).
  • the determination unit 240 extracts a communication request in which the communication processing time 275 exceeds the target value 283, and calculates the deterioration rate 282 (S2).
  • the determination unit 240 determines whether the deterioration rate 282 exceeds the threshold value 281 (S3). If the deterioration rate 282 exceeds the threshold value 281 (YES in S4), the determination unit 240 changes the composite number 284 (S5). If the deterioration rate 282 does not exceed the threshold 281 (NO in S4), the determination unit 240 ends the process without changing the composite number 284.
  • FIG. 6 shows operations of the monitoring unit 250 and the calculation unit 260 when a communication request arrives.
  • the monitoring unit 250 extracts a TCP / IP header from the received packet (communication request) (S6).
  • the calculator 260 calculates the communication request identifier 272 based on the TCP / IP header (S7).
  • the calculation method of the identifier 272 is as described above.
  • the monitoring unit 250 and the calculation unit 260 store the communication request identifier 272 and the packet reception time (communication request reception time 273) in the time storage unit 270 (S8).
  • FIG. 7 shows operations of the monitoring unit 250 and the calculation unit 260 when a communication request is returned.
  • the monitoring unit 250 extracts the TCP / IP header from the packet to be transmitted (S9).
  • the calculator 260 calculates the communication request identifier 272 based on the TCP / IP header (S10).
  • the calculation unit 260 checks whether the identifier 270 that matches the calculated identifier 272 is stored in the time storage unit 270 (S11). If there is a matching identifier 270 (YES in S11-1), calculation unit 260 stores the transmission time (communication request transmission time 274) in the entry of identifier 272 in time storage unit 270 (S12). Furthermore, the calculation unit 260 calculates the communication processing time 275 and stores the communication processing time 275 in the entry (S13). If there is no matching identifier (NO in S11-1), calculation unit 260 ends the process.
  • FIG. 8 shows the operation of the determination unit 240.
  • the determination unit 240 extracts the communication processing time 275 corresponding to the monitoring target application 271 (S14).
  • the determination unit 240 extracts a communication processing time 275 that exceeds the target value 283 from the extracted communication processing time 275.
  • the determination unit 240 calculates the deterioration rate 282 based on the extracted number of communication processing times 275 and the extracted number of communication processing times 275 (S15).
  • the determination unit 240 determines whether the deterioration rate 282 exceeds the threshold value 281 (S16). When deterioration rate 282 exceeds threshold value 281 (YES in S17), determination unit 240 changes composite number 284 (S18).
  • the determination unit 240 When the deterioration rate 282 does not exceed the threshold 281 (NO in S17), the determination unit 240 does not change the composite number 284 (does not execute the process of S18). Finally, the determination unit 240 deletes the entry of the monitoring target application 271 from the time storage unit 270 (S19).
  • the communication request processing time in the communication application to be monitored is monitored, and the composite number 284 is changed according to the deterioration of the processing time. For this reason, the communication request processing time in a specific application can be stabilized.
  • the stabilization system includes a communication request composition unit 140 in the virtual machine 100 in addition to the configuration of the first embodiment.
  • the communication request combining unit 140 may be simply referred to as a combining unit 140.
  • the function of the combining unit 140 is the same as that of the combining unit 230.
  • the synthesis unit 140 is also arranged in the virtual machine 100. For this reason, when the virtual machine 100 transfers a communication request to the virtual machine environment 200, the number of transfers can be reduced. Since the number of transfers is reduced, the overhead of transfer processing can be reduced.
  • the virtual machine 300 includes an Asterisk 310 as a communication service, Linux (registered trademark) 320 as a guest OS, and a virtual 330 as a communication request request transmission / reception unit.
  • a KVM (Kernel-based Virtual Machine) 400 is used as a virtual machine environment.
  • the KVM 400 includes a vhost_net 410 as a communication request request transmission / reception unit, and an E1000 Driver 420 as a network card driver.
  • the Asterisk 310 is a SIP server for processing a voice call used in a mobile phone or the like.
  • the Virtual 330 is a Linux kernel driver for transmitting / receiving a communication request to / from the vhost_net 410.
  • Vhost_net 410 is a Linux kernel driver.
  • the Vhost_net 410 distributes the communication request that has arrived at the KVM 400 to each virtual machine 300.
  • the Vhost_net 410 transmits a communication request from each virtual machine 300 to another computer on the network N.
  • the E1000 Driver 420 receives the communication request via the network N and transfers the communication request to the vhost_net 410.
  • the Vhost_net 410 determines which of the virtual machines 300 operating on the KVM 400 is the destination of the transferred communication request.
  • the Vhost_net 410 transfers the communication request to the destination virtual machine 300. A method for determining the destination will be described.
  • the Vhost_net 410 acquires the destination IP address from the TCP / IP header of the communication request, and determines that the virtual machine 300 to which the same IP address as the acquired destination IP address is assigned is the destination.
  • the monitoring unit 250 monitors communication requests that arrive on the vhost_net 410.
  • the calculator 260 calculates the communication processing time 275. With reference to FIG.
  • the communication request identifier 272 is calculated using the transmission source IP address and Call-ID.
  • the calculation unit 260 acquires the transmission source IP address from the IP header.
  • the calculation unit 260 acquires the Call-ID from the SIP header.
  • the Call-ID is “123456@sipperserver.com”.
  • a numerical value on the left side of the call mark from the Call-ID is used to calculate the communication request identifier 272.
  • a specific calculation example of the communication request identifier 272 is shown below.
  • Call-ID 123456
  • the virtual machine environment 200 described above may have a computer system inside.
  • the operation of each processing unit described above is stored in a computer-readable recording medium in the form of a program, and the above processing may be performed by the computer reading and executing the program.
  • the computer-readable recording medium may include a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, and a semiconductor memory.
  • the computer program may be distributed to the computer via a communication line, and the computer that has received the distribution may execute the program.
  • the program may be for realizing a part of the functions described above.
  • the program may be a so-called difference file (difference program) that can realize the functions described above in combination with a program already recorded in the computer system.
  • the embodiment of the present invention can be applied to applications such as stabilizing the communication processing of a specific telephone line (Call-ID) among services of a telephone exchange server (SIP server) constituting a mobile phone service.
  • the embodiment of the present invention can also be applied to uses such as stabilization of communication quality of voice call software and other network services.
  • Virtual machine 110 Communication service 120 Guest OS 130 Communication request transmission / reception unit (transmission / reception unit) 200 Virtual machine environment 210 Communication request transmission / reception unit (transmission / reception unit) 220 Network Card Driver (Driver) 230 Communication request composition unit (composition unit) 240 Communication Request Composite Number Determining Unit (Determining Unit) 250 Communication processing time monitoring unit (monitoring unit) 260 Communication processing time calculator (calculator) 270 Communication processing time storage unit (time storage unit) 271 Monitored Application 272 Communication Request Identifier 273 Communication Request Reception Time 274 Communication Request Transmission Time 275 Communication Processing Time 280 Communication Request Composite Number Storage Unit (Composite Number Storage Unit) 281 Composite number change threshold (threshold) 282 Communication processing time deterioration rate (deterioration rate) 283 Communication processing time target value (target value) 284 Communication request composition number (composition number)

Abstract

A virtual machine environment that virtually generates virtual machines. The virtual machine environment has a transmission/reception unit, a calculation unit, and a determination unit. The transmission/reception unit receives a first communication request via a network, sends the first communication request to a virtual machine, and sends, via the network, a second communication request generated by the virtual machine processing the first communication request. The calculation unit calculates the communication processing time on the basis of the time that the transmission/reception unit received the first communication request and the time that the transmission/reception unit sent the second communication request. The determination unit determines the number of communication requests to be synthesized, on the basis of the communication processing time. A synthesis unit synthesizes the number of communication requests to be synthesized. The transmission/reception unit sends, as a batch, the number of synthesized communications requests synthesized by the synthesis unit, to the virtual machine.

Description

安定化システム、安定化方法、仮想マシン環境及びプログラムStabilization system, stabilization method, virtual machine environment and program
 本発明は、リクエスト処理時間を安定化するためのシステム、リクエスト処理時間を安定化するための方法、仮想マシン環境及びプログラムに関する。 The present invention relates to a system for stabilizing request processing time, a method for stabilizing request processing time, a virtual machine environment, and a program.
 特許文献1は、仮想マシンにおける割り込み処理合成システムの一例を開示している。図12に示すように、割り込み処理合成システムは、仮想マシン600、仮想マシン環境700、仮想ディスク800、ハードウェア900、およびディスク940を有する。仮想マシン600は、アプリケーションソフト610、ゲストOS(Operating System)620、および仮想ハードウェア630を有する。仮想マシン環境700は、VMM(Virtual Machine Monitor)710、およびVMkernel720を有する。ハードウェア900は、CPU910、Storage Adapter920、およびメモリ930を有する。仮想ディスク800は仮想マシン環境700で作成されるソフトウェアエミュレーションされたディスク装置を指す。 Patent Document 1 discloses an example of an interrupt processing synthesis system in a virtual machine. As illustrated in FIG. 12, the interrupt processing synthesis system includes a virtual machine 600, a virtual machine environment 700, a virtual disk 800, hardware 900, and a disk 940. The virtual machine 600 includes application software 610, a guest OS (Operating System) 620, and virtual hardware 630. The virtual machine environment 700 includes a VMM (Virtual Machine Monitor) 710 and a VMkernel 720. The hardware 900 includes a CPU 910, a storage adapter 920, and a memory 930. A virtual disk 800 refers to a disk device that is created in the virtual machine environment 700 and that is software-emulated.
 コンピュータが仮想マシン環境を持たない場合、つまり、アプリケーションと、OS、ハードウェア900との組み合わせにおいて、アプリケーションがハードウェア900に対して入出力を行いたい場合、アプリケーションがOSに入出力を要求する。OSはアプリケーションから発行された入出力要求を処理し、ディスク、ネットワークその他の周辺装置に対して入出力を行う。入出力処理のために、一般的にDMA(Direct Memory Access)と呼ばれる方法を使用する。DMAは、あらかじめ決められたメモリ領域と周辺装置との間でCPU910を使わず専用ハードウェア(以下、DMAハードウェアと呼ぶ)を使ってデータを送受信することを指す。OSは周辺装置への入出力命令をDMAハードウェアに通知する。周辺装置への入出力処理が完了するとDMAハードウェアは、CPU910に割り込み信号を発行する。OSはCPU910に送られてきた割り込み信号を受け取ると、その周辺装置への入出力が完了したことを認識して結果をアプリケーションに通知する。 When the computer does not have a virtual machine environment, that is, when the application wants to input / output to the hardware 900 in a combination of the application, the OS, and the hardware 900, the application requests the OS to input / output. The OS processes input / output requests issued by applications, and performs input / output to / from a disk, network, and other peripheral devices. For the input / output processing, a method generally called DMA (Direct Memory Access) is used. DMA refers to transmitting / receiving data between a predetermined memory area and a peripheral device using dedicated hardware (hereinafter referred to as DMA hardware) without using the CPU 910. The OS notifies the DMA hardware of an input / output command to the peripheral device. When the input / output processing to the peripheral device is completed, the DMA hardware issues an interrupt signal to the CPU 910. When the OS receives the interrupt signal sent to the CPU 910, the OS recognizes that the input / output to the peripheral device is completed and notifies the application of the result.
 コンピュータが仮想マシン環境700を持つ場合、上記仮想マシン環境を持たない場合の入出力処理が、まず仮想マシン600内で発生し、そして同じ処理が仮想マシン環境700でも行われる。具体的には、仮想マシン環境700が作り出す仮想ハードウェア630へ仮想マシン上のゲストOS620から入出力要求が発行される。そして、この入出力要求は仮想ハードウェア環境から物理マシン上のOS(VMkernel720)に送られて実際の物理装置に対して入出力処理が行われる。 When the computer has the virtual machine environment 700, the input / output processing without the virtual machine environment first occurs in the virtual machine 600, and the same processing is also performed in the virtual machine environment 700. Specifically, an input / output request is issued from the guest OS 620 on the virtual machine to the virtual hardware 630 created by the virtual machine environment 700. The input / output request is sent from the virtual hardware environment to the OS (VMkernel 720) on the physical machine, and input / output processing is performed on the actual physical device.
 複数の仮想マシン600が、一つの仮想マシン環境700で実行される。よって、仮想マシン環境700で実行される入出力処理は、仮想マシン600の数だけ増える。つまり、1秒間に一台の仮想マシン600から発行される入出力処理要求の数が10個だと仮定すると、10台の仮想マシン700を実行する仮想マシン環境600は、1秒間に100個の入出力要求を処理しなければならない。 A plurality of virtual machines 600 are executed in one virtual machine environment 700. Therefore, the number of input / output processes executed in the virtual machine environment 700 is increased by the number of virtual machines 600. In other words, assuming that the number of I / O processing requests issued from one virtual machine 600 per second is 10, the virtual machine environment 600 that executes the ten virtual machines 700 has 100 virtual machines per second. I / O requests must be processed.
 入出力要求を削減する方法としては、仮想マシン環境700が、受け取った入出力要求をまとめて処理する方法が有効である。すなわち、仮想マシン環境700は、仮想マシン600から発行される入出力要求をそのつど実行するのではなく、決まった数の入出力要求が仮想マシン600から発行された時点で処理を実行する。具体例として、1秒間に一台の仮想マシン600から発行される入出力処理要求の数が10個の場合、仮想マシン環境700が、10個の入出力要求を一度に実行する。このような処理を行うことにより、入出力要求を一つずつ実行する場合と比較して、仮想マシン環境700上のOS(VMkernel720)が周辺装置に対して命令する回数や周辺装置から仮想マシン環境700上のOS(VMkernel720)に割り込み信号が上がってくる回数を1/10に減らすことができる。入出力要求をまとめて処理する上記手法のうち、周辺装置から上げられる割り込み信号を一定数まとめて仮想マシン上のOSへ通知することを割り込み処理の合成(Interrupt Coalescing)と呼ぶ。 As a method for reducing input / output requests, a method in which the virtual machine environment 700 collectively processes received input / output requests is effective. That is, the virtual machine environment 700 does not execute input / output requests issued from the virtual machine 600 each time, but executes processing when a fixed number of input / output requests are issued from the virtual machine 600. As a specific example, when the number of input / output processing requests issued from one virtual machine 600 per second is 10, the virtual machine environment 700 executes 10 input / output requests at a time. By performing such processing, the number of times the OS (VMkernel 720) on the virtual machine environment 700 commands the peripheral device and the virtual machine environment from the peripheral device, compared with the case where the input / output requests are executed one by one. It is possible to reduce the number of times that an interrupt signal rises to the OS (VMkernel 720) on 700 to 1/10. Of the above-described methods for processing input / output requests collectively, sending a certain number of interrupt signals raised from peripheral devices to the OS on the virtual machine is called interrupt processing combining.
 特許文献1に開示の構成を有する仮想マシンにおける割り込み処理合成システムはつぎのように動作する。図13は、割り込み処理合成システムのフローチャートを示す。まず入出力が完了する(S101)。次に割り込み処理合成の再計算時刻を経過しているかどうか確認する(S102)。再計算時刻を経過していれば(S102においてYES)、割り込み処理の合成数を再計算する(S103)。単位時間当たりの入出力処理数(IOPS)の目標値が設定されている。IOPSが目標値を下回っていれば、割り込み処理の合成数を減らす。一方、IOPSが目標値を上回っていれば割り込み処理の合成数を増やす。次に、実行中のI/O要求数が閾値以内かどうかを確認する(S104)。I/O要求数が閾値以内であれば(S104においてYES)、割り込み要求の合成数に応じて、要求を配信するか決定する(S105)。I/O要求数が閾値以内でなければ(S104においてNO)直ちに割り込み要求を配信する(S107)。次に、割り込みの合成数以上の割り込み信号がある場合(S106においてYES)、割り込み要求を配信する(S107)。一方、割り込みの合成数以上の割り込み信号が無いなら(S106においてNO)そのまま処理を終了する。最後に配信時刻を記憶する(S108)。配信時刻は、次の合成数を決定する際に使用される。 The interrupt processing synthesis system in a virtual machine having the configuration disclosed in Patent Document 1 operates as follows. FIG. 13 shows a flowchart of the interrupt processing synthesis system. First, input / output is completed (S101). Next, it is confirmed whether or not the recalculation time of the interrupt processing synthesis has elapsed (S102). If the recalculation time has elapsed (YES in S102), the combined number of interrupt processes is recalculated (S103). A target value for the number of input / output processes (IOPS) per unit time is set. If the IOPS is below the target value, the number of interrupt processing composites is reduced. On the other hand, if the IOPS exceeds the target value, the combined number of interrupt processes is increased. Next, it is confirmed whether the number of I / O requests being executed is within a threshold (S104). If the number of I / O requests is within the threshold (YES in S104), it is determined whether to distribute the request according to the number of interrupt requests combined (S105). If the number of I / O requests is not within the threshold (NO in S104), an interrupt request is immediately delivered (S107). Next, when there are more interrupt signals than the combined number of interrupts (YES in S106), an interrupt request is distributed (S107). On the other hand, if there is no interrupt signal equal to or greater than the combined number of interrupts (NO in S106), the process ends. Finally, the delivery time is stored (S108). The delivery time is used when determining the next composite number.
米国特許出願公開第2010/0274940号US Patent Application Publication No. 2010/0274940
 このようなシステムの問題点は、優先すべき入出力処理が遅延してしまうということである。その理由は、特許文献1が割り込み処理合成数の判断基準としてCIF(Commands in Flight)、IOPS(IO Per Second)を使用しているため、割り込み処理を合成する際に、優先すべき入出力処理を除外することができないためである。CIFは、現在実行中の入出力処理数を表す。IOPSは、一秒間当たりの入出力処理回数を指す。CIFおよびIOPSはいずれも入出力の総数にたいしての指標である。つまり、個々の入出力処理状況を判断基準にして割り込み処理の合成数を変更することができない。例えば通信処理Aを実行する仮想マシンAと通信処理Bを実行する仮想マシンBが同じ仮想マシン環境上で実行されている場合について説明する。通信処理Aのレイテンシ(処理を要求してから処理結果が返ってくるまでの時間)を短くするため割り込み処理合成数を0個にしたい一方で、通信処理Bが大量の入出力処理を仮想マシン環境に要求している場合を想定する。この場合、特許文献1によると、通信処理Bによって仮想マシン環境上のIOPSは上昇し、割り込み処理の合成数は上昇する。この結果から、通信処理Aの要求(割り込み処理合成数0)を満たすことはできずレイテンシを下げることができなくなる。 The problem with such a system is that the priority I / O processing is delayed. The reason is that Patent Document 1 uses CIF (Commands in Flight) and IOPS (IO Per Second) as judgment criteria for the number of interrupt processing composites. This is because cannot be excluded. CIF represents the number of input / output processes currently being executed. IOPS refers to the number of input / output processes per second. Both CIF and IOPS are indicators for the total number of inputs and outputs. That is, the combined number of interrupt processes cannot be changed based on the individual input / output process status. For example, the case where the virtual machine A that executes the communication process A and the virtual machine B that executes the communication process B are executed in the same virtual machine environment will be described. While we want to reduce the number of interrupt processing composites to shorten the latency of communication processing A (the time from when a process is requested until the processing result is returned), communication processing B performs a large amount of input / output processing. Assume that the environment requires. In this case, according to Patent Document 1, the IOPS on the virtual machine environment is increased by the communication process B, and the combined number of interrupt processes is increased. From this result, the request for the communication process A (interrupt processing composite number 0) cannot be satisfied and the latency cannot be lowered.
 本発明の目的の一例は、上述した課題を解決する安定化システム、安定化方法、仮想マシン環境及びプログラムを提供することである。 An example of an object of the present invention is to provide a stabilization system, a stabilization method, a virtual machine environment, and a program that solve the above-described problems.
 本発明の第1の実施態様にかかる安定化システムは、仮想マシンを仮想的に生成する仮想マシン環境を備える。前記仮想マシン環境は、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算する計算部と、前記通信処理時間に基づいて通信リクエストの合成数を決定する決定部と、前記合成数の通信リクエストを合成する合成部とを有する。前記送受信部は、前記合成部によって合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する。 The stabilization system according to the first embodiment of the present invention includes a virtual machine environment that virtually generates a virtual machine. The virtual machine environment is generated by receiving a first communication request over a network, sending the first communication request to the virtual machine, and processing the first communication request by the virtual machine. A transmission / reception unit that transmits the second communication request via the network, a reception time at which the transmission / reception unit receives the first communication request, and a transmission time at which the transmission / reception unit transmits the second communication request. A calculation unit that calculates a communication processing time based on the communication processing time, a determination unit that determines a combination number of communication requests based on the communication processing time, and a combination unit that combines the communication requests of the combination number. The transmission / reception unit collectively transmits the communication requests of the combined number combined by the combining unit to the virtual machine.
 本発明の第2の実施態様にかかる安定化方法は、仮想マシンを仮想的に生成する仮想マシン環境のために用いられる。この安定化方法は、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算し、前記通信処理時間に基づいて通信リクエストの合成数を決定し、前記合成数の通信リクエストを合成し、前記合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信することを含む。 The stabilization method according to the second embodiment of the present invention is used for a virtual machine environment in which a virtual machine is virtually generated. The stabilization method is generated by receiving a first communication request via a network, transmitting the first communication request to the virtual machine, and processing the first communication request by the virtual machine. The second communication request is transmitted via the network, and the reception time when the virtual machine environment receives the first communication request and the transmission time when the virtual machine environment transmits the second communication request. Communication processing time is calculated based on the communication processing time, a composite number of communication requests is determined based on the communication processing time, the composite communication requests are combined, and the combined communication requests are combined into the virtual request. Including sending to the machine.
 本発明の第3の実施態様にかかる仮想マシン環境は、仮想マシンを仮想的に生成する。この仮想マシン環境は、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算する計算部と、前記通信処理時間に基づいて通信リクエストの合成数を決定する決定部と、前記合成数の通信リクエストを合成する合成部とを有する。前記送受信部は、前記合成部によって合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する。 The virtual machine environment according to the third embodiment of the present invention virtually generates a virtual machine. The virtual machine environment is generated by receiving a first communication request via a network, sending the first communication request to the virtual machine, and processing the first communication request by the virtual machine. A transmission / reception unit that transmits the second communication request via the network, a reception time at which the transmission / reception unit receives the first communication request, and a transmission time at which the transmission / reception unit transmits the second communication request. A calculation unit that calculates a communication processing time based on the communication processing time, a determination unit that determines a combination number of communication requests based on the communication processing time, and a combination unit that combines the communication requests of the combination number. The transmission / reception unit collectively transmits the communication requests of the combined number combined by the combining unit to the virtual machine.
 本発明の第4の実施態様にかかるプログラムは、仮想マシンを仮想的に生成するコンピュータに、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算し、前記通信処理時間に基づいて通信リクエストの合成数を決定し、前記合成数の通信リクエストを合成し、前記合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信することを実行させる。 A program according to a fourth embodiment of the present invention receives a first communication request via a network and transmits the first communication request to the virtual machine to a computer that virtually generates a virtual machine. A second communication request generated by the virtual machine processing the first communication request via the network, and a reception time at which the virtual machine environment receives the first communication request; The virtual machine environment calculates a communication processing time based on the transmission time when the second communication request is transmitted, determines a composite number of communication requests based on the communication processing time, and determines the communication request of the composite number. Combining and transmitting the combined number of the combined communication requests to the virtual machine.
 上記の記載は、本発明の実施態様に必要な特徴の全てを列挙したものではない。これらの特徴群のサブコンビネーションもまた、本発明の実施態様となり得る。 The above description does not enumerate all the features necessary for the embodiments of the present invention. Sub-combinations of these feature groups can also be embodiments of the present invention.
 本発明の実施形態によれば、すべての入出力処理のうち、特定の通信リクエスト処理の遅延をなくすことができる。 According to the embodiment of the present invention, it is possible to eliminate the delay of specific communication request processing among all input / output processing.
本発明の第1の実施形態にかかる安定化システムの構成を示すブロック図である。It is a block diagram which shows the structure of the stabilization system concerning the 1st Embodiment of this invention. 本発明の第1の実施形態における通信処理時間格納部の内容を示すデータ構造を示す。The data structure which shows the content of the communication processing time storage part in the 1st Embodiment of this invention is shown. 本発明の第1の実施形態における通信リクエスト合成数格納部の内容を示すデータ構造を示す。The data structure which shows the content of the communication request synthetic | combination number storage part in the 1st Embodiment of this invention is shown. 図1に示す安定化システムの動作全体を示す流れ図である。It is a flowchart which shows the whole operation | movement of the stabilization system shown in FIG. 第1の実施形態におけるTCP/IPによる通信リクエスト識別子作成例を示す図である。It is a figure which shows the example of communication request identifier preparation by TCP / IP in 1st Embodiment. 第1の実施形態における、通信リクエスト受信時の通信処理時間監視部と通信処理時間計算部の動作を表すフローチャートである。It is a flowchart showing operation | movement of the communication processing time monitoring part at the time of communication request reception in 1st Embodiment, and a communication processing time calculation part. 第1の実施形態における、通信リクエスト送信時の通信処理時間監視部と通信処理時間計算部の動作を表すフローチャートである。It is a flowchart showing operation | movement of the communication processing time monitoring part at the time of communication request transmission in 1st Embodiment, and a communication processing time calculation part. 第1の実施形態における、通信リクエスト合成数決定部の動作を表すフローチャートである。It is a flowchart showing operation | movement of the communication request synthetic | combination number determination part in 1st Embodiment. 本発明の第2の実施形態にかかる安定化システムの構成を示すブロック図である。It is a block diagram which shows the structure of the stabilization system concerning the 2nd Embodiment of this invention. 第1の実施形態の具体例を示すブロック図である。It is a block diagram which shows the specific example of 1st Embodiment. 図10に示す具体例におけるSIP/IPによる通信リクエスト識別子作成例である。It is an example of communication request identifier creation by SIP / IP in the specific example shown in FIG. 関連技術を実施するための形態の構成を示すブロック図である。It is a block diagram which shows the structure of the form for implementing related technology. 関連技術を実施するための動作を表すフローチャートである。It is a flowchart showing the operation | movement for implementing related technology.
 以下、本発明の実施形態を説明する。以下の実施形態は請求の範囲にかかる発明を限定しない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, embodiments of the present invention will be described. The following embodiments do not limit the invention according to the claims. In addition, not all the combinations of features described in the embodiments are essential for the solving means of the invention.
 図1に示すように、本発明の第1の実施の形態にかかる安定化システムは、複数の仮想マシン100および仮想マシン環境200を有する。
 仮想マシン100は、通信サービス(アプリケーション)110、ゲストOS120、および通信リクエスト受信部130を有する。送受信部130は、単に送受信部130と称する場合がある。
 仮想マシン環境200は、通信リクエスト送受信部210、ネットワークカードドライバ220、通信処理時間監視部250、通信リクエスト合成部230、通信リクエスト合成数格納部280、通信リクエスト合成数決定部240、通信処理時間計算部260、および通信処理時間格納部270を有する。通信リクエスト送受信部210は、単に送受信部210と称する場合がある。ネットワークカードドライバ220は、単にドライバ220と称する場合がある。通信処理時間監視部250は、単に監視部250と称する場合がある。通信リクエスト合成部230は、単に合成部230と称する場合がある。通信リクエスト合成数決定部240は、単に決定部240と称する場合がある。通信処理時間計算部260は、単に計算部260と称する場合がある。通信処理時間格納部270は、単に時間格納部270と称する場合がある。通信リクエスト合成数格納部280は、単に合成数格納部280と称する場合がある。
As shown in FIG. 1, the stabilization system according to the first exemplary embodiment of the present invention includes a plurality of virtual machines 100 and a virtual machine environment 200.
The virtual machine 100 includes a communication service (application) 110, a guest OS 120, and a communication request receiving unit 130. The transmission / reception unit 130 may be simply referred to as the transmission / reception unit 130.
The virtual machine environment 200 includes a communication request transmission / reception unit 210, a network card driver 220, a communication processing time monitoring unit 250, a communication request composition unit 230, a communication request composition number storage unit 280, a communication request composition number determination unit 240, and a communication processing time calculation. Unit 260 and communication processing time storage unit 270. The communication request transmission / reception unit 210 may be simply referred to as a transmission / reception unit 210. The network card driver 220 may be simply referred to as a driver 220. The communication processing time monitoring unit 250 may be simply referred to as the monitoring unit 250. The communication request combining unit 230 may be simply referred to as a combining unit 230. The communication request composite number determination unit 240 may be simply referred to as a determination unit 240. The communication processing time calculation unit 260 may be simply referred to as the calculation unit 260. The communication processing time storage unit 270 may be simply referred to as a time storage unit 270. The communication request composite number storage unit 280 may be simply referred to as a composite number storage unit 280.
 仮想マシン100は、仮想マシン環境200上で物理マシンをエミュレーションするソフトウェアである。 The virtual machine 100 is software that emulates a physical machine on the virtual machine environment 200.
 通信サービス110は、通信リクエストを処理するアプリケーションである。通信サービス110は、ネットワークNから送られてくる通信リクエストを処理し、送信元に対して処理結果を返す。通信サービス110は、ネットワークNから送られてくる通信リクエストを処理するようなアプリケーションであれば特に限定されない。通信サービス110の具体例は、TELNETやFTP(File Transfer Protocol)のようなインターネットサーバや、SIP(Session Initiation Protocol)などの通話サービスを含んでもよい。 The communication service 110 is an application that processes communication requests. The communication service 110 processes a communication request sent from the network N and returns a processing result to the transmission source. The communication service 110 is not particularly limited as long as it is an application that processes a communication request sent from the network N. Specific examples of the communication service 110 may include an Internet server such as TELNET or FTP (File Transfer Protocol), and a call service such as SIP (Session Initiation Protocol).
 ゲストOS120は、仮想マシン100で実行されるOSである。 The guest OS 120 is an OS executed on the virtual machine 100.
 送受信部130は、ネットワークNから受信した通信リクエストを通信サービス110に転送する。送受信部130は、通信サービス110で処理された通信リクエストをネットワークN上の通信リクエスト送信元に返送する。
 仮想マシン環境200の送受信部210は、ネットワークNから受信した通信リクエストを仮想マシン100の各通信サービス110に振り分ける機能を持つ。
The transmission / reception unit 130 transfers the communication request received from the network N to the communication service 110. The transmission / reception unit 130 returns the communication request processed by the communication service 110 to the communication request transmission source on the network N.
The transmission / reception unit 210 of the virtual machine environment 200 has a function of distributing a communication request received from the network N to each communication service 110 of the virtual machine 100.
 仮想マシン環境200は、複数の仮想マシン100を実行するためのソフトウェアである。 The virtual machine environment 200 is software for executing a plurality of virtual machines 100.
 ドライバ220は、物理装置としてのネットワークカードにアクセスするためのソフトウェアである。ドライバ220は、ネットワークNを介してネットワークカードに到着した通信リクエストを送受信部210に転送する。ドライバ220は、ネットワークカードを使って、通信サービス110で処理された通信リクエストをネットワークN上の通信リクエストの送信元に返送する。 The driver 220 is software for accessing a network card as a physical device. The driver 220 transfers the communication request arriving at the network card via the network N to the transmission / reception unit 210. The driver 220 returns the communication request processed by the communication service 110 to the transmission source of the communication request on the network N using the network card.
 監視部250は、通信リクエストの処理時間を監視する。ここでの処理時間とは、通信リクエストが仮想マシン環境200の外部から到着してから、仮想マシン環境200上で実行されている仮想マシン100上で処理され、処理された通信リクエストをリクエスト送信元に対して仮想マシン環境200が送信するまでの時間を指す。受信した通信リクエストとこれから送信する通信リクエストが対であることあることを示すために通信リクエスト識別子272を用いる。これから送信する通信リクエストとは、受信した通信リクエストが通信サービス110で処理された処理結果である。通信リクエスト識別子272は時間格納部270に格納されている。識別子272の作成方法は後述する。 The monitoring unit 250 monitors the processing time of the communication request. The processing time here means that a communication request is processed on the virtual machine 100 running on the virtual machine environment 200 after the communication request arrives from outside the virtual machine environment 200, and the processed communication request is sent to the request transmission source. To the time until the virtual machine environment 200 transmits. The communication request identifier 272 is used to indicate that the received communication request and the communication request to be transmitted are a pair. The communication request to be transmitted is a processing result obtained by processing the received communication request by the communication service 110. The communication request identifier 272 is stored in the time storage unit 270. A method for creating the identifier 272 will be described later.
 図2に示すように、時間格納部270は、通信処理時間に関連するデータを格納する領域を有する。時間格納部270は、監視対象アプリケーション271、通信リクエスト識別子272、通信リクエスト受信時刻273、通信リクエスト送信時刻274、および通信処理時間275を格納する。監視対象アプリケーション271とは、本発明の実施形態において監視対象となっている通信サービス110を指す。通信リクエスト識別子272は、受信した通信リクエストとこれから送信する通信リクエストが対であることを示す値である。
 図5を参照して、TCP/IPを使った通信リクエスト識別子272の作成方法の具体例を説明する。本例における通信リクエスト識別子272は、IPヘッダの送信元IPアドレスと送信先IPアドレス、TCPヘッダの発信元ポート番号、宛先ポート番号を用いて算出される。IPアドレスは4つの数字に分解される。IPアドレスの4つの数字と、発信元ポート番号と、あて先ポート番号との合計値が通信リクエスト識別子272に設定される。
 以下に具体的な演算例を示す。
 送信元IPアドレス:192.168.0.1.
 送信先IPアドレス:192.168.0.2.
 発信元ポート番号:12345
 宛先ポート番号:23
 通信リクエスト識別子=送信元IPアドレス+送信先IPアドレス
            +発信元ポート番号+宛先ポート番号
 =192+168+0+1+192+168+0+2+12345+23
 =13091
 通信リクエスト識別子272は、通信リクエストを一意に識別できればどのような指標を用いられても良い。通信リクエスト受信時刻273は、通信リクエストが仮想マシン環境200(送受信部210)に到着した時刻を指す。通信リクエスト送信時刻274は、通信リクエストが仮想マシン環境200(送受信部210)から通信リクエスト送信元への送信された時刻を指す。通信処理時間275は、通信リクエストの受信時刻273と送信時刻274との差分として計算される時間を指す。時間格納部270は、共通の識別子272を有する受信時刻273と送信時刻274とを対にして格納する。
As shown in FIG. 2, the time storage unit 270 has an area for storing data related to the communication processing time. The time storage unit 270 stores the monitoring target application 271, the communication request identifier 272, the communication request reception time 273, the communication request transmission time 274, and the communication processing time 275. The monitoring target application 271 indicates the communication service 110 that is a monitoring target in the embodiment of the present invention. The communication request identifier 272 is a value indicating that the received communication request and the communication request to be transmitted are a pair.
A specific example of a method for creating the communication request identifier 272 using TCP / IP will be described with reference to FIG. The communication request identifier 272 in this example is calculated using the source IP address and destination IP address of the IP header, the source port number of the TCP header, and the destination port number. The IP address is broken down into four numbers. A total value of the four numbers of the IP address, the source port number, and the destination port number is set in the communication request identifier 272.
A specific calculation example is shown below.
Source IP address: 192.168.0.1.
Destination IP address: 192.168.0.2.
Source port number: 12345
Destination port number: 23
Communication request identifier = source IP address + destination IP address + source port number + destination port number = 192 + 168 + 0 + 1 + 192 + 168 + 0 + 2 + 12345 + 23
= 13091
As the communication request identifier 272, any index may be used as long as the communication request can be uniquely identified. The communication request reception time 273 indicates the time when the communication request arrives at the virtual machine environment 200 (transmission / reception unit 210). The communication request transmission time 274 indicates the time when the communication request is transmitted from the virtual machine environment 200 (transmission / reception unit 210) to the communication request transmission source. The communication processing time 275 indicates a time calculated as the difference between the communication request reception time 273 and the transmission time 274. The time storage unit 270 stores a reception time 273 and a transmission time 274 having a common identifier 272 as a pair.
 計算部260は、通信リクエスト受信時刻273と通信リクエスト送信時刻274とから通信リクエストの処理時間を計算する。すなわち、計算部260は、各通信リクエストに関して、通信リクエスト受信時刻273と通信リクエスト送信時刻274との差分から通信処理時間275を計算する。 The calculation unit 260 calculates the communication request processing time from the communication request reception time 273 and the communication request transmission time 274. That is, the calculation unit 260 calculates the communication processing time 275 from the difference between the communication request reception time 273 and the communication request transmission time 274 for each communication request.
 図3に示すように、合成数格納部280は、通信リクエストの合成に関連するデータを格納する領域を有する。合成数格納部280は、合成数変更閾値(閾値)281、通信処理時間劣化率(劣化率)282、通信処理時間目標値(目標値)283、および通信リクエスト合成数(合成数)284を格納する。閾値281は、通信リクエストの合成数変更を決定するために用いられる閾値である。劣化率282が閾値281を上回った場合、合成数格納部280の合成数284が変更される。劣化率282は、監視対象アプリケーション271が処理する通信リクエスト全体に対する、通信処理時間275が目標値283を超える通信リクエストの割合を指す。図2に示す例においては、監視対象アプリケーション271が「Application#1」の場合、通信処理時間275は「1.123」と「1.452」である。一方で、図2に示す例においては、目標値283は、「0.100」である。よって、この例の場合、通信処理時間275が目標値283を上回っている。すなわち、2つの通信リクエストが、目標値283を上回っている。Application#1の監視された通信リクエスト数が全体で17である仮定する。この場合、劣化率282は、約12%(≒2/17*100)となる。 As shown in FIG. 3, the composite number storage unit 280 has an area for storing data related to communication request composition. The composite number storage unit 280 stores a composite number change threshold (threshold) 281, a communication processing time deterioration rate (deterioration rate) 282, a communication processing time target value (target value) 283, and a communication request composite number (composite number) 284. To do. The threshold value 281 is a threshold value used to determine a change in the number of compositing communication requests. When the deterioration rate 282 exceeds the threshold value 281, the composite number 284 of the composite number storage unit 280 is changed. The deterioration rate 282 indicates the ratio of communication requests in which the communication processing time 275 exceeds the target value 283 with respect to the entire communication requests processed by the monitoring target application 271. In the example illustrated in FIG. 2, when the monitoring target application 271 is “Application # 1”, the communication processing time 275 is “1.123” and “1.452”. On the other hand, in the example shown in FIG. 2, the target value 283 is “0.100”. Therefore, in this example, the communication processing time 275 exceeds the target value 283. That is, the two communication requests exceed the target value 283. Assume that the total number of communication requests monitored for Application # 1 is 17. In this case, the deterioration rate 282 is about 12% (≈ 2/17 * 100).
 決定部240は、通信リクエストの合成数284を決定する。
 具体的には、決定部240は、合成数284を、劣化率282に基づいて決定する。決定部240は、劣化率282が閾値281を上回っていると判断した場合、合成数284を減らす。例えば、決定部240は、劣化率282が閾値281を上回っている毎に、合成数284を1つだけ減らしてもよいがこれに限られない。合成数284を減らす数は自由に決めてよい。
The determination unit 240 determines the composite number 284 of communication requests.
Specifically, the determination unit 240 determines the composite number 284 based on the deterioration rate 282. If the determination unit 240 determines that the deterioration rate 282 is greater than the threshold value 281, the determination unit 240 decreases the number of synthesis 284. For example, the determination unit 240 may reduce the composite number 284 by one each time the deterioration rate 282 exceeds the threshold value 281, but is not limited thereto. The number to reduce the composite number 284 may be freely determined.
 合成部230は、通信リクエストを合成する。通信リクエストの合成とは、通信リクエスト到着時であれば、通信リクエストの到着通知を一定数のリクエストが到着してから通知することを指している。図3に示す合成数格納部280に格納されている合成数284を基づいて通信リクエストの合成数を決定している。図3の例では、合成数284が30個である。このため、送受信部210は、30個のリクエストが到着してから仮想マシン100に対して通信リクエストが到着したことを通知する。 The synthesizing unit 230 synthesizes the communication request. Combining communication requests refers to notifying the arrival of communication requests after a certain number of requests have arrived when the communication request arrives. The composite number of communication requests is determined based on the composite number 284 stored in the composite number storage unit 280 shown in FIG. In the example of FIG. 3, the number of synthesis 284 is 30. Therefore, the transmission / reception unit 210 notifies the virtual machine 100 that a communication request has arrived after 30 requests have arrived.
 上記のように、本実施形態においては、通信リクエスト処理の処理時間の監視と、処理時間の監視結果に基づく通信リクエスト通知の合成数を変更が行われる。その結果、通信リクエスト処理時間を安定することができる。 As described above, in this embodiment, the processing time of the communication request process is monitored, and the composite number of communication request notifications based on the processing time monitoring result is changed. As a result, the communication request processing time can be stabilized.
 次に、図4、図6、図7、図8のフローチャートを参照して本実施の形態の動作について詳細に説明する。 Next, the operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS. 4, 6, 7, and 8.
 図4は本実施の形態の全体の動作を表す。監視部250は、通信リクエスト受信時刻273と通信リクエスト送信時刻274とを監視する。計算部260は、通信処理時間275を計測する(S1)。決定部240は、通信処理時間275が目標値283を上回る通信リクエストを抽出し、劣化率282を計算する(S2)。決定部240は、劣化率282が閾値281を上回るか判断する(S3)。決定部240は、劣化率282が閾値281を上回れば(S4においてYES)、合成数284を変更する(S5)。決定部240は、劣化率282が閾値281を上回らなければ(S4においてNO)、合成数284を変更せずに処理を終了する。 FIG. 4 shows the overall operation of the present embodiment. The monitoring unit 250 monitors the communication request reception time 273 and the communication request transmission time 274. The calculation unit 260 measures the communication processing time 275 (S1). The determination unit 240 extracts a communication request in which the communication processing time 275 exceeds the target value 283, and calculates the deterioration rate 282 (S2). The determination unit 240 determines whether the deterioration rate 282 exceeds the threshold value 281 (S3). If the deterioration rate 282 exceeds the threshold value 281 (YES in S4), the determination unit 240 changes the composite number 284 (S5). If the deterioration rate 282 does not exceed the threshold 281 (NO in S4), the determination unit 240 ends the process without changing the composite number 284.
 図6は、通信リクエストが到着した際における監視部250および計算部260の動作を表す。監視部250は、受信したパケット(通信リクエスト)からTCP/IPヘッダを取り出す(S6)。計算部260は、TCP/IPヘッダに基づいて通信リクエスト識別子272を算出する(S7)。識別子272の計算方法は上述のとおりである。監視部250および計算部260は、通信リクエスト識別子272とパケット受信時間(通信リクエスト受信時刻273)を時間格納部270へ格納する(S8)。 FIG. 6 shows operations of the monitoring unit 250 and the calculation unit 260 when a communication request arrives. The monitoring unit 250 extracts a TCP / IP header from the received packet (communication request) (S6). The calculator 260 calculates the communication request identifier 272 based on the TCP / IP header (S7). The calculation method of the identifier 272 is as described above. The monitoring unit 250 and the calculation unit 260 store the communication request identifier 272 and the packet reception time (communication request reception time 273) in the time storage unit 270 (S8).
 図7は、通信リクエストを返信する際における監視部250および計算部260の動作を表す。監視部250は、送信するパケットからTCP/IPヘッダを取り出す(S9)。計算部260は、TCP/IPヘッダに基づいて通信リクエスト識別子272を計算する(S10)。計算部260は、算出された識別子272と一致する識別子270が時間格納部270内に格納されているか確認する(S11)。一致する識別子270があれば(S11-1においてYES)、計算部260は、が時間格納部270におけるその識別子272のエントリに送信時刻(通信リクエスト送信時刻274)を格納する(S12)。さらに、計算部260は、通信処理時間275を計算し、通信処理時間275をそのエントリに格納する(S13)。一致する識別子が無ければ(S11-1においてNO)、計算部260は処理を終了する。 FIG. 7 shows operations of the monitoring unit 250 and the calculation unit 260 when a communication request is returned. The monitoring unit 250 extracts the TCP / IP header from the packet to be transmitted (S9). The calculator 260 calculates the communication request identifier 272 based on the TCP / IP header (S10). The calculation unit 260 checks whether the identifier 270 that matches the calculated identifier 272 is stored in the time storage unit 270 (S11). If there is a matching identifier 270 (YES in S11-1), calculation unit 260 stores the transmission time (communication request transmission time 274) in the entry of identifier 272 in time storage unit 270 (S12). Furthermore, the calculation unit 260 calculates the communication processing time 275 and stores the communication processing time 275 in the entry (S13). If there is no matching identifier (NO in S11-1), calculation unit 260 ends the process.
 図8は、決定部240の動作を表す。決定部240は、監視対象アプリケーション271に該当する通信処理時間275を取り出す(S14)。決定部240は、取り出した通信処理時間275から、目標値283を上回る通信処理時間275を抽出する。決定部240は、取り出した通信処理時間275の数と抽出した通信処理時間275の数とに基づいて劣化率282を計算する(S15)。決定部240は、劣化率282が閾値281を上回るかどうか判断する(S16)。劣化率282が閾値281を上回る場合(S17においてYES)、決定部240は合成数284を変更する(S18)。劣化率282が閾値281を上回らない場合(S17においてNO)、決定部240は合成数284を変更しない(S18の処理を実行しない)。最後に、決定部240は時間格納部270から監視対象アプリケーション271のエントリを削除する(S19)。 FIG. 8 shows the operation of the determination unit 240. The determination unit 240 extracts the communication processing time 275 corresponding to the monitoring target application 271 (S14). The determination unit 240 extracts a communication processing time 275 that exceeds the target value 283 from the extracted communication processing time 275. The determination unit 240 calculates the deterioration rate 282 based on the extracted number of communication processing times 275 and the extracted number of communication processing times 275 (S15). The determination unit 240 determines whether the deterioration rate 282 exceeds the threshold value 281 (S16). When deterioration rate 282 exceeds threshold value 281 (YES in S17), determination unit 240 changes composite number 284 (S18). When the deterioration rate 282 does not exceed the threshold 281 (NO in S17), the determination unit 240 does not change the composite number 284 (does not execute the process of S18). Finally, the determination unit 240 deletes the entry of the monitoring target application 271 from the time storage unit 270 (S19).
 次に、本実施の形態の効果について説明する。本実施の形態においては、監視対象となる通信アプリケーションにおける通信リクエスト処理時間を監視し、処理時間の劣化に応じて合成数284を変更する。このため、特定のアプリケーションにおける通信リクエスト処理時間を安定化することができる。 Next, the effect of this embodiment will be described. In the present embodiment, the communication request processing time in the communication application to be monitored is monitored, and the composite number 284 is changed according to the deterioration of the processing time. For this reason, the communication request processing time in a specific application can be stabilized.
 次に、本発明の第2の実施形態について図面を参照して説明する。図9に示すように、第2の実施形態に係る安定化システムは、第1の実施形態の構成に加えて、仮想マシン100内に通信リクエスト合成部140が設けられている。通信リクエスト合成部140は、単に合成部140と称する場合がある。合成部140の機能は、合成部230と同様である。 Next, a second embodiment of the present invention will be described with reference to the drawings. As illustrated in FIG. 9, the stabilization system according to the second embodiment includes a communication request composition unit 140 in the virtual machine 100 in addition to the configuration of the first embodiment. The communication request combining unit 140 may be simply referred to as a combining unit 140. The function of the combining unit 140 is the same as that of the combining unit 230.
 次に、第2の実施形態の効果について説明する。第2の実施形態では、合成部140が仮想マシン100内にも配置されている。このため、仮想マシン100が仮想マシン環境200に対して通信リクエストを転送する際に、その転送回数を減らすことができる。転送回数が削減されるため、転送処理のオーバーヘッドを削減することができる。 Next, the effect of the second embodiment will be described. In the second embodiment, the synthesis unit 140 is also arranged in the virtual machine 100. For this reason, when the virtual machine 100 transfers a communication request to the virtual machine environment 200, the number of transfers can be reduced. Since the number of transfers is reduced, the overhead of transfer processing can be reduced.
 次に、本発明の第1の実施形態の具体例を説明する。図10に示すように、本実施例に係る仮想マシン300は、通信サービスとしてのAsterisk310と、ゲストOSとしてのLinux(登録商標)320と、通信リクエスト要求送受信部としてのvirtio330とを有する。さらに、本実施例においては、仮想マシン環境としてKVM(Kernel-based Virtual Machine)400を用いる。KVM400は、通信リクエスト要求送受信部としてのvhost_net410と、ネットワークカードドライバとしてのE1000 Driver420とを有する。 Next, a specific example of the first embodiment of the present invention will be described. As illustrated in FIG. 10, the virtual machine 300 according to the present embodiment includes an Asterisk 310 as a communication service, Linux (registered trademark) 320 as a guest OS, and a virtual 330 as a communication request request transmission / reception unit. Further, in this embodiment, a KVM (Kernel-based Virtual Machine) 400 is used as a virtual machine environment. The KVM 400 includes a vhost_net 410 as a communication request request transmission / reception unit, and an E1000 Driver 420 as a network card driver.
 Asterisk310は、携帯電話等で使用される音声呼を処理するためのSIPサーバである。 The Asterisk 310 is a SIP server for processing a voice call used in a mobile phone or the like.
 Virtio330は、vhost_net410に対して通信リクエストの送受信を行うためのLinuxカーネルドライバである。 The Virtual 330 is a Linux kernel driver for transmitting / receiving a communication request to / from the vhost_net 410.
 Vhost_net410は、Linuxカーネルドライバである。Vhost_net410は、KVM400に到着した通信リクエストを各仮想マシン300に配信する。また、Vhost_net410は、各仮想マシン300からの通信リクエストをネットワークN上に存在する他のコンピュータに送信する。 Vhost_net 410 is a Linux kernel driver. The Vhost_net 410 distributes the communication request that has arrived at the KVM 400 to each virtual machine 300. The Vhost_net 410 transmits a communication request from each virtual machine 300 to another computer on the network N.
 E1000 Driver420は、ネットワークNを介して通信リクエストを受信し、その通信リクエストをvhost_net410に転送する。Vhost_net410は、転送されてきた通信リクエストの宛先が、KVM400上で動作する仮想マシン300のいずれであるかを判別する。Vhost_net410は、その通信リクエストを宛先の仮想マシン300に転送する。宛先の判別方法について説明する。Vhost_net410は、通信リクエストのTCP/IPヘッダから宛先IPアドレスを取得し、その取得した宛先IPアドレスと同じIPアドレスが割り当てられている仮想マシン300が宛先であると判別する。監視部250は、vhost_net410上に到着した通信リクエストを監視する。計算部260は、通信処理時間275を計算する。
 図11を参照して、通信リクエスト識別子272の得るために、SIP/IPヘッダを用いる方法を説明する。通信リクエスト識別子272は、送信元IPアドレスとCall-IDとを用いて算出される。計算部260は、送信元IPアドレスをIPヘッダから取得する。計算部260は、Call-IDをSIPヘッダから取得する。図11の例では、Call-IDは、「123456@sipserver.com」である。このCall-IDからアットマークより左側の数値を通信リクエスト識別子272の算出に利用する。
 以下に具体的な通信リクエスト識別子272の演算例を示す。
 送信元IPアドレス:192.168.0.1.
 Call-ID:123456
 通信リクエスト識別子=送信元IPアドレス+Call-ID
           =192+168+0+1+123456
           =123807
The E1000 Driver 420 receives the communication request via the network N and transfers the communication request to the vhost_net 410. The Vhost_net 410 determines which of the virtual machines 300 operating on the KVM 400 is the destination of the transferred communication request. The Vhost_net 410 transfers the communication request to the destination virtual machine 300. A method for determining the destination will be described. The Vhost_net 410 acquires the destination IP address from the TCP / IP header of the communication request, and determines that the virtual machine 300 to which the same IP address as the acquired destination IP address is assigned is the destination. The monitoring unit 250 monitors communication requests that arrive on the vhost_net 410. The calculator 260 calculates the communication processing time 275.
With reference to FIG. 11, a method of using a SIP / IP header to obtain the communication request identifier 272 will be described. The communication request identifier 272 is calculated using the transmission source IP address and Call-ID. The calculation unit 260 acquires the transmission source IP address from the IP header. The calculation unit 260 acquires the Call-ID from the SIP header. In the example of FIG. 11, the Call-ID is “123456@sipperserver.com”. A numerical value on the left side of the call mark from the Call-ID is used to calculate the communication request identifier 272.
A specific calculation example of the communication request identifier 272 is shown below.
Source IP address: 192.168.0.1.
Call-ID: 123456
Communication request identifier = source IP address + Call-ID
= 192 + 168 + 0 + 1 + 1123456
= 123807
 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は、上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。 As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.
 上述の仮想マシン環境200は内部に、コンピュータシステムを有していてもよい。上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われてもよい。コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリを含んでもよい。このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしても良い。 The virtual machine environment 200 described above may have a computer system inside. The operation of each processing unit described above is stored in a computer-readable recording medium in the form of a program, and the above processing may be performed by the computer reading and executing the program. The computer-readable recording medium may include a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, and a semiconductor memory. The computer program may be distributed to the computer via a communication line, and the computer that has received the distribution may execute the program.
 上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
 上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
 以上、実施形態を参照して本願発明を示し説明したが、本願発明は上記実施形態に限定されない。当業者であれば、請求項によって画定される本願発明の範囲を逸脱しないで、構成や詳細に様々な変更をすることができることが理解されるであろう。
The program may be for realizing a part of the functions described above.
The program may be a so-called difference file (difference program) that can realize the functions described above in combination with a program already recorded in the computer system.
Although the present invention has been described and described with reference to the embodiments, the present invention is not limited to the above embodiments. Those skilled in the art will recognize that various changes can be made in configuration and detail without departing from the scope of the invention as defined by the claims.
 この出願は、2013年3月12日に出願された日本国特願2013-049048を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2013-049048 filed on March 12, 2013, the entire disclosure of which is incorporated herein.
 本発明の実施形態は、携帯電話サービスを構成する電話交換機サーバ(SIPサーバ)のサービスのうち、特定の電話回線(Call-ID)の通信処理を安定化させるといった用途に適用できる。また、本発明の実施形態は、音声通話ソフトや他のネットワークサービスの通信品質安定化といった用途にも適用可能である。 The embodiment of the present invention can be applied to applications such as stabilizing the communication processing of a specific telephone line (Call-ID) among services of a telephone exchange server (SIP server) constituting a mobile phone service. The embodiment of the present invention can also be applied to uses such as stabilization of communication quality of voice call software and other network services.
 請求の範囲、明細書及び図面中において示したシステム、方法、装置、プログラム及び記録媒体における動作、手順、ステップ及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現し得る。請求の範囲、明細書及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味しない。 The execution order of each process such as operations, procedures, steps, and stages in the system, method, apparatus, program, and recording medium shown in the claims, specification, and drawings is particularly “before” and “in advance”. The output of the previous process is not used in the subsequent process, and can be realized in any order. Even if the operation flow in the claims, the description, and the drawings is described using “first”, “next”, and the like for convenience, it does not mean that the operations are essential in this order.
100 仮想マシン
110 通信サービス
120 ゲストOS
130 通信リクエスト送受信部(送受信部)
200 仮想マシン環境
210 通信リクエスト送受信部(送受信部)
220 ネットワークカードドライバ(ドライバ)
230 通信リクエスト合成部(合成部)
240 通信リクエスト合成数決定部(決定部)
250 通信処理時間監視部(監視部)
260 通信処理時間計算部(計算部)
270 通信処理時間格納部(時間格納部)
271 監視対象アプリケーション
272 通信リクエスト識別子
273 通信リクエスト受信時刻
274 通信リクエスト送信時刻
275 通信処理時間
280 通信リクエスト合成数格納部(合成数格納部)
281 合成数変更閾値(閾値)
282 通信処理時間劣化率(劣化率)
283 通信処理時間目標値(目標値)
284 通信リクエスト合成数(合成数)
100 Virtual machine 110 Communication service 120 Guest OS
130 Communication request transmission / reception unit (transmission / reception unit)
200 Virtual machine environment 210 Communication request transmission / reception unit (transmission / reception unit)
220 Network Card Driver (Driver)
230 Communication request composition unit (composition unit)
240 Communication Request Composite Number Determining Unit (Determining Unit)
250 Communication processing time monitoring unit (monitoring unit)
260 Communication processing time calculator (calculator)
270 Communication processing time storage unit (time storage unit)
271 Monitored Application 272 Communication Request Identifier 273 Communication Request Reception Time 274 Communication Request Transmission Time 275 Communication Processing Time 280 Communication Request Composite Number Storage Unit (Composite Number Storage Unit)
281 Composite number change threshold (threshold)
282 Communication processing time deterioration rate (deterioration rate)
283 Communication processing time target value (target value)
284 Communication request composition number (composition number)

Claims (7)

  1.  仮想マシンを仮想的に生成する仮想マシン環境
     を備え、
     前記仮想マシン環境は、
     ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、
     前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算する計算部と、
     前記通信処理時間に基づいて通信リクエストの合成数を決定する決定部と、
     前記合成数の通信リクエストを合成する合成部と、を有し、
     前記送受信部は、前記合成部によって合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する
     安定化システム。
    It has a virtual machine environment that generates virtual machines virtually.
    The virtual machine environment is
    A second communication request generated by receiving a first communication request via a network, transmitting the first communication request to the virtual machine, and processing the first communication request by the virtual machine; A transmission / reception unit for transmitting via the network;
    A calculation unit that calculates a communication processing time based on a reception time at which the transmission / reception unit receives the first communication request and a transmission time at which the transmission / reception unit transmits the second communication request;
    A determination unit that determines a composite number of communication requests based on the communication processing time;
    A synthesis unit that synthesizes the number of communication requests.
    The said transmission / reception part transmits the communication request | requirement of the said composite number synthesize | combined by the said synthetic | combination part collectively to the said virtual machine.
  2.  前記仮想マシンは、
     通信リクエストを合成する合成部
     を有する請求項1に記載の安定化システム。
    The virtual machine is
    The stabilization system according to claim 1, further comprising a combining unit that combines communication requests.
  3.  前記仮想マシン環境は、時間格納部をさらに備え、
     前記時間格納部は、
     前記仮想マシンにおける監視対象となっているアプリケーションを示す情報と、
     前記第1の通信リクエストと前記第2の通信リクエストとに共通に用いられる識別子と、
     前記第1の通信リクエストの受信時刻と、
     前記第2の通信リクエストの送信時刻と、
     前記受信時刻と前記送信時刻の差分を示す前記通信処理時間と
     を格納する請求項1又は2に記載の安定化システム。
    The virtual machine environment further includes a time storage unit,
    The time storage unit is
    Information indicating an application to be monitored in the virtual machine;
    An identifier used in common for the first communication request and the second communication request;
    The reception time of the first communication request;
    A transmission time of the second communication request;
    The stabilization system according to claim 1, wherein the communication processing time indicating a difference between the reception time and the transmission time is stored.
  4.  前記仮想マシン環境は、合成数格納部をさらに備え、
     前記合成数格納部は、
     前記通信処理時間の目標値と、
     前記仮想マシンにおける監視対象となっているアプリケーションが処理する通信リクエストの全体に対する、前記通信処理時間が前記目標値を超える通信リクエストの割合を示す劣化率と、
     前記劣化率と比較され、前記合成数を変更するか否かの判断に用いられる閾値と、
     前記通信リクエストの合成数と
     を格納する請求項1から3のいずれか一項に記載の安定化システム。
    The virtual machine environment further includes a composite number storage unit,
    The composite number storage unit
    A target value of the communication processing time;
    A deterioration rate indicating a ratio of communication requests in which the communication processing time exceeds the target value with respect to the entire communication requests processed by the application to be monitored in the virtual machine;
    A threshold that is compared with the degradation rate and used to determine whether to change the number of composites;
    The stabilization system according to any one of claims 1 to 3, wherein a composite number of the communication requests is stored.
  5.  仮想マシンを仮想的に生成する仮想マシン環境のための安定化方法であって、
     ネットワークを介して第1の通信リクエストを受信し、
     前記第1の通信リクエストを前記仮想マシンに送信し、
     前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、
     前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算し、
     前記通信処理時間に基づいて通信リクエストの合成数を決定し、
     前記合成数の通信リクエストを合成し、
     前記合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する
     ことを含む安定化方法。
    A stabilization method for a virtual machine environment for virtually creating a virtual machine,
    Receiving a first communication request via a network;
    Sending the first communication request to the virtual machine;
    Sending a second communication request generated by the virtual machine processing the first communication request via the network;
    A communication processing time is calculated based on a reception time when the virtual machine environment receives the first communication request and a transmission time when the virtual machine environment transmits the second communication request;
    Determine the number of compositing communication requests based on the communication processing time,
    Combining the composite number of communication requests,
    A stabilization method including: collectively transmitting the combined communication requests of the combined number to the virtual machine.
  6.  仮想マシンを仮想的に生成する仮想マシン環境であって、
     ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、
     前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算する計算部と、
     前記通信処理時間に基づいて通信リクエストの合成数を決定する決定部と、
     前記合成数の通信リクエストを合成する合成部と、を有し、
     前記送受信部は、前記合成部によって合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する
     仮想マシン環境。
    A virtual machine environment for virtually creating a virtual machine,
    A second communication request generated by receiving a first communication request via a network, transmitting the first communication request to the virtual machine, and processing the first communication request by the virtual machine; A transmission / reception unit for transmitting via the network;
    A calculation unit that calculates a communication processing time based on a reception time at which the transmission / reception unit receives the first communication request and a transmission time at which the transmission / reception unit transmits the second communication request;
    A determination unit that determines a composite number of communication requests based on the communication processing time;
    A synthesis unit that synthesizes the number of communication requests.
    The virtual machine environment, wherein the transmission / reception unit transmits the combined number of communication requests combined by the combining unit to the virtual machine.
  7.  仮想マシンを仮想的に生成するコンピュータに、
     ネットワークを介して第1の通信リクエストを受信し、
     前記第1の通信リクエストを前記仮想マシンに送信し、
     前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、
     前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエストの送信した送信時刻とに基づいて通信処理時間を計算し、
     前記通信処理時間に基づいて通信リクエストの合成数を決定し、
     前記合成数の通信リクエストを合成し、
     前記合成された前記合成数の通信リクエストをまとめて前記仮想マシンに送信する
     ことを実行させるためのプログラム。
    To a computer that virtually creates a virtual machine,
    Receiving a first communication request via a network;
    Sending the first communication request to the virtual machine;
    Sending a second communication request generated by the virtual machine processing the first communication request via the network;
    A communication processing time is calculated based on a reception time when the virtual machine environment receives the first communication request and a transmission time when the virtual machine environment transmits the second communication request;
    Determine the number of compositing communication requests based on the communication processing time,
    Combining the composite number of communication requests,
    A program for causing the combined communication requests of the combined number to be transmitted to the virtual machine.
PCT/JP2014/054143 2013-03-12 2014-02-21 Stabilization system, stabilization method, virtual machine environment, and program WO2014141854A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015505353A JP5796693B2 (en) 2013-03-12 2014-02-21 Stabilization system, stabilization method, computer apparatus and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013049048 2013-03-12
JP2013-049048 2013-03-12

Publications (1)

Publication Number Publication Date
WO2014141854A1 true WO2014141854A1 (en) 2014-09-18

Family

ID=51536530

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/054143 WO2014141854A1 (en) 2013-03-12 2014-02-21 Stabilization system, stabilization method, virtual machine environment, and program

Country Status (2)

Country Link
JP (1) JP5796693B2 (en)
WO (1) WO2014141854A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7451438B2 (en) 2021-01-22 2024-03-18 株式会社東芝 Communication devices, communication systems, notification methods and programs

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169757A (en) * 2008-01-17 2009-07-30 Fujitsu Ltd Distributed processing program, distributed processing device, and distributed processing method
US20120170477A1 (en) * 2010-01-14 2012-07-05 Nec Corporation Computer, communication system, network connection switching method, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169757A (en) * 2008-01-17 2009-07-30 Fujitsu Ltd Distributed processing program, distributed processing device, and distributed processing method
US20120170477A1 (en) * 2010-01-14 2012-07-05 Nec Corporation Computer, communication system, network connection switching method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7451438B2 (en) 2021-01-22 2024-03-18 株式会社東芝 Communication devices, communication systems, notification methods and programs

Also Published As

Publication number Publication date
JPWO2014141854A1 (en) 2017-02-16
JP5796693B2 (en) 2015-10-21

Similar Documents

Publication Publication Date Title
CN107623646B (en) Data stream transmission method, sending equipment and receiving equipment
WO2020236291A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
US8713202B2 (en) Method and system for network configuration for virtual machines
US9069722B2 (en) NUMA-aware scaling for network devices
WO2016101288A1 (en) Remote direct memory accessmethod, device and system
US8601496B2 (en) Method and system for protocol offload in paravirtualized systems
US8665725B2 (en) System and method for hierarchical adaptive dynamic egress port and queue buffer management
US20080002683A1 (en) Virtual switch
US9225807B2 (en) Driver level segmentation
EP3057271A1 (en) Control device and control method in software defined network (sdn)
US10050893B2 (en) Data transmission using modified weighted fair queue algorithm
US20190042151A1 (en) Hybrid framework of nvme-based storage system in cloud computing environment
EP3563534B1 (en) Transferring packets between virtual machines via a direct memory access device
US11212590B2 (en) Multiple core software forwarding
CN105379212A (en) Weighted ingest policy management in a content distribution network
WO2015010584A1 (en) Operating system virtualization for host channel adapters
US9363199B1 (en) Bandwidth management for data services operating on a local network
US20200252337A1 (en) Data transmission method, device, and computer storage medium
US11875839B2 (en) Flow based rate limit
JP5796693B2 (en) Stabilization system, stabilization method, computer apparatus and program
EP3275139B1 (en) Technologies for network packet pacing during segmentation operations
US20170366460A1 (en) Rdma-over-ethernet storage system with congestion avoidance without ethernet flow control
US11079972B2 (en) Semiconductor device
US7672299B2 (en) Network interface card virtualization based on hardware resources and software rings
WO2018157543A1 (en) Timer implementation method and related device

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015505353

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14765583

Country of ref document: EP

Kind code of ref document: A1