WO2009144797A1 - 情報処理装置、情報処理装置の制御方法及びプログラム - Google Patents

情報処理装置、情報処理装置の制御方法及びプログラム Download PDF

Info

Publication number
WO2009144797A1
WO2009144797A1 PCT/JP2008/059915 JP2008059915W WO2009144797A1 WO 2009144797 A1 WO2009144797 A1 WO 2009144797A1 JP 2008059915 W JP2008059915 W JP 2008059915W WO 2009144797 A1 WO2009144797 A1 WO 2009144797A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication
communication data
control unit
communication device
Prior art date
Application number
PCT/JP2008/059915
Other languages
English (en)
French (fr)
Inventor
憲一郎 竹田
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2008/059915 priority Critical patent/WO2009144797A1/ja
Priority to JP2010514291A priority patent/JP5338812B2/ja
Publication of WO2009144797A1 publication Critical patent/WO2009144797A1/ja
Priority to US12/926,230 priority patent/US20110055421A1/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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/3433Recording 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 for load management
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Definitions

  • the present invention relates to an information processing apparatus, an information processing apparatus control method, and a program, and more particularly to an information processing apparatus having a communication apparatus and a processing apparatus, and a control apparatus for causing the processing apparatus to execute the information processing apparatus control method and control method.
  • a program for causing the processing apparatus to execute the information processing apparatus control method and control method.
  • the information processing apparatus includes a processing device that processes communication data and data other than communication data (hereinafter referred to as non-communication data), a communication device that transmits and receives communication data, and a communication device control unit that controls the communication device. .
  • the communication device control unit acquires from the processing device control unit a usage rate that represents a ratio of time for processing per unit time when the processing device processes communication data.
  • the communication device control unit sets a maximum data rate that represents the maximum value of the data transfer amount per unit time when communication data is transmitted and received based on the usage rate related to the acquisition.
  • the communication device control unit sets the maximum data rate when communication data is transmitted and received based on the usage rate of the processing device when the processing device processes communication data. As a result, the data transfer rate related to transmission / reception of communication data is suppressed, and the load on the processing device when the processing device processes communication data is suppressed. As a result, processing other than processing of communication data by the processing device can be secured.
  • This configuration has an effect that processing other than processing of communication data can be ensured as a result of controlling the data transfer rate related to transmission / reception of communication data.
  • FIG. 1 is a block diagram (part 1) illustrating a configuration of an information processing apparatus according to an embodiment; It is a block diagram (the 2) which shows the structure of the information processing apparatus which concerns on an Example. It is a figure for demonstrating registration to the kernel of the data transmission function of a network driver. It is a figure for demonstrating registration to the kernel of the data reception function of a network driver. It is a figure for demonstrating the measurement of the data transmission amount by a network driver. It is a figure for demonstrating the measurement of the usage rate of CPU which concerns on data transmission by a kernel. It is a flowchart for demonstrating the flow of the operation
  • the information processing apparatus dynamically changes the data transfer rate in consideration of the amount of CPU resources consumed by the network adapter and the network driver during data transmission / reception. As a result, the data transfer speed at the time of data transmission / reception can be controlled to an optimum value according to the performance of the CPU of the apparatus.
  • the data transfer speed at the time of data transmission / reception can be controlled to an optimum value regardless of the correlation between the performance of the CPU and the performance of the network driver. That is, the amount of data transmission can be suppressed to an appropriate amount according to the performance of the CPU, and the amount of interruption related to data reception can be suppressed to an appropriate amount according to the performance of the CPU.
  • the CPU usage rate that varies depending on the value of a control parameter related to an interrupt of data reception depends on the performance of the CPU.
  • the information processing apparatus has a configuration in which the value of the control parameter is appropriately set in order to suppress the CPU usage rate that varies depending on the value of the control parameter related to the data reception interrupt.
  • the control parameter in the case of the present embodiment, “maximum reception performance” set in the network adapter can be cited.
  • the network driver and the network adapter are provided with a configuration for dynamically controlling the data transfer speed according to the performance of the CPU.
  • “data transmission amount”, “data reception interrupt amount”, and “CPU usage rate” are correlated with each other, and the data transfer rate is dynamically changed according to the performance of the CPU. Control the usage rate to be kept at an appropriate value.
  • CPU usage rate refers to the percentage of the time during which a CPU performs a specific process during a unit time.
  • the user sets an upper limit value of the CPU usage rate that can be assigned to the processing of communication data.
  • 60% is set as the upper limit of the usage rate of the CPU allocated to processing of communication data.
  • This setting is for preventing the CPU usage rate from exceeding 60% regardless of the actual network traffic. With this setting, the remaining 40% of the usage rate of the CPU can be allocated to other data processing (such as an application).
  • the network driver In response to such a setting by the user, the network driver indicates to the user the amount of communication data traffic that can be processed within the range of the CPU usage rate related to the setting.
  • a user uses a network adapter having a data transfer rate capacity of 10 Gbps, and the user sets the upper limit of the CPU usage rate to be allocated to communication data processing to 50%.
  • the maximum traffic volume of communication data that can be processed within the upper limit of the usage rate of the CPU is 50%, for example, 5 Gbps. In that case, the value of 5 Gbps is shown to the user.
  • the maximum traffic volume of the communication data that can be processed within the upper limit of the CPU usage rate For example, 6 Gbps. In this case, the value of 6 Gbps is shown to the user.
  • the maximum performance of the network adapter of 10 Gbps may not be exhibited.
  • FIG. 1 is a block diagram illustrating a configuration of an information processing apparatus according to the present embodiment.
  • the information processing apparatus includes a main body 10 and a network adapter (also referred to as a network card) 30 as a communication apparatus.
  • the following is implemented as software on the main body 10.
  • An OS operating system, the same applies hereinafter
  • an application 11 for processing a command related to an interface with a user and a network driver 12 are installed.
  • the OS includes a kernel 13.
  • the network driver 12 has a configuration as a communication device control unit that controls the network adapter 30.
  • FIG. 2 is a block diagram for explaining the hardware configuration of the information processing apparatus.
  • the information processing apparatus is used for data exchange between the man-machine interface 20 and the main unit 10 and the network adapter 30.
  • a bus 40 is provided.
  • the main body 10 has a CPU 14 and a memory 15.
  • the CPU 14 executes various programs developed on the memory 15 to perform control operations for controlling the entire information processing apparatus, various arithmetic processes, and the like.
  • the various programs include an application 11 that processes the commands described above with reference to FIG. 1, a network driver 12, and an OS including a kernel 13.
  • the memory 15 includes a RAM, a ROM, and the like.
  • Various programs executed by the CPU 14 as described above are expanded and a work area is provided to the CPU 14.
  • the network adapter 30 includes a CPU 35, firmware 31, a buffer 32, and a network interface 33.
  • the CPU 35, firmware 31, buffer 32, and network interface 33 have the following configuration. That is, it has a configuration in which data is transmitted / received to / from another information processing apparatus via the transmission path 50 shown in FIG. 1 and the data is exchanged with the network driver 12 of the main body unit 10.
  • the man-machine interface 20 includes a display device 21 and an input device 22.
  • the display device 21 is composed of a CRT, a liquid crystal display device, and the like, and displays to the user the instruction content that the user has input to the information processing device via the input device 22, the calculation processing result by the CPU 14, and the like.
  • the input device 22 includes a keyboard, a mouse, and the like, and is used for inputting various instruction contents to the information processing device when operated by a user.
  • the network driver 12 determines whether the user uses the upper limit value of the usage rate of the CPU 14 that can be assigned to the processing of the communication data. It has a configuration for performing an operation of internally recording a value related to the setting.
  • the setting from the user is made via a command or the like by the application 11.
  • the user uses the display device 21 and the input device 22 of the man-machine interface 20 to set an upper limit value of the usage rate of the CPU 14 that can be assigned to the processing of communication data for the information processing device.
  • the processing of the communication data is executed by each configuration of a transmission data function and a reception data function of the network driver 12 described later.
  • the following commands can be used as commands used when the upper limit value of the usage rate of the CPU 14 that can be assigned to the communication data processing by the user is set. That is, a command using a known technique such as ioctl (that is, I / O Control) can be used.
  • ioctl means a system call for passing data and control instructions between the user space (commands, etc.) and the kernel space (drivers, etc.).
  • the network driver 12 has a configuration for recording an upper limit value of the usage rate of the CPU 14 that can be assigned to the processing of communication data set by the user as an internal variable.
  • the network driver 12 includes respective configurations of a data transmission function related to data transmission processing and a data reception function related to data reception processing.
  • the network driver 12 has a configuration for performing an operation of registering each of the data transmission function and the data reception function with the kernel 13 when the network driver 12 is activated.
  • This registration is performed in order for the network driver 12 to acquire from the kernel 13 the value of the usage rate of the CPU 14 related to the processing of communication data. This will be described later with reference to FIG.
  • This registration is performed using an API (Application Programming Interface) provided between the network driver 12 and the kernel 13.
  • API Application Programming Interface
  • the entry point of the data transmission function (that is, the part where the data transmission function is called from the upper protocol or application, xxx_tx () in FIG. 3) is registered in the kernel 13.
  • the kernel 13 records a range from the entry point of the data transmission function to a return (return in FIG. 3) as a measurement target, and performs an operation for returning a unique ID related to the recording to the network driver 12 It has a configuration.
  • an interrupt handler (xxx_intr () in FIG. 4) that is a caller of the data reception function is registered in the kernel 13.
  • the kernel 13 records from the interrupt handler up to the portion (in FIG. 4, xxx_recv ()) that the network driver 12 passes data to the higher-level protocol or application, and records the unique ID related to the recording as the network driver. 12 for performing the operation of returning to 12.
  • (3) Measurement of the amount of data related to transmission / reception After the network driver 12 registers the data transmission function and data reception function in the kernel 13 in the procedure (2), the network driver 12 periodically determines the amount of data transmitted / received at a certain time. It has a configuration for performing the recording operation.
  • transmission data amount the amount of data transmitted to the transmission line 50 via the network adapter 30 during the certain time T (hereinafter referred to as transmission data amount) is measured.
  • transmission data amount the amount of data transmitted to the transmission line 50 via the network adapter 30 during the certain time T.
  • data of the data amount indicated by txdata_size1 is transmitted in the first time zone of the time T.
  • data of the data amount indicated by txtdata_size2 is transmitted.
  • data having a data amount indicated by txdata_size3 is transmitted.
  • the network driver 12 has a variable (txdata_size_sum) indicating the total value of the transmission data amount.
  • the network driver 12 has a configuration for performing an operation of updating the variable every time data is transmitted via the network adapter 30.
  • the total amount of transmission data transmitted at a certain time T is calculated by the following calculation formula.
  • txtdata_size_sum txtdata_size1 + Txtdata_size2 + txtdata_size3
  • the variable txdata_size_sum indicating the total value of the data transmission data amount thus calculated is used in the data transmission operation described later with reference to FIG. 8 (step S12).
  • the total amount of data related to data reception (hereinafter referred to as received data amount) is also calculated by the same method.
  • Data received from the outside via the transmission path 50 is first processed by the network adapter 30.
  • the firmware 31 of the network adapter 30 has a configuration for performing interrupt processing (step S34 in FIG. 10) on the network driver 12 for the received data.
  • the network driver 12 has a configuration for performing an operation of receiving the interrupt processing in the interrupt handler portion described above with reference to FIG.
  • the data reception function of the network driver 12 has a configuration for performing an operation of delivering the data to the upper protocol or application when receiving the data related to the interrupt processing.
  • the firmware 31 of the network adapter 30 measures the amount of received data that has been received from the transmission path 50 and interrupted to the network driver 30 during the predetermined time T.
  • the variable rxdata_size_sum indicating the total value of the received data amount is used in the data reception operation of the firmware 31 described later with reference to FIG. 10 (step S32).
  • (4) Measurement of CPU usage rate The kernel 13 regularly occupies the entire operation time of the CPU 14 for the operation within the predetermined time T among the operations of the CPU 14 related to the processing of communication data by the network driver 12. The ratio of the operating time of the CPU 14 is measured and recorded. Note that the measurement and recording operations are executed at regular time intervals T in the operation of comparing the usage rate of the CPU 14 described later with reference to FIG. 7 (step S1).
  • the usage rate of the CPU 14 in this case means a ratio of time during which the CPU 14 performs an operation related to a specific function (data transmission function, data reception function, etc.) within the predetermined time T.
  • the data transmission function and the data reception function are registered in the kernel 13 in the procedure (2) described above with reference to FIGS.
  • FIG. 6 is a diagram for explaining measurement of the usage rate of the CPU 14.
  • the fixed time T indicates the same time as the fixed time T in FIG. Also in this case, as in FIG. 5, during the predetermined time T, the operation time of the CPU 14 related to the processing of a specific function when the CPU 14 executes the data transmission processing by the network adapter 30 is measured.
  • the first time zone t1 of the time T indicates the operation time of the CPU 14 related to the transmission of the data amount indicated by txdata_size1 described above with reference to FIG.
  • the time zone t2 indicates the operation time of the CPU 14 related to the transmission of the data amount indicated by txdata_size2 described above with reference to FIG.
  • the last time zone t3 of the time T indicates the operation time of the CPU 14 related to the transmission of the data amount indicated by txdata_size3 described above with reference to FIG.
  • the kernel 13 has a variable (cpu_usage [ID]) indicating the usage rate of the CPU 14 for each ID of the function (data transmission function, data reception function) registered as described above.
  • the usage rate of the CPU 14 is calculated by the following calculation formula.
  • cpu_usage [ID] (%) (t1 + t2 + t3) / T
  • the usage rate of the CPU 14 measured in this way is used in the operation of comparing the usage rates of the CPU 14, which will be described later with reference to FIG. 7 (steps S3 and S4).
  • the network driver 12 performs processing related to the data transmission function and the data reception function registered in the above procedure (2) from the kernel 13 periodically, that is, every fixed time T, that is, The usage rate of the CPU 14 related to communication data processing is acquired. That is, the network driver 12 acquires “the usage rate of the CPU 14 related to the operation of the data transmission function during a certain time T” measured and recorded by the kernel 13 in the procedure (4). Further, the network driver 12 obtains “the usage rate of the CPU 14 related to the operation of the data reception function at a certain time T” measured and recorded by the kernel 13 in the procedure (4).
  • each of the usage rate of the CPU 14 related to the operation of the data transmission function related to the acquisition and the usage rate of the CPU 14 related to the operation of the data reception function, and “the usage rate of the CPU 14 set by the user in the procedure (1) above”. Is compared with the upper limit value.
  • the maximum value of the data transmission rate at that time that is, data transmission related Maintain the setting value of (Maximum data rate) as the optimum value.
  • the setting value of the maximum data rate related to the data transmission is set to a predetermined speed. Decrease. This point will be described again later with FIG.
  • the set value of the maximum data rate related to the data transmission is used as a “target value of transmission performance” in the data transmission operation described later with reference to FIG. 8 (step S13). Further, the setting value of the maximum data rate related to the data transmission is appropriately adjusted as a value of the maximum performance related to transmission out of the maximum performance of transmission / reception in the operation of comparing the usage rate of the CPU 14 described later with reference to FIG. Is done.
  • the usage rate of the CPU 14 related to the operation of the data reception function related to the acquisition does not exceed the upper limit value of the usage rate related to the setting as a result of the comparison, the maximum value of the data reception speed at that time (for data reception)
  • the set value of the maximum data rate is maintained as an optimum value.
  • the setting value of the maximum data rate related to the data reception is set to a predetermined speed. Decrease. This point will be described again later with FIG.
  • the set value of the maximum data rate related to the data reception is used as a “reception performance target value” in the data reception operation by the firmware 31 described later with reference to FIG. 10 (step S33). Further, the setting value of the maximum data rate related to the data reception is appropriately adjusted as the value of the maximum performance related to reception among the maximum transmission / reception performance in the operation of comparing the usage rate of the CPU 14 described later with reference to FIG. 7 (step S5). Is done.
  • the process in which the network driver 12 acquires the usage rate of the CPU 14 from the kernel 13 uses an ID for each function (data transmission function and data reception function) acquired from the kernel 13 in the procedure (2) above. Made through. That is, the network driver 12 inquires the kernel 13 of the value of the usage rate of the CPU 14 by specifying the ID of the corresponding function. On the other hand, the kernel 13 returns to the network driver 12 the usage rate value of the CPU 14 related to the operation of the corresponding function, measured and recorded in the procedure (4).
  • the network driver 12 compares the usage rate value of the CPU 14 acquired at a certain time point with the upper limit value set by the user, periodically using a timer function or the like, that is, every fixed time T. Then, the set value of the maximum data rate for data transmission or the maximum data rate for data reception is appropriately adjusted according to the comparison result.
  • step S ⁇ b> 1 the network driver 12 instructs the kernel 13 to perform the procedure (4), that is, the procedure for measuring the usage rate of the CPU 14. Then, the passage of the predetermined time T is determined (step S2). After the elapse of the predetermined time T, the network driver 12 acquires the usage rate values of the respective CPUs 14 related to the operation of the data transmission function and the data reception function from the kernel 13 by the procedure (5) (step S3).
  • step S4 the network driver 12 compares the value of the usage rate of the CPU 14 related to the acquisition with the upper limit set by the user in the procedure (1) by the procedure (5). As a result of the comparison, if the upper limit value is not exceeded, the process proceeds to step S6 described later. If the upper limit value is exceeded as a result of the comparison, step S5 is executed. In step S5, if the value of the usage rate of the CPU 14 related to the operation of the data transmission function exceeds the upper limit value as a result of the comparison, the maximum data rate related to the data transmission is decreased by a predetermined rate.
  • the maximum data rate related to data transmission is compared with the actual transmission performance related to the calculation in step S12 as the target value of the transmission performance in step S13 during the data transmission operation described later with reference to FIG.
  • the actual transmission performance related to the calculation exceeds the target value, the data related to the current transmission request is not transmitted (step S16).
  • step S5 if the value of the usage rate of the CPU 14 related to the operation of the data reception function exceeds the upper limit value as a result of the comparison, the maximum data rate related to the data reception is decreased by a predetermined rate.
  • the maximum data rate related to data reception is the actual reception performance related to the calculation in step S32 as the target value of reception performance in step S33 during the data reception operation by the firmware 31 of the network adapter 30 described later with reference to FIG.
  • the data related to the current reception is stored in the queue of the network adapter 30 (step S36). In this case, the data related to the reception is not interrupted to the network driver 12 and does not become a load on the CPU 14.
  • step S6 the variable indicating the total value of the transmission data amount and the variable indicating the total value of the reception data amount recorded in the procedure (3) are each initialized to zero. The reason will be described later.
  • the setting values for the maximum data rate for data transmission and the maximum data rate for data reception can be specified in advance by the user as external variables.
  • the network driver 12 has a value for the predetermined speed, which is a reduction amount when the set value of the maximum data speed is lowered (step S5), as a default value. This value is also an external variable. It can also be specified by the user.
  • the network driver 12 calculates the data transmission performance up to that point every time one data is transmitted (step S12).
  • the firmware 31 calculates reception performance up to that point (step S32).
  • the operation of FIG. 7 is executed once every elapse of the predetermined time T.
  • variables indicating the total value of the transmission data amount and the total value of the reception data amount are initialized to zero every time T.
  • the network driver 12 can obtain the transmission performance within the time T for every fixed time T in the data transmission operation described later with reference to FIG.
  • the transmission performance calculated in step S12 in the operation of FIG. 8 at the time of data transmission immediately before the variable indicating the total value of the transmission data is initialized to zero is the time per time T. This is because the transmission performance is shown.
  • the firmware 31 of the network adapter 30 can obtain the reception performance within the time T for every fixed time T by the data reception operation described later with reference to FIG.
  • the reception performance calculated in step S32 during the operation of FIG. 10 at the time of reception of data immediately before the variable indicating the total value of the received data is initialized to zero is the time per time T. This is because the reception performance is shown.
  • the total value of the received data amount indicates the total value of the received data amount for which the firmware 31 has performed an interrupt process on the network driver 12 in response to the data reception.
  • the network driver 12 executes the initialization process of the variables indicating the total value of the transmission data amount and the total value of the reception data amount to zero in step S6 of FIG. It has the composition to do. It is also possible to adopt the following configuration different from such a configuration. That is, the network driver 12 performs the initialization process of the variable indicating the total value of the transmission data amount to zero as described above. On the other hand, the initialization process of the variable indicating the total value of the received data amount to zero is separately performed by the network adapter 30. In the case of this configuration, the network adapter 30 has a timer, and a variable rx_data_sum indicating the total value of the received data amount is initialized to zero at each predetermined time T by the timer.
  • the network driver 12 Upon receiving a data transmission request from a higher-level protocol, application, or the like (step S11), the network driver 12 first calculates transmission performance up to that point (step S12). As described above, the network driver 12 has a variable (txdata_size_sum) indicating the total value of the transmission data amount. As described above, the variable indicating the total transmission data amount is periodically initialized to zero in step S6 of FIG. The variable indicating the total value of the transmission data amount is updated by adding the data amount related to the transmission every time data is transmitted for a certain time T until the initialization as described above, and gradually increases. (Step S15). In step S12, the value of the variable indicating the total value of the transmission data amount is divided by the value of the predetermined time T.
  • the transmission performance calculated in step S12 for each data transmission also indicates the total value of the transmission data. Proportionally increases in proportion to the value of the variable.
  • the transmission performance calculated in step S12 in the operation of FIG. 8 at the time of transmission of data immediately before the variable indicating the total value of the transmission data is initialized to zero is the transmission per time T. Show performance.
  • step S13 it is determined whether or not the transmission performance obtained by the calculation in step S12 exceeds the maximum data rate related to the data transmission set as “data amount that can be transmitted in a certain time”.
  • the maximum data rate for data transmission is exceeded as a result of an increase in the transmission performance obtained in step S12 due to a data transmission request from a higher-level protocol or application.
  • the process proceeds to step S16, and the network driver 12 does not transfer the data related to the transmission request in step S11 to the network adapter 30.
  • the data is temporarily stored in a predetermined queue. Further, when this queue becomes full, this state is detected by a higher-level protocol or application. The operation in that case will be described later with reference to FIG.
  • step S13 the data related to the request in step S11 is transferred to the network adapter 30, and the data is transmitted to the transmission line 50 via the network adapter 30 (step S14).
  • step S15 the data amount related to the transmission is added as described above, and the variable indicating the total value of the transmission data amount is updated.
  • the “one data” refers to variable-length data that is equal to or less than the upper limit determined by the higher-level protocol or application.
  • FIG. 9 is a flowchart showing the flow of the upper protocol and application operation when the queue is full.
  • a procedure for the operation in this case, a procedure by a known technique can be used. That is, when a full state of the queue is detected, 1) a method of waiting for a transmission request is employed, or 2) a method of discarding data is employed.
  • the example of FIG. 9 is an example in the case of 2) adopting a method of discarding data.
  • the upper protocol or application executes the operation of FIG. 9 before making a data transmission request to the network driver 12 in step S11 of FIG.
  • processing of the data is started (step S21).
  • the total amount of data stored in the queue is confirmed (step S22), and it is determined whether the data in the queue exceeds a threshold indicating a storable range (step S23).
  • the network driver 12 is requested to transmit the data.
  • the network driver 12 receives the transmission request and starts the data transmission operation described above with reference to FIG.
  • step S23 determines whether the queue data exceeds a threshold indicating a storable range. If the result of determination in step S23 is that the queue data exceeds a threshold indicating a storable range, that is, if the queue is full, the data is discarded (step S25).
  • step S25 the upper protocol or application performs the following operation instead of step S25. That is, the operation of temporarily holding the transmission request, starting the flow of FIG. 9 again after a certain period of time, and performing the determination in step S23 again is repeated. If the queue full state has been resolved during that time, the operation of step S24 is performed, and the transmission request is executed.
  • the network driver 12 sets the “data size that can be received in a certain time”, which is the maximum data rate for data reception, to the network adapter 30. Thereafter, the firmware 31 of the network adapter 30 performs the following operation.
  • the firmware 31 first calculates reception performance up to that point (step S32).
  • the firmware 31 has a variable (rxdata_size_sum) indicating the total value of the received data amount.
  • the variable indicating the total amount of received data is periodically initialized to zero in step S6 of FIG.
  • the variable indicating the total value of the received data amount is related to the reception every time the data is received and the corresponding interrupt process is performed on the network driver 12 for a certain time T until the initialization.
  • the data amount is added and updated, and gradually increases (step S35).
  • step S32 the value of the variable indicating the total value of the received data amount is divided by the value of the fixed time T. Therefore, until the variable indicating the total value of the received data amount is initialized to zero every fixed time T, the reception performance calculated in step S32 every time data is received and interrupted is also the received data amount. In proportion to the increase in the value of the variable indicating the total value of, gradually increase. As described above, the reception performance calculated in step S32 in the operation of FIG. 10 when receiving data immediately before the variable indicating the total value of the received data is initialized to zero is the reception performance per time T. Show performance.
  • step S33 it is determined whether or not the reception performance obtained by the calculation in step S32 exceeds the maximum data rate related to the data reception set as “data amount that can be received in a certain time”.
  • the process proceeds to step S36.
  • step S36 the firmware 31 has a configuration in which data related to reception in step S31 is temporarily stored in a predetermined queue without being transferred to the main body unit 10. When the queue becomes full here, the received data is discarded by the network adapter 30. The data discarded here is subjected to a retransmission process according to the protocol operation of the data transmission source or is directly treated as a data lost.
  • FIG. 11 is a sequence diagram for explaining an example of the operation according to the procedures (3) to (5).
  • the upper limit value of the usage rate of the CPU 14 is set to 60% by the user by the procedure (1).
  • the initial value of the maximum data rate related to data transmission or reception is set to 1 Gbps, and the amount of decrease in the maximum data rate is set to 200 Mbps.
  • the network driver 12 acquires the usage rate of the CPU 14 by the above procedure (5), that is, the operations of steps S1 to S3 in FIG. 7 (steps S41 and S42).
  • the usage rate of the CPU 14 is acquired again (steps S45 and S46). It is assumed that the usage rate of the CPU 14 related to the acquisition is 60% (step S46). In this case, since it coincides with the upper limit value 60% (No in step S4 in FIG. 7), the current maximum data rate setting value (600 Mbps) is determined to be the optimum value and maintained. Thereafter, the same processing is repeated.
  • the process is repeated as described above, and the optimum setting value of the maximum data speed according to the performance of the CPU 14 of the main body 10 of the information processing apparatus in which the network adapter 30 is mounted is acquired. Is possible. Therefore, excessive consumption of CPU resources can be suppressed, and a situation that hinders processing of data other than communication data (that is, non-communication data) can be effectively prevented.
  • (6) Display of maximum data rate The network driver 12 displays the maximum data rate for data transmission and the maximum data rate for data reception in the above procedure (5), that is, during the operation of FIG. Get the set value.
  • the set value is indicated to the user as an “optimal maximum data rate” via a command or the like by the application 11. The user can set this value in the information processing apparatus.
  • the maximum data rate related to this data transmission is the target value of the transmission performance described in step S13 in FIG. Therefore, when the CPU 14 of the main body unit 10 performs the transmission process of the data amount exceeding the maximum data rate according to the setting, the determination result in Step S13 is No. As a result, step S16 is executed. Therefore, data transmission is stopped.
  • the maximum data rate for data reception is the target value of the reception performance described in step S33 in FIG. Accordingly, when the CPU 14 of the main body unit 10 processes the data amount that exceeds the maximum data rate according to the setting, the determination result in Step S33 is No. As a result, step S36 in FIG. 10 is executed. Therefore, the interruption related to the processing of the received data is stopped.
  • the information processing apparatus has the following configuration as described above with reference to FIG. In other words, when the measured usage rate of the CPU 14 related to the operation of the data transmission function exceeds the upper limit value, the operation is performed to reduce the maximum data rate related to data transmission by a predetermined rate.
  • This configuration is hereinafter simply referred to as “configuration for control related to data transmission”.
  • the information processing apparatus has the following configuration as described above with reference to FIG. In other words, when the measured usage rate of the CPU 14 related to the operation of the data reception function exceeds the upper limit value, there is also a configuration for performing an operation of reducing the maximum data rate related to data reception by a predetermined rate. This configuration is hereinafter simply referred to as “configuration for control related to data reception”. However, it is not necessarily limited to the configuration of such an embodiment.
  • the information processing apparatus may be an information processing apparatus having the following configuration.
  • the information processing apparatus has a configuration for control related to the data transmission, but does not have a configuration for control related to the data reception.
  • the information processing apparatus may be an information processing apparatus having the following configuration.
  • the information processing apparatus does not have a configuration for control related to the data transmission, but has a configuration for control related to the data reception.
  • the network driver 12 having the respective configurations of the data transmission function and the data reception function is provided in the main body 10 as described above with reference to FIGS.
  • the information processing apparatus is provided with a network adapter 30 including firmware 31 having a configuration for receiving data received from the transmission path 50 and transferring it to the main unit 10 as described above with reference to FIGS. .
  • firmware 31 having a configuration for receiving data received from the transmission path 50 and transferring it to the main unit 10 as described above with reference to FIGS.
  • it is not necessarily limited to the configuration of such an embodiment.
  • the information processing apparatus may be information processing having the following configuration.
  • the configuration of the network adapter 30 is incorporated in the main body unit 10. That is, instead of the configuration in which the two CPUs, the CPU 14 of the main body 10 and the CPU 35 of the network adapter 30, are provided in the above embodiment, one CPU is provided in the main body.
  • two types of software for processing communication data, the network driver 12 of the main body 10 and the firmware 31 of the network adapter 30 are provided.
  • one type of communication data processing software is provided in the main body.
  • the one type of communication data processing software has a configuration of the above two types of communication data processing software.
  • the information processing apparatus has both a configuration for control related to the data transmission and a configuration for control related to the data reception. However, instead of this, it has a configuration for control related to the data transmission, but may not have a configuration for control related to the data reception. Alternatively, it may have a configuration for control related to the data reception without having a configuration for control related to the data transmission.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 伝送路に接続され伝送路を介して通信データの送受信を行う通信装置と、通信データ及び非通信データの処理を行う処理装置と、通信データ及び非通信データの処理を処理装置に実行させる処理装置制御部と、通信装置を制御するとともに、処理装置が通信データの前記処理を行う場合の単位時間当たりの処理を行う時間の割合を表す使用率を前記処理装置制御部から取得し、前記取得した使用率に基づいて通信データの送受信を行う場合の単位時間当たりのデータ転送量の最大値を表す最大データ速度を設定する通信装置制御部を有する。

