Processing time measurement device and processing time measurement method
The processing time measuring device uses unique packet identifiers to measure processing time in applications with changing packet counts or data portions, addressing the inefficiencies of existing methods and reducing communication delays.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- NT T INC
- Filing Date
- 2024-12-26
- Publication Date
- 2026-07-02
AI Technical Summary
Existing methods for measuring processing time on edge or cloud servers are ineffective in applications where the number of packets or data portion of packets changes before and after processing, leading to increased communication delays.
A processing time measuring device and method that utilizes unique packet identifiers, such as start and end markers, to identify and record transit times of packets before and after processing, calculating processing time without embedding additional time information in packets.
Enables accurate measurement of processing time in applications with changing packet counts or data portions, while avoiding additional processing delays.
Smart Images

Figure JP2024046177_02072026_PF_FP_ABST
Abstract
Description
Processing time measuring device and processing time measuring method
[0001] The present invention relates to a processing time measuring device and a processing time measuring method.
[0002] In end-to-end communications such as remote control of IoT (Internet of Things), various functions such as image processing are increasingly being moved to the edge or cloud to reduce the cost of end-user devices. To meet the communication requirements between specific users, it is necessary to consider not only the network transfer portion but also the processing delay on the edge server or cloud server. When end-to-end communication delays are long, it is necessary to distinguish whether the long delay is due to the network transfer portion or the processing time of the virtualized network function portion realized by NFV (Network Functions Virtualization). Therefore, it is necessary to measure the processing time on the edge server or cloud server.
[0003] A method for measuring processing time on edge servers or cloud servers has been proposed, which involves embedding time data in packets (hereinafter referred to as the "first measurement method") (see, for example, Patent Document 1). Figure 14 is a conceptual diagram illustrating the first measurement method. Figure 14 shows an example in which a packet sent from user terminal A is forwarded to user terminal B via the network (labeled "NW" in Figure 14) and an edge server. Although an edge server is used as an example here, the same applies to cloud servers.
[0004] In the first measurement method, the edge server's time embedding function embeds time information into packets sent from user terminal A before they are input to the application. The edge server's processing time calculation function calculates the difference between the time of the packet output after the application has finished processing and the time embedded in the packet, thereby measuring the application's processing time. However, this method involves writing time information to the packet. This results in processing time required for writing the time information, further increasing the user's end-to-end communication delay.
[0005] Also, as a method for measuring the processing time on an edge server or a cloud server, a method that utilizes the data part of a packet (hereinafter referred to as the "second measurement method") has also been proposed (see, for example, Patent Document 2). FIG. 15 is a conceptual diagram for explaining the second measurement method. FIG. 15 shows an example in which a packet transmitted from user terminal A is transferred to user terminal B via a network (described as "NW" in FIG. 15) and an edge server. Here, an edge server is shown as an example, but the same applies to a cloud server.
[0006] In the second measurement method, the processing time measurement function of the edge server acquires the first time at the timing when the same packet is input to the application (the symbol 〇 shown in FIG. 15) and the second time at the timing when it is output from the application (the symbol △ shown in FIG. 15). Then, the processing time measurement function of the edge server calculates the time difference between the acquired first time and second time as the processing time. In the second measurement method, the processing time measurement function discriminates the same packet by using, as an identifier, all or a part of the data part of the acquired packet randomly extracted. In this way, the second measurement method can measure the processing time of an application without causing an extra processing delay in the user's End-to-End communication. Therefore, the problems occurring in the first measurement method can be solved.
[0007] Japanese Patent Application Laid-Open No. 2001-285154 International Publication No. 2024 / 154295
[0008] However, the second measurement method is an effective method only in applications such as NFV (Network Functions Virtualization) where the data part of the packet does not change. In applications such as image processing, the number of packets changes before and after the processing of the application, or the content of the data part of the packet changes. Therefore, there is a problem that the second measurement method cannot be applied to the time measurement of applications such as image processing.
[0009] In view of the above circumstances, the present invention aims to provide a technology that can measure processing time in applications where the number of packets or the data portion of packets changes before and after processing, while suppressing the occurrence of processing delays.
[0010] One aspect of the present invention is a processing time measuring device comprising: a packet acquisition unit that acquires packets input to an application whose processing time is to be measured, or packets output from the application, in order to measure the processing time of packets by the application; a packet identifier determination unit that determines a packet identifier for each application to identify a packet that can be used for measuring processing time, based on a unique identifier defined by a format included in the data portion of the acquired packet; a transit time recording unit that records time information representing the time when the packet containing the packet identifier was acquired for each application; and a processing time calculation unit that calculates the processing time based on the first time information and the second time information when the packet input to the application was acquired and the packet output from the application was acquired, when these have been recorded.
[0011] One aspect of the present invention is a processing time measurement method for measuring the processing time of packets by an application, which involves acquiring packets input to an application whose processing time is to be measured, or packets output from the application, determining a packet identifier for each application to identify packets that can be used for measuring processing time based on a unique identifier defined in the format contained in the data portion of the acquired packets, recording time information for each application that represents the time when the packet containing the packet identifier was acquired, and calculating the processing time based on the first time information and the second time information when the packet input to the application was acquired and the packet output from the application was acquired, when these have been recorded.
[0012] The present invention makes it possible to measure processing time in applications where the number of packets or the data portion of packets changes before and after processing, while suppressing the occurrence of processing delays.
[0013] This figure shows an example of the configuration of the physical server in this embodiment. This figure shows an example of the configuration of the processing time measuring device in this embodiment. This figure shows an example of a group of packets that transfer data processed once by an application. This figure shows an example of start and end markers included in each image format. This figure shows an example of the configuration of the identifier database in this embodiment. This figure shows an example of the configuration of the transit time database in this embodiment. This is a flowchart showing the flow of the time information storage process performed by the processing time measuring device in this embodiment. This figure shows an overview of the time information storage process shown in Figure 7. This figure shows an example of a method for identifying the first packet. This figure shows an example of a method for identifying the last packet. This is a flowchart showing the flow of the processing time calculation process performed by the processing time measuring device in this embodiment. This figure shows another example of the placement location of the processing time measuring device. This figure shows another example of the placement location of the processing time measuring device. This is a conceptual diagram for explaining the first measurement method. This is a conceptual diagram for explaining the second measurement method.
[0014] One embodiment of the present invention will be described below with reference to the drawings.
[0015] Figure 1 shows an example configuration of the physical server 10 in this embodiment. The physical server 10 processes and relays packets exchanged between user terminals (for example, between user terminal A and user terminal B shown in Figures 14 and 15). Furthermore, the physical server 10 measures the processing time, which is the time required to process packets transmitted from user terminals. The processing time measured by the physical server 10 is the time required for processing by the application that processes the data contained in the packet. For example, the processing time measured by the physical server 10 may be measured in packets. The physical server 10 comprises a processing unit 11 and a processing time measuring device 12.
[0016] The processing unit 11 performs predetermined processing on the input packets. The processing unit 11 is a functional unit that implements, for example, one or more applications. The processing unit 11 includes applications where the number of packets changes before and after processing, or where the content of the data portion of the packets changes, such as image processing. In the following explanation, an application that performs image processing will be used as an example, but other applications may also be used as long as the number of packets changes before and after processing, or where the content of the data portion of the packets changes. Note that the processing unit 11 may also include applications such as NFV where the data portion of the packets does not change.
[0017] The processing time measuring device 12 measures the processing time required for each application, which is the time it takes to perform the processing performed by the application implemented by the processing unit 11. The processing time measuring device 12 can be implemented as software on a general-purpose server equipped with a CPU (Central Processing Unit) and memory. To speed up the measurement process, it can also be implemented on hardware (including the circuit section) such as an ASIC (Application Specific Integrated Circuit), PLD (Programmable Logic Device), or FPGA (Field Programmable Gate Array).
[0018] Figure 2 shows an example of the configuration of the processing time measuring device 12 in an embodiment. The processing time measuring device 12 comprises a packet acquisition unit 121, a packet identifier determination unit 122, an identifier database 123, a transit time recording unit 124, a transit time database 125, and a processing time calculation unit 126.
[0019] The packet acquisition unit 121 acquires packets input to the processing unit 11 and packets output from the processing unit 11. The packet acquisition unit 121 receives an application identifier for identifying the application to be measured and acquires packets input to the processing unit 11 and packets output from the processing unit 11. The application identifier may be, for example, a combination of an IP address and a port number. The packet acquisition unit 121 outputs the acquired packets to the packet identifier determination unit 122.
[0020] When the packet acquisition unit 121 receives notification from the packet identifier determination unit 122 indicating that the packet identifier has been determined, it notifies the transit time recording unit 124 of the packet whose packet identifier has been determined and time information representing the time when the packet whose packet identifier has been determined was acquired. The time when the packet whose packet identifier has been determined was acquired may be the time when the packet acquisition unit 121 acquired the packet, or it may be the time when the notification was received from the packet identifier determination unit 122.
[0021] A packet identifier is identification information used to identify packets that can be used to measure processing time (hereinafter referred to as "measurement packets"). It consists of a combination of a unique identifier stored in the data portion of the packet and information included in the header of the measurement packet (for example, the source IP address and port number). The explanation of the unique identifier will be given later.
[0022] There are two possible methods for the packet acquisition unit 121 to acquire packets, and either method may be used. The first packet acquisition method involves the physical server 10 mirroring the packets input to or output from the processing unit 11 and transferring them to the packet acquisition unit 121.
[0023] The second packet acquisition method involves ensuring that packets input to or output from the processing unit 11 pass through the packet acquisition unit 121, and then acquiring the packets by copying (mirroring) the packets that pass through the packet acquisition unit 121.
[0024] The packet identifier determination unit 122 determines the packet identifier for each application based on the packets output from the packet acquisition unit 121. The packet identifier determination unit 122 refers to the data portion of the packet and determines that packets containing a specific identifier defined in the format in the data portion are measurement packets. On the other hand, the packet identifier determination unit 122 refers to the data portion of the packet and determines that packets that do not contain a specific identifier defined in the format in the data portion are not measurement packets.
[0025] The packet identifier determination unit 122 then determines the packet identifier using the measurement packet. For example, the packet identifier determination unit 122 determines the packet identifier as a combination of a unique identifier contained in the data portion of the measurement packet and information contained in the header of the measurement packet (for example, the source IP address and port number). The packet identifier determination unit 122 also stores the determined packet identifier for each application in the identifier database 123.
[0026] The identifier database 123 is a database in which information about packet identifiers is registered. For example, the identifier database 123 registers application identifiers and packet identifiers determined for each application in association with each other.
[0027] The passage time recording unit 124 accesses the identifier database 123 and, based on packets (measurement packets) containing packet identifiers registered in the identifier database 123, records the time information notified by the packet acquisition unit 121 in the passage time database 125 for each application.
[0028] The transit time database 125 is a database in which information regarding the transit time of each measurement packet is registered. For example, the transit time database 125 registers time information representing the time when the measurement packet was identified before processing by the processing unit 11 (hereinafter referred to as "pre-processing time information"), which is associated with the application identifier, and time information representing the time when the measurement packet was identified after processing by the processing unit 11 (hereinafter referred to as "post-processing time information"). The transit time database 125 is used to calculate the processing time.
[0029] The processing time calculation unit 126 periodically or at predetermined intervals monitors the transit time database 125 and calculates the processing time of the processing unit 11 for each application. Specifically, the processing time calculation unit 126 refers to the transit time database 125 and, if there is an application identifier for which a combination of pre-processing time information and post-processing time information is registered, calculates the difference between the time indicated by the pre-processing time information and the time indicated by the post-processing time information associated with that application identifier. As a result, the processing time calculation unit 126 calculates the processing time for each application. The processing time calculation unit 126 deletes the information used to calculate the processing time from the transit time database 125.
[0030] Figure 3 shows an example of a group of packets that transfer data processed once by an application. As shown in Figure 3, each data format processed by the application has a unique identifier (marker) that indicates the start and end of the data. In Figure 3, the start marker and end marker are shown as unique identifiers (markers) that indicate the start and end of the data. The start marker is an identifier that indicates the start of the data processed by the application, and the end marker is an identifier that indicates the end of the data processed by the application. As shown in Figure 3, the data start marker is located at a specific position in the first packet, and the data end marker is located at a specific position in the last packet. Such unique identifiers (markers) are values that do not change before and after processing by the application.
[0031] Figure 4 shows examples of start and end markers included in each image format. As mentioned above, each data format processed by an application has its own unique identifier (marker) indicating the start and end of data, and Figure 4 shows examples of start and end markers included in each image format. For example, Figure 4 shows five image formats: JPEG (Joint Photographic Experts Group), PNG (Portable Network Graphics), GIF (Graphics Interchange Format), BMP (bitmap), and TIFF (Tag Image File Format).
[0032] Each image format has a defined start marker (SOI) and end marker (EOI). For example, the JPEG image format specifies that the start marker is the string "FFD8" and the end marker is the string "FFD9".
[0033] Figure 5 shows an example of the configuration of the identifier database 123 in the embodiment. The identifier database 123 consists of multiple records to which the values of an application identifier, an identifier that identifies a pre-processing packet, and an identifier that identifies a post-processing packet are associated. The application identifier represents identification information for identifying an application. In Figure 5, the application identifier is shown as a combination of the application's IP address and port number, but the application identifier is not limited to this and can be any information that can uniquely identify an application.
[0034] The identifier for identifying the pre-processing packet represents a packet identifier used to identify the packet to which the data is transferred before processing by the processing unit 11. Hereinafter, the identifier for identifying the pre-processing packet will simply be referred to as the pre-processing packet identifier. Examples of pre-processing packet identifiers include the marker and the position of the marker (byte range). Since it is conceivable that the preceding and succeeding markers may be the same in the data to be processed, the marker and the position of the marker (byte range) may be combined with the source IP and the position of the source IP (byte range) in the IP header, etc.
[0035] The identifier for identifying the processed packet represents a packet identifier used to identify the packet to which the processed data transferred by the processing unit 11 is transferred. Hereinafter, the identifier for identifying the processed packet will simply be referred to as the processed packet identifier. Examples of the processed packet identifier include the marker and the position of the marker (byte range). Since it is conceivable that the preceding and succeeding markers may be the same in the data being processed, the marker and the position of the marker (byte range) may be combined with the source IP and the position of the source IP (byte range) in the IP header, etc.
[0036] Figure 6 shows an example of the configuration of the transit time database 125 in the embodiment. The transit time database 125 consists of multiple records, each associated with an application identifier, pre-processing time information, and post-processing time information. The application identifier represents identification information for identifying an application. The pre-processing time information represents the time when the processing unit 11 identified the packet before processing. The post-processing time information represents the time when the processing unit 11 identified the packet after processing.
[0037] Figure 7 is a flowchart illustrating the flow of time information storage processing performed by the processing time measuring device 12 in the embodiment. In Figure 7, the processing flow from when the processing time measuring device 12 acquires a packet to when it stores the time information of the acquired packet in the transit time database 125 will be explained in detail using Figure 8 as well. Figure 8 is a diagram illustrating the schematic flow of the time information storage processing shown in Figure 7. The processing in Figure 8 is performed periodically or at predetermined time intervals as needed.
[0038] The packet acquisition unit 121 acquires packets that are input to the processing unit 11 or packets that are output from the processing unit 11 (step S101). The packet acquisition unit 121 receives, for example, the application identifier of an application whose processing time is to be measured, and acquires packets that are input to the application whose processing time is to be measured, or packets that are output from the application. The packet acquisition unit 121 outputs the received application identifier and the acquired packets to the packet identifier determination unit 122.
[0039] Figure 8 shows a specific example of the information that the packet acquisition unit 121 outputs to the packet identifier determination unit 122. In Figure 8, a UDP (User Datagram Protocol) packet is used as an example, and the IP header, UDP header, and data portion are shown. Furthermore, in the example of an application identifier, information indicating the application's IP address and port number is shown, such as "IP: 10.10.10.10, port: 8000".
[0040] The packet identifier determination unit 122 determines, based on the packet output from the packet acquisition unit 121, whether or not the packet can be used to measure processing time (step S102). Specifically, the packet identifier determination unit 122 first refers to the data portion of the packet output from the packet acquisition unit 121 and determines whether or not the data portion contains a unique identifier, either a start marker or an end marker. Note that whether or not the packet identifier determination unit 122 determines the unique identifier of either the start marker or the end marker is predetermined for each application.
[0041] If the data portion contains a pre-configured unique identifier, the packet identifier determination unit 122 determines that the input packet is a packet that can be used to measure processing time. If the data portion does not contain a pre-configured unique identifier, the packet identifier determination unit 122 determines that the input packet is not a packet that can be used to measure processing time.
[0042] Also, when the identifier unique to the data part is the start marker, the packet identifier determination unit 122 can identify that the input packet is the head packet. When the identifier unique to the data part is the end marker, the packet identifier determination unit 122 can identify that the input packet is the tail packet.
[0043] When the packet identifier determination unit 122 determines that the packet is not a packet that can be used for measuring the processing time (step S102 - NO), the processing time measurement device 12 executes the processing of step S101. On the other hand, when the packet identifier determination unit 122 determines that the packet is a packet that can be used for measuring the processing time (step S102 - YES), the packet identifier determination unit 122 determines the packet identifier of the packet that can be used for measuring the processing time (step S103).
[0044] Specifically, the packet identifier determination unit 122 determines a combination of the unique identifier included in the measurement packet and the information (for example, source IP address, port number, etc.) included in the header of the measurement packet as the packet identifier. The packet identifier determination unit 122 stores the identified packet identifier in the identifier database 123 in association with the application identifier notified from the packet acquisition unit 121. At this time, when the measurement packet for which the packet identifier is determined is a packet before processing by the processing unit 11, the packet identifier determination unit 122 stores the identified packet identifier in the item of the identifier for identifying the pre - processing packet in the identifier database 123. Also, when the measurement packet for which the packet identifier is determined is a packet after processing by the processing unit 11, the packet identifier determination unit 122 stores the identified packet identifier in the item of the identifier for identifying the post - processing packet in the identifier database 123. The packet identifier determination unit 122 notifies the packet acquisition unit 121 of information indicating the application identifier for processing the measurement packet for which the packet identifier is determined.
[0045] Upon receiving notification from the packet identifier determination unit 122, the packet acquisition unit 121 stops forwarding packets to the packet identifier determination unit 122 for applications whose packet identifiers have been determined, and notifies the transit time recording unit 124 of the acquired packets and time information indicating the time when the packet identifier was identified. The transit time recording unit 124 analyzes the packets notified by the packet acquisition unit 121 and identifies the packet identifier in the same way as the method used by the packet identifier determination unit 122. The transit time recording unit 124 refers to the identifier database 123, and if the identified packet identifier matches either a pre-processing packet identifier or a post-processing packet identifier registered in the identifier database 123, it records the notified time information in the transit time database 125, associating it with the application identifier.
[0046] Figure 9 shows an example of a method for identifying the first packet. The data portion of the first packet, packet 1 (labeled "Packet 1" in Figure 9), contains a start marker. Therefore, when packet 1 is input to the physical server 10, the start marker is identified by the processing time measuring device 12. The packet identifier determination unit 122 then determines that the identifier obtained by combining the source IP address contained in packet 1, which includes the start marker, with the start marker is the pre-processing packet identifier. The packet identifier determination unit 122 stores the determined pre-processing packet identifier in the identifier database 123, associating it with the application identifier. For example, as shown in Figure 5, the packet identifier determination unit 122 stores the value of the pre-processing packet identifier in the identifier item that identifies the pre-processing packet, associating it with the application identifier.
[0047] Also, when packet 1 is output from the processing unit 11, a start marker is identified in the processing time measuring device 12. Then, the packet identifier determination unit 122 determines a combination of the source IP address included in packet 1 containing the start marker and the start marker as a processed packet identifier. The packet identifier determination unit 122 stores the determined processed packet identifier in the identifier database 123 in association with the application identifier. For example, as shown in FIG. 5, the packet identifier determination unit 122 stores the value of the processed packet identifier in the item of the identifier for specifying the processed packet in association with the application identifier.
[0048] FIG. 10 is a diagram showing an example of a method for specifying an end packet. FIG. 10 shows a specific example of the method for specifying an end packet. An end marker is stored in the data portion of packet N (described as "Packet N" in FIG. 10), which is the end packet. Therefore, when packet N is input to the physical server 10, an end marker is identified in the processing time measuring device 12. Then, the packet identifier determination unit 122 determines an identifier obtained by combining the source IP address included in packet N containing the end marker and the end marker as a pre-processed packet identifier. The packet identifier determination unit 122 stores the determined pre-processed packet identifier in the identifier database 123 in association with the application identifier. For example, as shown in FIG. 5, the packet identifier determination unit 122 stores the value of the pre-processed packet identifier in the item of the identifier for specifying the pre-processed packet in association with the application identifier.
[0049] Also, when packet N is output from the processing unit 11, an end marker is identified in the processing time measuring device 12. Then, the packet identifier determination unit 122 determines a combination of the source IP address included in packet N containing the end marker and the end marker as a processed packet identifier. The packet identifier determination unit 122 stores the determined processed packet identifier in the identifier database 123 in association with the application identifier. For example, as shown in FIG. 5, the packet identifier determination unit 122 stores the value of the processed packet identifier in the item of the identifier for specifying the processed packet in association with the application identifier.
[0050] As described above, the processing time measuring device 12 can store information for identifying packets before and after processing by an application on a packet-by-packet basis by using a unique identifier defined in a format such as a start marker or an end marker. By repeatedly executing the above process, the processing time measuring device 12 can obtain the time item for identifying the pre-processing packet and the time for identifying the post-processing packet for the same packet (for example, a packet containing a start marker).
[0051] Figure 11 is a flowchart showing the flow of the processing time calculation process performed by the processing time measuring device 12 in the embodiment. The process in Figure 11 is performed periodically or at fixed time intervals as needed.
[0052] The processing time calculation unit 126 refers to the transit time database 125 and determines whether there is a record with complete time information (step S201). Specifically, the processing time calculation unit 126 determines whether time information is registered in both the time item that identifies the pre-processing packet and the time item that identifies the post-processing packet, associated with the same identifier in the transit time database 125.
[0053] The processing time calculation unit 126 determines that there is a record with matching time information if time information is registered in both the item for the time of the pre-processing packet and the item for the time of the post-processing packet, associated with the same identifier. On the other hand, the processing time calculation unit 126 determines that there is no record with matching time information if time information is not registered in both the item for the time of the pre-processing packet and the item for the time of the post-processing packet, associated with the same identifier.
[0054] The processing time calculation unit 126 refers to the transit time database 125 and, if it determines that there are no records with complete time information (step S201-NO), waits for a predetermined time (step S202). The time information saving process shown in Figure 7 is executed independently of the processing time calculation process shown in Figure 11. Therefore, new information may be registered in the transit time database 125 while the unit is waiting for the predetermined time. After waiting for the predetermined time, the processing time calculation unit 126 executes the process in step S201 again.
[0055] Meanwhile, the processing time calculation unit 126 refers to the transit time database 125 and, if it determines that there is a record with matching time information (step S201-YES), it obtains the time information for identifying the pre-processing packet and the time information for identifying the post-processing packet associated with the record with matching time information. As shown in Figure 6, if the application identifier "IP: 10.10.10.10, port: 8000" has matching time information, the processing time calculation unit 126 obtains the time information for identifying the pre-processing packet "12:56.336563756" and the time information for identifying the post-processing packet "12:56.339563756" associated with the record for the application identifier "IP: 10.10.10.10, port: 8000".
[0056] The processing time calculation unit 126 calculates the processing time by calculating the difference between the time information "12:56.336563756" that identifies the acquired pre-processing packet and the time information "12:56.339563756" that identifies the post-processing packet (step S203). The processing time calculation unit 126 outputs the calculation result as the application processing time. Furthermore, by using these values, the fluctuation value of the application processing time can be measured. Subsequently, the processing time calculation unit 126 deletes the record of the application identifier for which the processing time was calculated from the transit time database 125 (step S204). For example, the processing time calculation unit 126 deletes the first-level record of the application identifier "IP: 10.10.10.10, port: 8000" shown in Figure 6.
[0057] The physical server 10 configured as described above includes: a packet acquisition unit 121 that acquires packets input to or output from an application whose processing time is to be measured, in order to measure the processing time of packets by an application; a packet identifier determination unit 122 that determines a packet identifier for each application to identify packets that can be used for measuring processing time based on the start marker or end marker included in the data portion of the acquired packets; a transit time recording unit 124 that records time information representing the time when a packet containing the packet identifier was acquired for each application; and a processing time calculation unit 126 that calculates the processing time based on the pre-processing time and the post-processing time when the pre-processing time and post-processing time are recorded.
[0058] In this way, the processing time measuring device 12 analyzes the packets, identifies unique identifiers that indicate the start and end of the data processed by the application, and then uses the packet identifier based on these unique identifiers to calculate the processing time (time difference) based on the time before and after processing the same data by the application. Therefore, it does not generate unnecessary processing time, such as embedding time information in packets as in the conventional method. Furthermore, because it is a unique identifier defined in the format, the unique identifier can be used without changing even if the number of packets or the data portion of the packets changes before and after processing by the application. Therefore, it is possible to measure the processing time of applications in which the number of packets or the data portion of the packets changes before and after processing by the application. As a result, it becomes possible to measure the processing time of applications in which the number of packets or the data portion of the packets changes before and after processing while suppressing the occurrence of processing delays.
[0059] (Modification 1) In the embodiment described above, the processing time measuring device 12 is provided on a physical server 10 equipped with a processing unit 11 (a configuration in which the processing unit 11 and the processing time measuring device 12 are provided on the same server). However, the processing time measuring device 12 may be provided outside the physical server 10, as shown in Figures 12 and 13. Figures 12 and 13 show alternative examples of the placement location of the processing time measuring device 12. For example, the processing time measuring device 12 may be implemented outside the physical server 10 and on another server or dedicated hardware (e.g., FPGA), as shown in Figure 12. For example, the processing time measuring device 12 may be implemented outside the physical server 10 and on another server or dedicated hardware (e.g., FPGA), as shown in Figure 13, and may acquire mirrored packets at the network switch 13. In the configuration shown in Figure 13, the network switch 13 can mirror packets received from an external source (e.g., a user terminal) at a first location (the circle shown in Figure 13) and output them to the physical server 10 and the processing time measuring device 12. It can also mirror packets output from the physical server 10 at a second location (the triangle shown in Figure 13) and output them to the processing time measuring device 12.
[0060] Some of the functional components of the physical server 10 described above may be implemented using a computer. In this case, the program for implementing this function may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be loaded into a computer system and executed. Here, "computer system" includes hardware such as the OS and peripheral devices. Furthermore, "computer-readable recording medium" refers to portable media such as flexible disks, magneto-optical disks, ROMs, CD-ROMs, and storage devices such as hard disks built into a computer system.
[0061] Furthermore, "computer-readable recording media" may include those that dynamically hold programs for a short period of time, such as communication lines used when transmitting programs via networks such as the Internet or communication lines such as telephone lines, as well as those that hold programs for a certain period of time, such as volatile memory inside a computer system that acts as a server or client in such cases. Moreover, the above-mentioned program may be for the purpose of realizing a part of the aforementioned functions, or it may be a program that can realize the aforementioned functions in combination with a program already recorded in the computer system, or it may be implemented using a programmable logic device such as an FPGA.
[0062] While embodiments of this invention have been described in detail above with reference to the drawings, the specific configuration is not limited to these embodiments and includes designs and the like that do not depart from the spirit of this invention.
[0063] This invention can be applied to techniques for measuring packet processing time.
[0064] 10...Physical server, 11...Processing unit, 12...Processing time measuring device, 121...Packet acquisition unit, 122...Packet identifier determination unit, 123...Identifier database, 124...Passing time recording unit, 125...Passing time database, 126...Processing time calculation unit
Claims
1. A processing time measuring device comprising: a packet acquisition unit that acquires packets input to an application whose processing time is to be measured, or packets output from the application, in order to measure the processing time of packets by the application; a packet identifier determination unit that determines a packet identifier for each application to identify a packet that can be used for measuring processing time, based on a unique identifier defined in the format contained in the data portion of the acquired packet; a transit time recording unit that records time information representing the time when the packet containing the packet identifier was acquired for each application; and a processing time calculation unit that calculates the processing time based on the first time information and the second time information when the packet input to the application was acquired and the packet output from the application was acquired, when these have been recorded.
2. The processing time measuring device according to claim 1, wherein the packet identifier determination unit determines the packet identifier based on the unique identifier and the information contained in the header portion of the packet.
3. The processing time measuring device according to claim 1 or 2, wherein the unique identifier defined in the format is a value that does not change before and after processing by the application.
4. A processing time measurement method for measuring the processing time of packets by an application, comprising: acquiring packets input to or output from an application whose processing time is to be measured; determining a packet identifier for each application to identify packets that can be used for measuring processing time based on a unique identifier defined in the format contained in the data portion of the acquired packets; recording time information for each application that represents the time when the packet containing the packet identifier was acquired; and calculating the processing time based on the first time information and the second time information when the packet input to the application was acquired and the packet output from the application was acquired, when these have been recorded.