Description

情報処理装置、情報処理装置の制御方法及びプログラム
 本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに係り、特に通信装置及び処理装置を有する情報処理装置、同情報処理装置の制御方法及び同制御方法を処理装置に実行させるためのプログラムに関する。
 ネットワークアダプタを搭載したサーバ等のシステムにおいては、ネットワークドライバがCPU資源を過剰に消費することで、CPU上で動作している他の処理に影響を与えることがあった。具体的には、データ送信時に、ネットワークドライバがCPU資源を過剰に消費することがあった。またデータ受信時に、ネットワークドライバの割り込み処理がCPU資源を特に消費しやすい。ここで、このような割り込み処理に関し、一定時間間隔、或いは一定パケットごとに割り込みを行うように制御する方法が知られている。
特開2001―14243号公報 特開2000-284976号公報
 処理装置が通信データの処理を行う場合の負荷を抑制して通信データの処理以外の処理を確保し得る構成を提供することを目的とする。
 情報処理装置は通信データ及び、通信データ以外のデータ(以下非通信データと称する)を処理する処理装置と、通信データの送受信を行う通信装置と、通信装置を制御する通信装置制御部とを有する。通信装置制御部は、処理装置が通信データの処理を行う場合の単位時間当たりの処理を行う時間の割合を表す使用率を処理装置制御部から取得する。通信装置制御部は当該取得に係る使用率に基づいて、通信データの送受信を行う場合の単位時間当たりのデータ転送量の最大値を表す最大データ速度を設定する。
 この構成では、通信装置制御部が、処理装置が通信データの処理を行う場合の処理装置の使用率に基づいて、通信データの送受信を行う場合の最大データ速度を設定する。その結果通信データの送受信に係るデータ転送速度が抑制され、処理装置が通信データの処理を行う場合の処理装置の負荷が抑制される。その結果処理装置による、通信データの処理以外の処理を確保し得る。
 この構成は、通信データの送受信に係るデータ転送速度の制御により、結果的に通信データの処理以外の処理を確保し得るという効果を有する。
実施例に係る情報処理装置の構成を示すブロック図(その1)である。 実施例に係る情報処理装置の構成を示すブロック図(その2)である。 ネットワークドライバのデータ送信関数のカーネルへの登録について説明するための図である。 ネットワークドライバのデータ受信関数のカーネルへの登録について説明するための図である。 ネットワークドライバによる、データ送信量の計測について説明するための図である。 カーネルによる、データ送信に係るCPUの使用率の計測について説明するための図である。 ネットワークドライバによる、CPUの使用率の比較に係る動作の流れを説明するためのフローチャートである。 ネットワークドライバによる、データ送信の動作の流れを説明するためのフローチャートである。 ネットワークドライバによる、キューがフルの場合にキュー内のデータを廃棄する際の動作の流れを説明するためのフローチャートである。 ネットワークアダプタのファームウェアによる、データ受信の動作の流れを説明するためのフローチャートである。 ネットワークドライバによる、最大データ速度の設定の実例に係る動作の流れを説明するためのシーケンス図である。
符号の説明
 12 ネットワークドライバ
 13 カーネル
 14 CPU
 30 ネットワークアダプタ
 31 ファームウェア
 50 伝送路
 実施例に係る情報処理装置は、そのネットワークアダプタおよびネットワークドライバがデータ送受信時に消費するCPU資源の量を考慮してデータ転送速度を動的に変更する。その結果、データ送受信時のデータ転送速度を、装置のCPUの性能に応じて最適な値に制御することができる。
 この実施例に係る情報処理装置によれば、データ送受信時のデータ転送速度を、CPUの性能及びネットワークドライバの性能の相関関係に関わらず最適な値に制御することができる。すなわちデータ送信量を、CPUの性能に応じて適切な量に抑えるとともに、データ受信に係る割り込みの量を、CPUの性能に応じて適切な量に抑えることができる。
 ここで、あるデータ受信の割り込みに係る制御パラメータの値によって変動するCPUの使用率は、CPUの性能に依存する。実施例に係る情報処理装置は、データ受信の割り込みに係る制御パラメータの値によって変動するCPUの使用率を抑制するべく、当該制御パラメータの値を適切に設定する構成を有する。ここで前記制御パラメータとして、本実施例の場合、ネットワークアダプタに設定される「最大受信性能」等が挙げられる。
 本実施例による情報処理装置では、ネットワークドライバおよびネットワークアダプタに、CPUの性能に応じてデータ転送速度を動的に制御する構成を設ける。この構成により、「データ送信量」、「データ受信の割り込みの量」と「CPUの使用率」とをそれぞれ相互に関連つけ、CPUの性能に応じてデータ転送速度を動的に変更してCPUの使用率を適切な値に抑えるように制御する。
 ここで「CPUの使用率」とは、CPUが単位時間中に、ある特定の処理を行った時間の割合を%で表したものを指す。
 本実施例による情報処理装置に対し、利用者は通信データの処理に割り当て可能なCPUの使用率の上限値を設定する。ここで例えば通信データの処理に割り当てるCPUの使用率の上限として60%を設定したとする。この設定は、実際のネットワークのトラフィックによらず、CPUの使用率が60%以上とはならないようにするための設定である。この設定により、CPUの使用率のうち残りの40%を他のデータ処理(アプリケーションなど)に割り当てることが可能となる。
 このような利用者による設定を受け、ネットワークドライバは、当該設定に係るCPUの使用率の範囲内で処理可能な通信データのトラフィックの量を利用者に示す。
 例えばデータ転送速度の容量が10Gbpsのネットワークアダプタを使用し、通信データの処理に割り当てるCPUの使用率の上限を50%とする設定が利用者によりなされたとする。ここで当該CPUの使用率の上限が50%の範囲内で処理可能な通信データの最大トラフィック量が例えば5Gbpsであったとする。その場合、利用者に対し、当該5Gbpsの値が示される。同様に通信データの処理に割り当て可能なCPUの使用率の上限を60%とする設定が利用者によりなされた場合、当該CPUの使用率の上限の範囲内で処理可能な通信データの最大トラフィック量が例えば6Gbpsであったとする。この場合利用者に対し、当該6Gbpsの値が示される。このように、利用者の設定により通信データの処理に割り当て可能なCPUの使用率を上限を設定した場合、上記ネットワークアダプタの最大性能10Gbpsを発揮させることはできない場合があり得る。
 このような本実施例に係る情報処理装置の構成を、以下に、より詳細に説明する。
 図1は本実施例に係る情報処理装置の構成を示すブロック図である。
 図1に示す如く、当該情報処理装置は、本体部10と、通信装置としてのネットワークアダプタ(ネットワークカードと称される場合もある)30とを有する。本体部10には、ソフトウェアとして以下のものが実装されている。OS(オペレーティングシステム、以下同様)、利用者とのインタフェースに係るコマンドを処理するアプリケーション11及びネットワークドライバ12が実装されている。上記OSはカーネル13を含む。また、ネットワークドライバ12はネットワークアダプタ30を制御する通信装置制御部としての構成を有する。
 図2は当該情報処理装置のハードウェア構成を説明するためのブロック図である。
 図2に示す如く、当該情報処理装置は上記本体部10及びネットワークアダプタ30(ネットワークカードともいう)に加え、マンマシーンインタフェース20、及び本体部10とネットワークアダプタ30とのデータのやりとりに供されるバス40を有する。
 本体部10はCPU14及びメモリ15を有する。CPU14はメモリ15上に展開された各種プログラムを実行することにより、当該情報処理装置全体を制御する制御動作、各種演算処理等を行う。上記各種プログラムには図1とともに上記したコマンドを処理するアプリケーション11、ネットワークドライバ12及びカーネル13を含むOSが含まれる。メモリ15はRAM、ROM等を含み、上記の如くCPU14により実行される各種プログラムが展開されるとともに、CPU14に対しワークエリアを提供する。
 ネットワークアダプタ30はCPU35,ファームウェア31,バッファ32及びネットワークインタフェース33を含む。これらCPU35,ファームウェア31,バッファ32及びネットワークインタフェース33は以下の構成を有する。すなわち、図1に示す伝送路50を介し他の情報処理装置との間でデータの送受信を行い、当該データを本体部10のネットワークドライバ12との間で授受する構成を有する。
 マンマシーンインタフェース20は表示装置21及び入力装置22を有する。表示装置21はCRT,液晶表示装置等よりなり、利用者に対し、利用者が入力装置22を介し当該情報処理装置に対し入力した指示内容、CPU14による演算処理結果等を表示する。入力装置22はキーボード、マウス等を含み、利用者が操作することにより当該情報処理装置に対し各種の指示内容を入力するためのものである。
 以下に当該情報処理装置における各種制御動作の手順につき詳細に説明する。
(1)通信データの処理に割り当て可能なCPUの使用率の上限値の設定
 ネットワークドライバ12は、利用者による、通信データの処理に割り当て可能なCPU14の使用率の上限値の設定に応じ、同設定に係る値を内部的に記録する動作を行うための構成を有する。ここで利用者からの設定は上記アプリケーション11によるコマンド等を経由してなされる。
 具体的には、利用者はマンマシーンインタフェース20の表示装置21,入力装置22を利用し、当該情報処理装置に対し、通信データの処理に割り当て可能なCPU14の使用率の上限値を設定する。ここで通信データの処理は、後述するネットワークドライバ12の送信データ関数及び受信データ関数のそれぞれの構成により実行される。ここで利用者が上記通信データの処理に割り当て可能なCPU14の使用率の上限値を設定する際の使用されるコマンドとして以下のものを利用可能である。すなわち公知のioctl(すなわちI/O Control)等の技術によるコマンドを利用し得る。ここでioctlとは、ユーザ空間(コマンド等)とカーネル空間(ドライバ等)との間で、データや制御命令を受け渡すためのシステムコールを意味する。ネットワークドライバ12は、このようにして利用者により設定された通信データの処理に割り当て可能なCPU14の使用率の上限値を内部の変数として記録する動作を行うための構成を有する。
(2)データ送信関数及びデータ受信関数の登録
 ネットワークドライバ12はデータ送信の処理に係るデータ送信関数およびデータ受信の処理に係るデータ受信関数のそれぞれの構成を含む。ネットワークドライバ12はこれらデータ送信関数及びデータ受信関数の各々を、自身の起動時にカーネル13に対して登録する動作を行うための構成を有する。この登録は、ネットワークドライバ12が、通信データの処理に係るCPU14の使用率の値をカーネル13から取得するために行われる。この点については図6とともに後述する。この登録は、ネットワークドライバ12とカーネル13との間に設けられたAPI(Application Programming Interface)を利用して行われる。
 以下にその詳細について述べる。
 まずデータ送信関数の登録について説明する。データ送信関数のエントリポイント(すなわち上位のプロトコルやアプリケーションから当該データ送信関数が呼び出される部分、図3中、xxx_tx())がカーネル13に登録される。カーネル13は、当該データ送信関数のエントリポイントからリターン(図3中、return)の部分までの範囲を計測対象として記録し、当該記録に係る固有のIDをネットワークドライバ12に返す動作を行うための構成を有する。
 次にデータ受信関数の登録について説明する。この場合、データ受信関数の呼び出し元である割り込みハンドラ(図4中、xxx_intr())がカーネル13に登録される。カーネル13は、当該割り込みハンドラから、ネットワークドライバ12が上位のプロトコルやアプリケーションにデータを渡す部分(図4中、xxx_recv())までを計測対象として記録し、当該記録に係る固有のIDをネットワークドライバ12に返す動作を行うための構成を有する。
(3)送受信に係るデータ量の計測
 ネットワークドライバ12は、上記(2)の手順でデータ送信関数、データ受信関数をカーネル13に登録した後、定期的に、ある一定時間に送受信したデータ量を記録する動作を行うための構成を有する。
 データ送信の場合につき図5とともに説明する。ここでは、上記ある一定時間Tの間に、ネットワークアダプタ30を介し伝送路50に向かって送信されたデータの量(以下送信データ量と称する)を計測する。図5の例では、上記時間Tの最初の時間帯にtxdata_size1で示されるデータ量のデータが送信されている。次にtxdata_size2で示されるデータ量のデータが送信されている。そして上記時間Tの最後の時間帯にtxdata_size3で示されるデータ量のデータが送信されている。
 ネットワークドライバ12は送信データ量の合計値を示す変数(txdata_size_sum)を持っている。ネットワークドライバ12は、ネットワークアダプタ30を介してデータを送信するごとに当該変数を更新する動作を行うための構成を有する。図5の例の場合、一定時間Tに送信した送信データ量の合計は以下の計算式で算出される。

txdata_size_sum = txdata_size1 
+ txdata_size2 + txdata_size3

 このようにして算出されたデータ送信データ量の合計値を示す変数txdata_size_sumは、図8とともに後述するデータ送信の動作において(ステップS12)使用される。
 またデータ受信に係るデータ量(以下受信データ量と称する)の合計についても同様の方法で算出される。伝送路50を介して外部から受信されたデータは、まずネットワークアダプタ30により処理される。ここで上記ネットワークアダプタ30のファームウェア31は、当該受信されたデータにつき、ネットワークドライバ12に対し割り込み処理(図10中、ステップS34)を行うための構成を有する。ネットワークドライバ12は、図4とともに上記した割り込みハンドラの部分で当該割り込み処理を受ける動作を行うための構成を有する。またネットワークドライバ12のデータ受信関数は当該割り込み処理に係るデータを受けると上位のプロトコル或いはアプリケーションに同データを受け渡す動作を行うための構成を有する。上記ネットワークアダプタ30のファームウェア31は、上記一定時間Tの間に、伝送路50から受信された後にネットワークドライバ30に割り込み処理を行った受信データ量を計測する。当該受信データ量の合計値を示す変数rxdata_size_sumは、図10とともに後述するファームウェア31のデータ受信の動作にて(ステップS32)使用される。
(4)CPUの使用率の計測
 カーネル13はネットワークドライバ12による通信データの処理に係るCPU14の動作のうち、定期的に、上記一定時間T内の動作につき、CPU14の動作時間全体の中で占めるCPU14の動作時間の割合を計測して記録する。なお、当該計測及び記録の動作は、図7とともに後述するCPU14の使用率の比較の動作において(ステップS1)、一定時間Tごとに実行される。この場合のCPU14の使用率とは、上記一定時間T内にCPU14が特定の関数(データ送信関数、データ受信関数等)に係る動作を行った時間の割合を意味する。なお上記データ送信関数及びデータ受信関数につき、図3,図4とともに上述の(2)の手順でカーネル13に登録されている。
 図6はCPU14の使用率の計測について説明するための図である。図6中、上記一定時間Tは、図5における一定時間Tと同一の時間を示す。この場合も図5の場合同様、上記一定時間Tの間に、ネットワークアダプタ30によるデータ送信処理をCPU14が実行した際の、特定の関数の処理に係るCPU14の動作時間を計測する。図6の例では、上記時間Tの最初の時間帯t1が、図5とともに上記したtxdata_size1で示されるデータ量のデータの送信に係る、CPU14の動作時間を示す。同様に、次に時間帯t2が、図5とともに上記したtxdata_size2で示されるデータ量のデータの送信に係る、CPU14の動作時間を示す。そして上記時間Tの最後の時間帯t3が、図5とともに上記したtxdata_size3で示されるデータ量のデータの送信に係る、CPU14の動作時間を示す。
 カーネル13は、上記の如く登録された関数(データ送信関数、データ受信関数)のIDごとに、CPU14の使用率を示す変数(cpu_usage[ID])を持つ。CPU14の使用率は、図6の例の場合、以下の計算式で算出される。

cpu_usage[ID](%) = (t1+t2+t3)/T

 このようにして計測されたCPU14の使用率は、図7とともに後述する、CPU14の使用率の比較の動作において(ステップS3,S4)使用される。
(5)最大データ速度の設定
 ネットワークドライバ12は、定期的に、すなわち一定時間Tごとに、カーネル13から、上記(2)の手順で登録されたデータ送信関数、データ受信関数に係る処理、すなわち通信データの処理に係るCPU14の使用率を取得する。すなわちネットワークドライバ12は、上記(4)の手順でカーネル13が計測して記録した「一定時間Tにおける、データ送信関数の動作に係るCPU14の使用率」を取得する。またネットワークドライバ12は、上記(4)の手順でカーネル13が計測して記録した「一定時間Tにおける、データ受信関数の動作に係るCPU14の使用率」を取得する。そして当該取得に係るデータ送信関数の動作に係るCPU14の使用率及びデータ受信関数の動作に係るCPU14の使用率の各々と、上記(1)の手順で利用者により設定された「CPU14の使用率の上限値」とを比較する。
 比較の結果前記取得に係るデータ送信関数の動作に係るCPU14の使用率が前記設定に係る使用率の上限値を超えていない場合、その時点でのデータ送信速度の最大値(すなわちデータ送信に係る最大データ速度)の設定値を最適な値として維持する。他方、比較の結果前記取得に係るデータ送信関数の動作に係るCPU14の使用率が前記設定に係る使用率の上限値を超えていた場合、前記データ送信に係る最大データ速度の設定値を所定速度分下げる。この点につき、後ほど図7とともに再度説明する。
 ここで上記データ送信に係る最大データ速度の設定値は、図8とともに後述するデータ送信の動作において(ステップS13)、「送信性能の目標値」として使用される。また上記データ送信に係る最大データ速度の設定値は、図7とともに後述するCPU14の使用率の比較の動作において(ステップS5)、送受信の最大性能のうち送信に係る最大性能の値として、適宜調整される。
 同様に比較の結果前記取得に係るデータ受信関数の動作に係るCPU14の使用率が前記設定に係る使用率の上限値を超えていない場合、その時点でのデータ受信速度の最大値(データ受信に係る最大データ速度と称する)の設定値を最適な値として維持する。他方、比較の結果前記取得に係るデータ受信関数の動作に係るCPU14の使用率が前記設定に係る使用率の上限値を超えていた場合、前記データ受信に係る最大データ速度の設定値を所定速度分下げる。この点につき、後ほど図7とともに再度説明する。
 ここで上記データ受信に係る最大データ速度の設定値は、図10とともに後述するファームウェア31によるデータ受信の動作において(ステップS33)、「受信性能の目標値」として使用される。また上記データ受信に係る最大データ速度の設定値は、図7とともに後述するCPU14の使用率の比較の動作において(ステップS5)、送受信の最大性能のうち受信に係る最大性能の値として、適宜調整される。
 上記の如くネットワークドライバ12がカーネル13からCPU14の使用率を取得する処理は、上記(2)の手順でカーネル13から取得された関数(データ送信関数及びデータ受信関数)ごとのIDを用い、APIを介してなされる。すなわちネットワークドライバ12はカーネル13に対し該当する関数のIDを指定してCPU14の使用率の値を問い合わせる。これに対しカーネル13は上記(4)の手順で計測して記録した、該当する関数の動作に係るCPU14の使用率の値をネットワークドライバ12に返す。
 次に、上記(3)乃至(5)の手順の動作の流れにつき、図7乃至10のフローチャートとともに説明する。なお図7乃至10のフローチャートの動作は、それぞれ同時に並行して実行される。
 まず図7とともに上記CPU14の使用率の比較の動作の流れを説明する。
 ネットワークドライバ12は、タイマー関数等を利用して定期的に、すなわち一定時間Tごとに、ある時点で取得されたCPU14の使用率の値を、上記利用者の設定に係る上限値と比較する。そして比較結果に応じ、上記データ送信に係る最大データ速度或いはデータ受信に係る最大データ速度の設定値を適宜調整する。
 すなわち、図7中、ステップS1にて、ネットワークドライバ12はカーネル13に対し、上記(4)の手順、すなわちCPU14の使用率の計測の手順の実施を指示する。そして上記一定時間Tの経過を判断する(ステップS2)。一定時間Tの経過後、上記(5)の手順により、ネットワークドライバ12はカーネル13からデータ送信関数及びデータ受信関数の動作に係るそれぞれのCPU14の使用率の値を取得する(ステップS3)。
 そしてネットワークドライバ12はステップS4にて、上記(5)の手順により、当該取得に係るCPU14の使用率の値が、前記手順(1)で利用者から設定された上限値と比較する。比較の結果、上限値を超えていなかった場合、後述するステップS6に移行する。比較の結果上限値を超えていた場合、ステップS5を実行する。ステップS5では、上記比較の結果、データ送信関数の動作に係るCPU14の使用率の値が上限値を超えていた場合、上記データ送信に係る最大データ速度を所定速度分低下させる。なおデータ送信に係る最大データ速度は、図8とともに後述するデータ送信の動作中、ステップS13にて送信性能の目標の値として、ステップS12の計算に係る実際の送信性能と比較される。ここで計算に係る実際の送信性能が目標の値を超えていた場合、現在の送信依頼に係るデータは送信されない(ステップS16)。
 同様にステップS5にて、上記比較の結果、データ受信関数の動作に係るCPU14の使用率の値が上限値を超えていた場合、上記データ受信に係る最大データ速度を所定速度分低下させる。なおデータ受信に係る最大データ速度は、図10とともに後述するネットワークアダプタ30のファームウェア31によるデータ受信の動作中、ステップS33にて受信性能の目標の値として、ステップS32の計算に係る実際の受信性能と比較される。ここで計算に係る実際の受信性能が目標の値を超えていた場合、現在の受信に係るデータはネットワークアダプタ30のキューに保存される(ステップS36)。この場合当該受信に係るデータにつき、ネットワークドライバ12に対する割り込みがなされずCPU14の負荷とならない。
 ステップS6では、上記(3)の手順で記録された送信データ量の合計値を示す変数及び受信データ量の合計値を示す変数が、それぞれゼロに初期化される。その理由は後述する。
 上記データ送信に係る最大データ速度及びデータ受信に係る最大データ速度の各々の設定値は、外部変数として利用者が予め指定することもできる。またこれらの最大データ速度の設定値を低下させる場合(ステップS5)の下げ幅である前記所定速度分の値は、ネットワークドライバ12がデフォルト値として予めで持っているが、この値も外部変数として利用者が指定することもできる。
 図8とともに後述するように、データ送信の動作の場合、ネットワークドライバ12は、データを一つ送信するごとに、その時点迄のデータの送信性能を計算する(ステップS12)。同様に図10とともに後述するように、データ受信の場合、ネットワークアダプタ30がデータを一つ受信するごとに、ファームウェア31がその時点迄の受信性能を計算する(ステップS32)。
 ここで上記したステップS2にて一定時間Tの経過が判断されるため、図7の動作は一定時間Tの経過ごとに一回実行される。その結果上記の如く、送信データ量の合計値及び受信データ量の合計値のそれぞれを示す変数が時間Tごとにゼロに初期化される。このため、ネットワークドライバ12は図8とともに後述するデータ送信の動作にて、一定時間Tごとに、当該時間T内の送信性能を得ることができる。これは後述する如く、送信データ量の合計値を示す変数がゼロに初期化される直前のデータの送信の際の図8の動作中のステップS12で算出される送信性能が、時間T当たりの送信性能を示すからである。
 同様にネットワークアダプタ30のファームウェア31は図10とともに後述するデータ受信の動作にて、一定時間Tごとに、当該時間T内の受信性能を得ることができる。これは後述する如く、受信データ量の合計値を示す変数がゼロに初期化される直前のデータの受信の際の図10の動作中のステップS32で算出される受信性能が、時間T当たりの受信性能を示すからである。但しデータ受信の場合、受信データ量の合計値とは、ファームウェア31がデータの受信に応じてネットワークドライバ12に対し割り込み処理を行った分の受信データ量の合計値を指す。
 なお、本実施例では上記の如く、送信データ量の合計値及び受信データ量の合計値のそれぞれを示す変数のゼロへの初期化の処理は、図7のステップS6にてネットワークドライバ12が実行する構成を有する。このような構成とは異なる、以下の構成とすることも可能である。すなわち、送信データ量の合計値を示す変数のゼロへの初期化の処理は上記同様ネットワークドライバ12が実行する構成とする。他方、受信データ量の合計値を示す変数のゼロへの初期化の処理は別途ネットワークアダプタ30で行う構成とする。この構成の場合ネットワークアダプタ30がタイマーを有し、同タイマーにより、受信データ量の合計値を示す変数rx_data_sumが上記一定時間Tごとにゼロに初期化される。
 図8とともに、ネットワークドライバ12によるデータ送信の動作の流れを説明する。
 上位のプロトコル、アプリケーション等からデータの送信依頼を受ける(ステップS11)と、ネットワークドライバ12はまず、その時点迄の送信性能を計算する(ステップS12)。上記の如く、ネットワークドライバ12は送信データ量の合計値を示す変数(txdata_size_sum)を持っている。この送信データ量の合計値を示す変数は上記の如く、図7のステップS6にて定期的にゼロに初期化される。当該送信データ量の合計値を示す変数は、このように初期化されるまでの一定時間Tの間、データを送信するごとに当該送信に係るデータ量が加算されて更新され、徐々に増加する(ステップS15)。上記ステップS12では、この送信データ量の合計値を示す変数の値が一定時間Tの値で除算される。したがって当該送信データ量の合計値を示す変数が一定時間Tごとにゼロに初期化される迄は、データの送信ごとにステップS12で計算される送信性能も、上記送信データ量の合計値を示す変数の値の増加に比例し、徐々に増加する。そして、前記の如く送信データ量の合計値を示す変数がゼロに初期化される直前のデータの送信の際の図8の動作中のステップS12で算出される送信性能が、時間T当たりの送信性能を示す。
 ステップS13では、ステップS12の計算で得られた送信性能が、「一定時間に送信可能とするデータ量」として設定される、上記データ送信に係る最大データ速度を超えているかが判断される。ここで例えば上位のプロトコルやアプリケーションからデータ送信依頼によって、ステップS12で得られる送信性能が増加した結果前記データ送信に係る最大データ速度を超えたとする。その場合(ステップS13のYes)、ステップS16に移行し、ネットワークドライバ12は、ステップS11の送信依頼に係るデータをネットワークアダプタ30に転送しない。この場合当該データは所定のキューに一時的に保存される。さらにこのキューがフルの状態となった場合、上位のプロトコルやアプリケーションによりこの状態が検知される。その場合の動作については図9とともに後述する。
 他方ステップS13の判断結果がNoの場合、ステップS11の依頼に係るデータがネットワークアダプタ30に転送され、ネットワークアダプタ30を介し、当該データが伝送路50に対し送信される(ステップS14)。この場合ステップS15にて、上記の如く当該送信に係るデータ量を加算して上記送信データ量の合計値を示す変数が更新される。なお上記「1つのデータ」とは、上記上位のプロトコルやアプリケーションで決められた上限値以下の可変長のデータを指す。
 図9は上記キューがフルの状態になった場合に関する、上位のプロトコルやアプリケーションの動作の流れを示すフローチャートである。この場合の動作の手順としては公知の技術による手順を利用可能である。すなわちキューのフル状態を検知した場合、1)送信依頼を待ち合わせる方法を採るか或いは2)データを廃棄する方法を採る。図9の例は2)データを廃棄する方法を採る場合の例である。
 上記上位のプロトコル或いはアプリケーションは、図8のステップS11においてデータの送信依頼をネットワークドライバ12に対し行う前に、図9の動作を実行する。図9中、当該データの処理を開始する(ステップS21)。そして前記キューに保存されているデータの総量を確認し(ステップS22),当該キューのデータが保存可能な範囲を示す閾値を超えているか判断する(ステップS23)。その結果当該キューのデータが保存可能な範囲を示す閾値を超えていない場合、ステップS24にて、ネットワークドライバ12に対し、当該データの送信依頼を行う。ネットワークドライバ12は当該送信依頼を受け、図8とともに上述したデータ送信の動作を開始する。
 他方ステップS23の判断の結果キューのデータが保存可能な範囲を示す閾値を超えていた場合、すなわちキューがフルの状態であった場合、当該データを廃棄する(ステップS25)。
 なお、上記1)送信依頼を待ち合わせる方法の場合、上記ステップS25の代わりに、当該上位のプロトコル或いはアプリケーションは以下の動作を行う。すなわち当該送信依頼を一旦保留とし、一定時間経過後再び図9のフローを起動し、再度ステップS23の判断を行う、という動作を繰り返す。その間にキューのフルの状態が解消していた場合、ステップS24の動作を実施し、当該送信依頼を実行に移す。
 次に図10とともに、ネットワークアダプタ30のファームウェア31によるデータ受信の動作の流れを説明する。データ受信の場合、まずネットワークドライバ12がネットワークアダプタ30に対し、上記データ受信に係るデータ最大速度である「一定時間に受信可能とするデータサイズ」を設定する。その後、ネットワークアダプタ30のファームウェア31が以下の動作を行う。
 すなわち、ネットワークアダプタ30が伝送路50からデータを受信する(ステップS31)と、ファームウェア31はまず、その時点迄の受信性能を計算する(ステップS32)。ここでファームウェア31は、上記受信データ量の合計値を示す変数(rxdata_size_sum)を持っている。この受信データ量の合計値を示す変数は上記の如く、図7のステップS6にて定期的にゼロに初期化される。当該受信データ量の合計値を示す変数は、このように初期化されるまでの一定時間Tの間、データを受信し対応する割り込み処理をネットワークドライバ12に対して行うごとに、当該受信に係るデータ量が加算されて更新され、徐々に増加する(ステップS35)。
 上記ステップS32では、この受信データ量の合計値を示す変数の値が一定時間Tの値で除算される。したがって当該受信データ量の合計値を示す変数が一定時間Tごとにゼロに初期化される迄は、データを受信して割り込みを行うごとにステップS32で計算される受信性能も、上記受信データ量の合計値を示す変数の値の増加に比例し、徐々に増加する。そして、前記の如く受信データ量の合計値を示す変数がゼロに初期化される直前のデータの受信の際の図10の動作中のステップS32で算出される受信性能が、時間T当たりの受信性能を示す。
 ステップS33では、ステップS32の計算で得られた受信性能が、「一定時間に受信可能とするデータ量」として設定される、上記データ受信に係る最大データ速度を超えているかが判断される。ここで例えば伝送路50を通じてネットワークアダプタ30が受信するデータ量が増加し、ステップS32で得られる受信性能が増加したとする。この場合、当該受信性能が上記データ受信に係る最大データ速度を超えた場合(ステップS33のYes)、ステップS36に移行する。ステップS36でファームウェア31は、ステップS31の受信に係るデータを本体部10に転送せずに所定のキューに一時的に保存する構成を有する。ここでキューがフルになった場合は、前記受信したデータはネットワークアダプタ30にて廃棄される。ここで廃棄されたデータは、データの送信元のプロトコル動作にしたがって再送処理に供されるか、或いはそのままデータロストとして扱われる。
 図11は上記(3)乃至(5)の手順による動作の実例を説明するためのシーケンス図である。この例の場合、上記(1)の手順により、CPU14の使用率の上限値が利用者により60%と設定されている。またデータ送信または受信に係る最大データ速度の初期値が1Gbpsに設定され、当該最大データ速度の下げ幅が200Mbpsとされている。
 図11中、ネットワークドライバ12は上記手順(5)、すなわち図7中、ステップS1乃至S3の動作により、CPU14の使用率を取得する(ステップS41,S42)。ここでは図示の如く、当該取得に係るCPU14の使用率が100%であったとする(ステップS42)。上記上限値60%を超えている(図7中、ステップS4のYes)ため、上記下げ幅200Mbpsの速度分、最大データ速度の設定値を下げる(同ステップS5)。すなわち1Gbps―200Mbps=800Mbps。
 再びCPU14の使用率を取得する(ステップS43,S44)。当該取得に係るCPU14の使用率が80%であったとする(ステップS44)。依然として上記上限値60%を超えているため、上記下げ幅200Mbpsの速度分、最大データ速度の設定値を下げる。すなわち800Gbps―200Mbps=600Mbps。
 再びCPU14の使用率を取得する(ステップS45,S46)。当該取得に係るCPU14の使用率が60%であったとする(ステップS46)。この場合上記上限値60%と一致する(図7中、ステップS4のNo)ため、現在の最大データ速度の設定値(600Mbps)を最適値と判断して維持する。以後も同様の処理を繰り返す。
 本実施例の情報処理装置では、以上のように処理を繰り返し、ネットワークアダプタ30が搭載された情報処理装置の本体部10のCPU14の性能に応じた最適なデータ最大速度の設定値を取得することが可能となる。したがってCPU資源の過剰な消費を抑えることができ、通信データ以外のデータ(すなわち非通信データ)の処理に支障を来す事態を効果的に防止し得る。
(6)最大データ速度の表示
 ネットワークドライバ12は、上記手順(5)、すなわち図7の動作中、ステップS4のNoの場合のデータ送信に係る最大データ速度及びデータ受信に係る最大データ速度のそれぞれの設定値を得る。当該設定値は「最適な最大データ速度」として、アプリケーション11によるコマンド等を経由して利用者に示される。利用者は、この値を当該情報処理装置に設定しておくことができる。その結果利用者は、次回からは、上記手順(3)乃至(5)を経ることなく、当該情報処理装置の起動時から、前記最適な最大データ速度を設定することができる。すなわちデータ送信に係る最適な最大データ速度をネットワークドライバ12に設定し、データ受信に係る最適な最大データ速度をネットワークアダプタ30のファームウェア31に設定する。
 このデータ送信に係る最大データ速度は図8中、ステップS13に記載の送信性能の目標値である。したがって、当該設定に係る最大データ速度を超えるデータ量の送信処理が本体部10のCPU14によってなされた場合、上記ステップS13の判断結果がNoとなる。その結果ステップS16が実行される。よってデータ送信が停止される。
 同様にデータ受信に係る最大データ速度は図10中、ステップS33に記載の受信性能の目標値である。したがって、当該設定に係る最大データ速度を超えるデータ量の処理が本体部10のCPU14によってなされると、上記ステップS33の判断結果がNoとなる。その結果図10のステップS36が実行される。よって受信データの処理に係る割り込みが停止される。
 このように、通信データの処理によってCPU14に過剰な負荷が掛かることが防止される。したがって最適なデータ送受信量および最適なCPU14の使用率にて情報処理装置を動作させることが可能となる。
 なお上記実施例に係る情報処理装置は、図7等とともに上述の如く、以下の構成を有する。すなわち、計測された、データ送信関数の動作に係るCPU14の使用率が上限値を超える場合、データ送信に係る最大データ速度を所定速度分低下させる動作を行うための構成を有している。当該構成を、以下単に「データ送信に係る制御のための構成」と称する。更に同情報処理装置は、図7等とともに上述の如く、以下の構成をも有する。すなわち、計測された、データ受信関数の動作に係るCPU14の使用率が上限値を超える場合、データ受信に係る最大データ速度を所定速度分低下させる動作を行うための構成をも有する。当該構成を、以下単に「データ受信に係る制御のための構成」と称する。しかしながら必ずしもこのような実施例の構成に限定される必要はない。
 すなわち第1の変形例に係る情報処理装置として、以下の構成を有する情報処理装置としてよい。当該情報処理装置は、上記データ送信に係る制御のための構成を有するが、上記データ受信に係る制御のための構成は有しない。
 また第2の変形例に係る情報処理装置として、以下の構成を有する情報処理装置としてよい。当該情報処理装置は、上記データ送信に係る制御のための構成は有しないが、上記データ受信に係る制御のための構成を有する。
 また、前記実施例に係る情報処理装置には、図1,2等とともに上記の如く、データ送信関数及びデータ受信関数のそれぞれの構成を有するネットワークドライバ12を本体部10に設けている。また同情報処理装置には、図1,2等とともに上記の如く、伝送路50から受信されたデータを受信して本体部10に転送する構成を有するファームウェア31を含むネットワークアダプタ30を設けている。しかしながら必ずしもこのような実施例の構成に限定される必要はない。
 すなわち第3の変形例に係る情報処理装置として、以下の構成を有する情報処理としてもよい。当該情報処理装置では、上記ネットワークアダプタ30の構成を本体部10に組み込む。すなわち上記実施例における、本体部10のCPU14及びネットワークアダプタ30のCPU35という2台のCPUを設ける構成に代え、本体部において1台のCPUを設けるようにする。また上記実施例では、本体部10のネットワークドライバ12及びネットワークアダプタ30のファームウェア31という2種の通信データ処理用のソフトウェアを設けている。このような構成に代え、本体部において1種の通信データ処理用のソフトウェアを設けるようにする。当該1種の通信データ処理用のソフトウェアは、上記2種の通信データ処理用のソフトウェアの構成を併せ持つ。また当該情報処理装置は、上記データ送信に係る制御のための構成及び上記データ受信に係る制御のための構成を併せ持つ。しかしながらこれに代え、上記データ送信に係る制御のための構成を有するが、上記データ受信に係る制御のための構成は有しないものとしてもよい。或いは上記データ送信に係る制御のための構成を有さず、上記データ受信に係る制御のための構成を有するものとしてもよい。
 これ以外にも、以下の請求の範囲の欄の各請求項に記載の範囲で様々な変形例が可能である。

Claims (21)

  1.  伝送路に接続され、前記伝送路を介して通信データの送受信を行う通信装置と、
     前記通信データ及び前記通信データ以外のデータである非通信データの処理を行う処理装置と、
     前記通信データ及び前記非通信データの処理を、前記処理装置に実行させる処理装置制御部と、
     前記通信装置を制御するとともに、前記処理装置が前記通信データの前記処理を行う場合の単位時間当たりの処理を行う時間の割合を表す使用率を、前記処理装置制御部から取得し、前記取得した使用率に基づいて、前記通信データの送受信を行う場合の単位時間当たりのデータ転送量の最大値を表す最大データ速度を設定する通信装置制御部とを有することを特徴とする情報処理装置。
  2.  前記通信装置制御部は、
     所定時間経過ごとに、前記処理装置制御部から前記使用率を取得することを特徴とする請求項1記載の情報処理装置。
  3.  前記通信装置制御部は、
     前記処理装置制御部から取得した前記使用率が、所定値を超えている場合に、前記最大データ速度を所定速度分下げることを特徴とする請求項1または2記載の情報処理装置。
  4.  前記通信装置制御部は、
     送信に係る通信データのサイズの合計値を表す送信データサイズ合計値と、受信に係る通信データのサイズの合計値を表す受信データサイズ合計値とを、定期的に初期化することにより、前記通信装置の転送速度を算出することを特徴とする請求項1乃至3のうちの何れか一項記載の情報処理装置。
  5.  前記送信に係る通信データのサイズの合計値は、前記通信装置が送信する通信データのサイズの合計値であって、前記通信装置制御部が、前記通信データの送信ごとに算出するものとされ、
     前記受信に係る通信データのサイズの合計値は、前記通信装置が受信して前記通信装置制御部に転送する通信データのサイズの合計値であって、前記通信装置が、前記通信データを転送するごとに算出するものとされてなることを特徴とする請求項4記載の情報処理装置。
  6.  前記通信装置制御部は、通信データの送信を行う場合、前記最大データ速度を当該通信装置制御部に設定することを特徴とする請求項1に記載の情報処理装置。
  7.  前記通信装置制御部は、通信データの受信を行う場合、前記最大データ速度を前記通信装置に設定することを特徴とする請求項1に記載の情報処理装置。
  8.  伝送路に接続され、前記伝送路を介して通信データの送受信を行う通信装置と、
     前記通信データ及び前記通信データ以外のデータである非通信データの処理を行う処理装置とを有する情報処理装置の制御方法であって、
     処理装置制御部が前記通信データ及び前記非通信データの処理を、前記処理装置に実行させるステップと、
     通信装置制御部が、前記通信装置を制御するとともに、前記処理装置が前記通信データの前記処理を行う場合の単位時間当たりの処理を行う時間の割合を表す使用率を、前記処理装置制御部から取得し、前記取得した使用率に基づいて、前記通信データの送受信を行う場合の単位時間当たりのデータ転送量の最大値を表す最大データ速度を設定するステップとを有することを特徴とする情報処理装置の制御方法。
  9.  前記通信装置制御部が、所定時間経過ごとに、前記処理装置制御部から前記使用率を取得するステップを有することを特徴とする請求項8記載の情報処理装置の制御方法。
  10.  前記通信装置制御部が、前記処理装置制御部から取得した前記使用率が、所定値を超えている場合に、前記最大データ速度を所定速度分下げるステップを有することを特徴とする請求項8または9記載の情報処理装置の制御方法。
  11.  前記通信装置制御部は、
     送信に係る通信データのサイズの合計値を表す送信データサイズ合計値と、受信に係る通信データのサイズの合計値を表す受信データサイズ合計値とを、定期的に初期化することにより、前記通信装置の転送速度を算出することを特徴とする請求項8乃至10のうちの何れか一項記載の情報処理装置の制御方法。
  12.  前記送信に係る通信データのサイズの合計値は、前記通信装置が送信する通信データのサイズの合計値であって、前記通信装置制御部が、前記通信データの送信ごとに算出するものとされ、
     前記受信に係る通信データのサイズの合計値は、前記通信装置が受信して前記通信装置制御部に転送する通信データのサイズの合計値であって、前記通信装置が、前記通信データを転送するごとに算出するものとされてなることを特徴とする請求項11記載の情報処理装置の制御方法。
  13.  前記通信装置制御部は、通信データの送信を行う場合、前記最大データ速度を当該通信装置制御部に設定することを特徴とする請求項8に記載の情報処理装置の制御方法。
  14.  前記通信装置制御部は、通信データの受信を行う場合、前記最大データ速度を前記通信装置に設定することを特徴とする請求項8に記載の情報処理装置の制御方法。
  15.  伝送路に接続され、前記伝送路を介して通信データの送受信を行う通信装置と、
     前記通信データ及び前記通信データ以外のデータである非通信データの処理を行う処理装置とを有する情報処理装置の動作を制御するためのプログラムであって
     前記通信データ及び前記非通信データの処理を、前記処理装置に実行させる処理装置制御部と、
     前記通信装置を制御するとともに、前記処理装置が前記通信データの前記処理を行う場合の単位時間当たりの処理を行う時間の割合を表す使用率を、前記処理装置制御部から取得し、前記取得した使用率に基づいて、前記通信データの送受信を行う場合の単位時間当たりのデータ転送量の最大値を表す最大データ速度を設定する通信装置制御部として前記処理装置を機能させるためのプログラム。
  16.  前記通信装置制御部は、
     所定時間経過ごとに、前記処理装置制御部から前記使用率を取得することを特徴とする請求項15記載のプログラム。
  17.  前記通信装置制御部は、
     前記処理装置制御部から取得した前記使用率が、所定値を超えている場合に、前記最大データ速度を所定速度分下げることを特徴とする請求項15または16記載のプログラム。
  18.  前記通信装置制御部は、
     送信に係る通信データのサイズの合計値を表す送信データサイズ合計値と、受信に係る通信データのサイズの合計値を表す受信データサイズ合計値とを、定期的に初期化することにより、前記通信装置の転送速度を算出することを特徴とする請求項15乃至17のうちの何れか一項記載のプログラム。
  19.  前記送信に係る通信データのサイズの合計値は、前記通信装置が送信する通信データのサイズの合計値であって、前記通信装置制御部が、前記通信データの送信ごとに算出するものとされ、
     前記受信に係る通信データのサイズの合計値は、前記通信装置が受信して前記通信装置制御部に転送する通信データのサイズの合計値であって、前記通信装置が、前記通信データを転送するごとに算出するものとされてなることを特徴とする請求項18記載のプログラム。
  20.  前記通信装置制御部は、通信データの送信を行う場合、前記最大データ速度を当該通信装置制御部に設定することを特徴とする請求項15に記載のプログラム。
  21.  前記通信装置制御部は、通信データの受信を行う場合、前記最大データ速度を前記通信装置に設定することを特徴とする請求項15に記載のプログラム。
PCT/JP2008/059915 2008-05-29 2008-05-29 情報処理装置、情報処理装置の制御方法及びプログラム WO2009144797A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2008/059915 WO2009144797A1 (ja) 2008-05-29 2008-05-29 情報処理装置、情報処理装置の制御方法及びプログラム
JP2010514291A JP5338812B2 (ja) 2008-05-29 2008-05-29 情報処理装置、情報処理装置の制御方法及びプログラム
US12/926,230 US20110055421A1 (en) 2008-05-29 2010-11-03 Information processing apparatus, method for controlling information processing apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/059915 WO2009144797A1 (ja) 2008-05-29 2008-05-29 情報処理装置、情報処理装置の制御方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/926,230 Continuation US20110055421A1 (en) 2008-05-29 2010-11-03 Information processing apparatus, method for controlling information processing apparatus, and program

Publications (1)

Publication Number Publication Date
WO2009144797A1 true WO2009144797A1 (ja) 2009-12-03

Family

ID=41376696

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/059915 WO2009144797A1 (ja) 2008-05-29 2008-05-29 情報処理装置、情報処理装置の制御方法及びプログラム

Country Status (3)

Country Link
US (1) US20110055421A1 (ja)
JP (1) JP5338812B2 (ja)
WO (1) WO2009144797A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808363A (zh) * 2016-03-11 2016-07-27 浪潮通用软件有限公司 一种基于Active MQ消息队列实现异步执行的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168136A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd Ipl処理方式
JP2002325114A (ja) * 2001-04-26 2002-11-08 Matsushita Graphic Communication Systems Inc ソフトウェアモデム及びその通信速度設定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816456B1 (en) * 2000-02-04 2004-11-09 At&T Corp. Methods and apparatus for network use optimization
US20060007856A1 (en) * 2004-06-07 2006-01-12 Nokia Corporation Backpressure method on multiplexed links
JP4046724B2 (ja) * 2004-12-01 2008-02-13 富士通株式会社 輻輳制御プログラム、輻輳制御装置及び輻輳制御方法
JP2007184771A (ja) * 2006-01-06 2007-07-19 Toshiba Corp 移動通信端末

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168136A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd Ipl処理方式
JP2002325114A (ja) * 2001-04-26 2002-11-08 Matsushita Graphic Communication Systems Inc ソフトウェアモデム及びその通信速度設定方法

Also Published As

Publication number Publication date
JP5338812B2 (ja) 2013-11-13
JPWO2009144797A1 (ja) 2011-09-29
US20110055421A1 (en) 2011-03-03

Similar Documents

Publication Publication Date Title
US10015104B2 (en) Processing received data
US7362705B2 (en) Dynamic load-based credit distribution
JP5342658B2 (ja) I/o駆動の速度適応のための方法およびシステム
US8214552B2 (en) Transmission apparatus, transmission method, communication apparatus, and program
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
US9152459B2 (en) Adjusting thread priority to improve throughput between peer-to-peer (P2P) devices
JP5362801B2 (ja) データ送信方法及び装置
CN108092908B (zh) 控制流量的方法和发送端设备
EP2865224A2 (en) System and method for reducing power consumption in a wireless communication system
JP2008129846A (ja) データ処理装置、データ処理方法およびプログラム
EP2561660A1 (en) Controlling data transmission over a network
JP6711339B2 (ja) 通信処理装置、プログラム、および通信処理方法
JP5338812B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US20120047294A1 (en) Communication apparatus
US10250722B2 (en) TCP traffic priority bandwidth management control based on TCP window adjustment
JP2009278532A (ja) 送信装置及び輻輳制御方法
US20080056290A1 (en) Controlling the data-packet transmit interval of network dependent applications (nda)using device driver feedback
JP2011116083A (ja) 印刷装置及びその制御方法、プログラム
KR100764772B1 (ko) 휴대 단말기의 전송 제어 방법 및 장치
US20050114498A1 (en) Method and apparatus for managing data transfer in a data processing system
JP5169848B2 (ja) サーバー装置における省電力方法、省電力制御プログラム及びサーバー装置
CN113206699B (zh) 一种发送速率调整方法及装置
KR102471228B1 (ko) 네트워크의 패킷 흐름에 대한 공격성 파라미터 동적 제어 방법 및 장치
WO2017051860A1 (ja) データ通信装置、データ通信制御方法及びプログラム
JP2001197128A (ja) ソフトウェアモデム

Legal Events

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

Ref document number: 08776977

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010514291

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08776977

Country of ref document: EP

Kind code of ref document: A1