JP6893531B2 - 要求処理方法及び装置 - Google Patents

要求処理方法及び装置 Download PDF

Info

Publication number
JP6893531B2
JP6893531B2 JP2019125656A JP2019125656A JP6893531B2 JP 6893531 B2 JP6893531 B2 JP 6893531B2 JP 2019125656 A JP2019125656 A JP 2019125656A JP 2019125656 A JP2019125656 A JP 2019125656A JP 6893531 B2 JP6893531 B2 JP 6893531B2
Authority
JP
Japan
Prior art keywords
virtual machine
processing
work queue
processing thread
candidates
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2019125656A
Other languages
English (en)
Other versions
JP2020053013A (ja
Inventor
シエ、ヨンチー
チャイ、ウェン
チャン、ユイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2020053013A publication Critical patent/JP2020053013A/ja
Application granted granted Critical
Publication of JP6893531B2 publication Critical patent/JP6893531B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Description

本願は、コンピュータ分野に関し、具体的に仮想マシン分野に関し、特に要求処理方法及び装置に関する。
クラウド演算環境において、マルチ作業キューを有するVirtioデバイスがよく使われている。マルチ作業キューを有するVirtioデバイスのI/O性能を如何に向上するかは、いままでクラウド演算分野における研究の中心である。
本願の実施例は要求処理方法及び装置を提供する。
第一の局面として、本願の実施形態は要求処理方法を提供する。当該方法は、仮想マシンの起動に応答して、仮想マシンのデバイス毎に、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数を示す作業キュー数情報を取得することであって、前記数は一つ又は複数である、ことと、仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築することであって、前記仮想マシンのデバイス毎に対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンのデバイスに対するアクセス要求を処理するためのものである、ことと、を含む。
第二の局面として、本願の実施形態は要求処理装置を提供する。当該装置は、仮想マシンの起動に応答して、仮想マシンのデバイス毎に、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数を示す作業キュー数情報を取得するように配置される取得ユニットであって、前記数は一つ又は複数である、取得ユニットと、仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築するように配置される構築ユニットであって、前記仮想マシンのデバイス毎に対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンのデバイスに対するアクセス要求を処理するためのものである、構築ユニットと、を備える。
本願の実施形態により提供された要求処理方法及び装置は、仮想マシンの起動に応答して、仮想マシンのデバイス毎に、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数を示す作業キュー数情報を取得することであって、前記数は一つ又は複数である、ことと、仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築することであって、前記仮想マシンのデバイス毎に対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンのデバイスに対するアクセス要求を処理するためのものである、こととを実現する。これにより、仮想マシンの異なるデバイスに対して、デバイスに対応するI/Oスレッドにバインディングされた処理スレッドの数に対する調整が実現されるため、仮想マシンのデバイスのI/O性能を向上し、更にシステム全体のI/O性能を向上することができる。
以下の図面を参照してなされた制限的でない実施形態に対する詳細的な説明により、本発明の他の特徴、目的及び利点はより明らかになる。
本願の実施例を適用可能な例示的なシステムアーキテクチャを示す。 本願の要求処理方法による実施例のフローチャートである。 仮想マシンのデバイスに対応するI/Oスレッドと作業キューとのバインディング関係の効果模式図を示す。 本願の要求処理装置による実施例の構成模式図を示す。 本願の実施形態を適用可能な電子デバイスのコンピュータシステムの構成模式図を示す。
以下、図面及び実施形態を参照しながら本願をより詳細に説明する。理解すべきことは、ここで説明する具体的な実施形態は、関連の発明を説明するものに過ぎず、当該発明を限定するものではない。ただし、説明の便宜上、図面には発明に関連する部分のみが示されている。
説明すべきなのは、衝突しない場合、本願の実施例及び実施例における特徴を相互に組み合せてもよい。以下、図面及び実施例を参照しながら本願を詳細に説明する。
図1は、本願の実施例を適用可能な例示的なシステムアーキテクチャを示す。
仮想マシンは複数のデバイスを備えることができる。仮想マシンのデバイスは、仮想マシンのLANカード、磁気ディスクのようなデバイスであっても良い。仮想マシンのデバイス毎に作業キューを有する。仮想マシンのデバイス毎の作業キューは複数であっても良い。仮想マシンのデバイスに対するアクセス要求は、仮想マシンのデバイスに対するI/O要求と呼ばれても良い。仮想マシンのデバイスに対するI/O要求が生成されるたびに、仮想マシンのデバイスに対するI/O要求がデバイスの作業キューに追加される。物理マシンにおけるVMM(Virtual Machine Monitor、仮想マシンモニター)により、仮想マシンのデバイスに対するI/O要求を処理するための処理スレッドを構築することができる。処理スレッドはI/Oスレッドとも呼ばれる。仮想マシンのデバイスに対するI/O要求の処理中に、物理マシンと仮想マシンとの間に伝送されるデータは、Virtioフレームワークにより完成可能である。仮想マシンのデバイスは何れもVirtioデバイスと呼ばれても良い。
図2は、本願の要求処理方法による実施例のフローを示す。当該方法は以下のステップを含む。
ステップ201において、仮想マシンの起動に応答して、仮想マシンのデバイス毎に作業キュー数情報を取得する。
本実施例において、仮想マシンが起動されると、仮想マシンの起動に応答して、仮想マシンのデバイス毎に作業キュー数情報をそれぞれ取得することができる。仮想マシンのデバイス毎の作業キューは複数であっても良い。仮想マシンのデバイス毎に対応する処理スレッド、即ちI/Oスレッドは、当該デバイスに対するアクセス要求、即ち当該デバイスに対するI/O要求を処理する。仮想マシンの一つのデバイスの作業キュー数情報は、当該デバイスに対応する一つの処理スレッドに対応する仮想マシンのデバイスの作業キューの数を示す。当該デバイスに対応する一つの処理スレッドに対応する仮想マシンのデバイスの作業キューの数は、一つであっても良く、複数であっても良い。言い換えれば、仮想マシンの一つのデバイスの作業キュー数情報は、当該デバイスに対応する一つの処理スレッドが当該デバイスのデバイス対象のうち当該デバイスに対するI/O要求を幾つか処理するかを示す。
ステップ202において、仮想マシンのデバイス毎の作業キュー数情報に基づいて、仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築する。
本実施例において、仮想マシンのデバイス毎の作業キュー数情報に基づいて、仮想マシンのデバイス毎に対応する処理スレッドを構築することができる。仮想マシンのデバイス毎の作業キュー数情報に基づいて、VMMにより仮想マシンのデバイス毎に対応するI/Oスレッドをそれぞれ構築することができる。
仮想マシンのデバイス毎に対して、当該デバイスの作業キュー数情報により、当該デバイスに対応する一つのI/Oスレッドにバインディングされたデバイスの作業キューの数が一つであると示された場合に、当該デバイスの作業キューの数と同じの当該デバイスに対応するI/Oスレッドを構築することができる。当該デバイスに対応するI/Oスレッドのそれぞれは、処理スレッドに対応する作業キューにおける当該デバイスに対するI/O要求を処理する。当該デバイスの作業キュー数情報により、デバイスに対応する一つの処理スレッドに対応する仮想マシンのデバイスの作業キューの数がN(N>1)個であると示された場合に、複数のI/Oスレッドを構築する。I/Oスレッド毎にバインディングされる当該デバイスの作業対象の数はN個であっても良い。
本実施例において、仮想マシンのデバイス毎に対応するI/Oスレッドがそれぞれ構築された後に、デバイス毎に対応するI/Oスレッドは、作業キューのそれぞれにおけるI/O要求を処理することができる。一つのデバイスに対応するI/Oスレッドは、作業キューにおけるI/O要求を処理する過程において、ポーリングで各作業キューにアクセスすることができる。ある作業キューがヌルである場合、或いはI/Oスレッドに処理されるある作業キューにおけるI/O要求の数が負荷均等閾値よりも大きい場合に、次の作業キューにおけるI/O要求を処理する。
本実施例において、仮想マシンの異なるデバイスに対して、デバイスに対応する一つのI/Oスレッドにバインディングされた処理スレッドの数を調整し、システムのI/O性能を向上することができる。
本実施例の幾つかの選択可能な実現方式において、仮想マシンの一つのデバイスの作業キュー数情報における数は、当該デバイスのデバイスタイプに対応する所定数であっても良い。言い換えれば、一つのデバイスタイプは一つの所定数に対応する。デバイスタイプ毎に予め一つの数が対応する。例えば、LANカードタイプに予め対応する数は1個である。仮想マシンの全てのLANカードタイプのデバイス、即ち全てのLANカードについて、LANカード毎に対応する一つのI/Oスレッドに対応する仮想マシンのデバイスの作業キューの数は何れも1個である。ハードディスクタイプに予め対応する数はN個、N>1である。一つの仮想マシンのハードディスクタイプ毎のデバイス、即ちハードディスクのそれぞれについて、対応する一つのI/Oスレッドにバインディングされたハードディスクの作業キューの数がN個であっても良い。例えば、あるデバイスが磁気ディスクであり、当該磁気ディスクの作業キューの数が9個、N=3である場合に、当該磁気ディスクに対応する3個のI/Oスレッドを構築可能であり、当該磁気ディスク毎に対応するI/Oスレッドに当該磁気ディスクの3個の作業キューがそれぞれバインディングされる。
本実施例の幾つかの選択可能な実現方式において、一つのデバイスタイプに対応する所定数情報は、予めテストにより確定される。一つのデバイスタイプに対応する所定数が確定されると、当該デバイスタイプの一つのデバイスによりテストすることができる。候補数毎について、テストするたびに候補数に基づいて、該当数の当該デバイスタイプのデバイスに対応するI/Oスレッドを構築する。同一の所定のテスト条件において各テストを行う。同一の所定のテスト条件は、同じ時間帯に処理しなければならない当該デバイスの作業キューにおけるI/O要求の数が同じであることであっても良い。候補数毎について、同一の所定のテスト条件におけるデバイスのプロセッサ使用率、即ちCPU使用率をそれぞれ確定して、候補数毎に対応するプロセッサ使用率を取得する。そして、対応するプロセッサ使用率が最も高い候補数を、当該デバイスタイプに対応する所定数としても良い。言い換えれば、同一のテスト環境において何れの所定数で構築された該当するスレッドにプロセッサ使用率が最も高くなるかを確定することに相当する。
例えば、一つのデバイスタイプに対応する所定数を確定した場合に、一つの当該デバイスタイプのデバイスによりテストを完成する。候補数には、1、2、3、4が含まれる。テスト毎に一つの候補数を選択する。テストするたびに、選択された候補数に基づいて、該当数の当該デバイスタイプのデバイスに対応するI/Oスレッドを構築する。選択された候補数が1である場合に、該当数の当該デバイスタイプのデバイスに対応するI/Oスレッドを構築し、I/Oスレッド毎に一つの当該デバイスの作業キューがバインディングされる。選択された候補数が2である場合に、該当数の当該デバイスタイプのデバイスに対応するI/Oスレッドを構築し、I/Oスレッド毎に二つの当該デバイスの作業キューがバインディングされる。選択された候補数が3である場合に、該当数の当該デバイスタイプのデバイスに対応するI/Oスレッドを構築し、I/Oスレッド毎に三つの当該デバイスの作業キューがバインディングされる。同一の所定のテスト条件において各テストを行う。同一の所定のテスト条件における、候補数毎に対応するプロセッサ使用率をそれぞれ確定する。同一のテスト条件において当該デバイスに対応する一つのI/Oスレッドにバインディングされた当該デバイスの作業キューの数が3である場合に、プロセッサ使用率が最も高いと確定したと仮定すると、当該デバイスタイプに対応する所定数が3である。
本実施例の幾つかの選択可能な実現方式において、一つのデバイスタイプに対応する所定数は、調整指令により調整可能である。配置指令は、ユーザの端末に生成可能である。例えば、ユーザはメンテナンスエンジニアとして、端末の管理画面に調整が必要の対応所定数のデバイスタイプのデバイスタイプ標識を入力し、調整された当該デバイスタイプに対応すべき所定数の配置数を指示することができる。当該デバイスタイプ標識、当該配置数を含む配置指令を生成可能である。そして、メンテナンスエンジニアの端末から送信される配置指令を受信することができる。サーバは、配置指令における当該デバイスタイプ標識、当該配置数に基いて、調整する対応所定数のデバイスタイプのデバイスタイプ標識を確定し、調整された当該デバイスタイプに対応すべき所定数を指示し、当該配置数を当該デバイスタイプ標識を持つデバイスタイプに対応する所定数とすることができる。
図3を参照する。図3は、仮想マシンのデバイスに対応するI/Oスレッドと作業キューとのバインディング関係の一つの効果模式図を示す。
仮想マシンのデバイスには、Virtioデバイス1、Virtioデバイス2が含まれる。Virtioデバイス1、Virtioデバイス2は何れも複数のデバイスを備える。デバイス毎に複数の作業キューが備えられる。Virtioデバイス1に対するI/O要求がVirtioデバイス1の作業キューに追加され、Virtioデバイス2に対するI/O要求がVirtioデバイス2の作業キューに追加される。VMMによりVirtioデバイス1、Virtioデバイス2の作業キューにおけるI/O要求を処理するためのI/Oスレッドをそれぞれ構築する。
Virtioデバイス1について、Virtioデバイス1に対応するI/Oスレッド毎にVirtioデバイス1の二つの作業キューがバインディングされる。即ち、Virtioデバイス1に対応する一つのI/Oスレッドは、Virtioデバイス1の二つの作業キューにおけるVirtioデバイス1に対するI/O要求を処理するためのものである。Virtioデバイス2について、Virtioデバイス2に対応するI/Oスレッド毎にVirtioデバイス2の一つの作業キューがバインディングされる。即ち、Virtioデバイス1に対応する一つのI/Oスレッドは、Virtioデバイス2の一つの作業キューにおけるVirtioデバイス2に対するI/O要求を処理するためのものである。
図4を参照する。前記各図に示された方法の実現として、本願は要求処理装置の一実施例を提供する。当該装置実施例は図2に示された方法実施例に対応する。
図4に示すように、本実施例の要求処理装置には、取得ユニット401と、構築ユニット402とが備えられる。なお、取得ユニット401は、仮想マシンの起動に応答して、仮想マシンのデバイス毎の作業キュー数情報を取得するように配置される。作業キュー数情報は、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされるデバイスの作業キューの数を示す。前記数は一つ又は複数である。構築ユニット402は、仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築するように配置される。なお、仮想マシンのデバイスに対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンに対するデバイスのアクセス要求を処理するためのものである。
本実施例の幾つかの選択可能な実現方式において、仮想マシンの作業キュー数情報に示された、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数は、前記デバイスのデバイスタイプに対応する所定数である。
本実施例の幾つかの選択可能な実現方式において、要求処理装置には、デバイスタイプに対応する所定数を確定するための候補数毎に対して、候補数に基いて、前記デバイスタイプのデバイスに対応する処理スレッドを構築し、所定のテスト条件における前記デバイスのプロセッサ使用率を取得し、取得されたプロセッサ使用率を候補数に対応するプロセッサ使用率とし、対応するプロセッサ使用率が最も大きい候補数を前記デバイスタイプに対応する所定数とするように配置される所定数確定ユニットが更に備えられる。なお、構築された処理スレッドは、所定のテスト条件における前記デバイスの作業キューにおける前記デバイスに対するアクセス要求を処理するためのものである。
本実施例の幾つかの選択可能な実現方式において、要求処理装置には、配置指令を受信し、前記配置数を、前記デバイスタイプ標識を持つデバイスタイプに対応する所定数とするように配置される配置ユニットが更に備えられる。前記配置指令には、デバイスタイプ標識と、配置数とが含まれる。配置指令は、ユーザの配置操作に応じて生成されるものである。
図5は、本願の実施例を実現可能な電子デバイスのコンピュータシステムの構成模式図を示す。
図5に示されたように、コンピュータシステムは、読み出し専用メモリ(ROM)502に記憶されているプログラム又は記憶部508からランダムアクセスメモリ(RAM)503にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置(CPU)501を備える。RAM503には、コンピュータシステムの操作に必要な様々なプログラムおよびデータがさらに記憶されている。CPU501、ROM502およびRAM 503は、バス504を介して互いに接続されている。入力/出力(I/O)インターフェース505もバス504に接続されている。
入力部506、出力部507、ハードディスクなどを含む記憶部508、およびLANカード、モデムなどを含むネットワークインターフェースカードの通信部509は、I/Oインターフェース505に接続されている。通信部509は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライブ510も、必要に応じてI/Oインターフェース505に接続される。リムーバブルメディア511は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライブ510に取り付けられることにより、ドライブ510から読み出されたコンピュータプログラムが必要に応じて記憶部508にインストールされる。
特に,本発明の実施例に説明された過程はコンピュータプログラムに実現されても良い。例えば、本発明の実施例はコンピュータ読取可能な媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を備える。当該コンピュータプログラムは、フローチャートに示される方法を実行するための指令を含む。当該コンピュータプログラムは、通信部509を介してネットワークからダウンロードしてインストールされ、及び/又はリムーバブルメディア511からインストールされても良い。当該コンピュータプログラムは、中央処理ユニット(CPU)501により実行される場合に、本願の方法に限定される前記機能を実行する。
本願は更に電子デバイスを提供した。当該電子デバイスは、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶するためのメモリと、を備えるように配置可能である。一つ又は複数のプログラムには、前記実施例に説明された操作を実行するための指令が含まれても良い。一つ又は複数のプログラムは、一つ又は複数のプロセッサにより実行されると、一つ又は複数のプロセッサに前記実施例に説明された操作を実行させる。
本願は更にコンピュータ読取可能な媒体を提供した。当該コンピュータ読取可能な媒体は、電子デバイスに含まれたものであっても良く、電子デバイスに実装されずに別途に存在するものであっても良い。前記コンピュータ読取可能な媒体には、一つ又は複数のプログラムがロードされる。一つ又は複数のプログラムが電子デバイスにより実行されると、電子デバイスに前記実施例に説明された操作を実行させる。
説明すべきなのは、本願の前記コンピュータ読取可能な媒体は、コンピュータ読取可能な信号媒体、コンピュータ読取可能な記憶媒体、或いは前記両者の任意の組合わせであっても良い。コンピュータ読取可能な記憶媒体は、例えば電気、磁気、光、電磁気、赤外線、半導体のシステム、装置又は部品、或いはこれらの任意の組み合わせであっても良いが、それらに限定されない。コンピュータ読取可能な記憶媒体についてのより具体的な例は、一つ又は複数の導線を含む電気的な接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能なプログラミング読取専用メモリ(EPROM又はフラッシュ)、光ファイバ、携帯可能なコンパクト磁気ディスク読取専用メモリ(CD−ROM)、光学記憶素子、磁気記憶素子、或いは前記の任意の適当の組み合わせを含むが、それらに限定されない。本願において、コンピュータ読取可能な記憶媒体は、プログラムを含むか記憶する任意の有形の媒体であっても良い。当該プログラムは、コマンド実行システム、装置又は部品により使用され、或いはそれらに組合わせて使用されても良い。本願において、コンピュータ読取可能な信号媒体は、ベースバンドに伝送され或いはキャリアの一部として伝送され、コンピュータ読取可能なプログラムコードがロードされるデータ信号を含んでも良い。このような伝送されるデータ信号は、各種の形式を採用しても良く、電磁気信号、光信号又は前記の任意の適当の組合わせを含むが、それらに限定されない。コンピュータ読取可能な信号媒体は、コンピュータ読取可能な記憶媒体以外の任意のコンピュータ読取可能な媒体であっても良い。当該コンピュータ読取可能な媒体は、コマンド実行システム、装置又は部品により使用され又はそれらと組合わせて使用されるプログラムを送信し、伝播し又は伝送することができる。コンピュータ読取可能な媒体に含まれるプログラムコードは、任意の適当の媒体で伝送されても良く、無線、電線、光ケーブル、RFなど、或いは前記の任意の適当の組み合わせを含むが、それらに限定されない。
図面におけるフローチャート及びブロック図は、本願の各実施例によるシステム、方法及びコンピュータプログラム製品により実現可能なシステム構造、機能及び操作を示す。この点において、フローチャート又はブロック図における各ブロックは、一つのモジュール、プログラムセグメント、又はコードの一部を表すことができる。当該モジュール、プログラムセグメント、コードの一部には、一つ又は複数の所定のロジック機能を実現するための実行可能なコマンドが含まれる。注意すべきなのは、幾つかの置換としての実現において、ブロックに示される機能は図面に示される順序と異なって発生されても良い。例えば、二つの接続的に表示されるブロックは実際に基本的に併行に実行されても良く、場合によっては逆な順序で実行されても良く、関連の機能に従って決定される。注意すべきなのは、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組合わせは、所定の機能又は操作を実行する専用のハードウェアによるシステムで実現されても良く、或いは専用のハードウェアとコンピュータコマンドの組合わせで実現されても良い。
以上の記載は、ただ本願の好適な実施例及び運用される技術原理に対する説明である。当業者であればわかるように、本願にかかる発明範囲は、前記技術特徴の特定の組み合わせからなる技術案に限定されず、前記の発明構想から逸脱されない場合に前記技術特徴又は均等の特徴による任意の組み合わせで形成される他の技術案も同時に含まれるべきである。例えば前記特徴と本願に開示された(それらに限定されない)類似の機能を具備する技術特徴が互いに置換されて得られる技術案は該当する。

Claims (11)

  1. 要求処理方法であって、
    仮想マシンの起動に応答して、仮想マシンのデバイス毎に、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数を示す作業キュー数情報を取得することであって、前記数は一つ又は複数である、ことと、
    仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築することであって、前記仮想マシンのデバイス毎に対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンのデバイスに対するアクセス要求を処理するためのものである、ことと、
    を含む方法。
  2. 仮想マシンの作業キュー数情報に示される、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数は、前記デバイスのデバイスタイプに対応する所定数である、請求項1に記載の方法。
  3. 前記方法は、
    デバイスタイプに対応する所定数を確定するための候補数のそれぞれに対して、候補数に基いて、前記デバイスタイプのデバイスに対応する処理スレッドを構築し、所定のテスト条件での前記デバイスのプロセッサ使用率を取得し、取得されたプロセッサ使用率を候補数に対応するプロセッサ使用率とすることであって、構築された処理スレッドは、所定のテスト条件において前記デバイスの作業キューにおける前記デバイスに対するアクセス要求を処理するためのものである、ことと、
    対応するプロセッサ使用率が最も大きい候補数を、前記デバイスタイプに対応する所定数とすることと、を更に含む請求項2に記載の方法。
  4. 前記方法は、
    ユーザの配置操作に基づいて生成された配置指令を受信することであって、前記配置指令は、デバイスタイプ標識と配置数とを含む、ことと、
    前記配置数を、前記デバイスタイプ標識を有するデバイスタイプに対応する所定数とすることと、を更に含む請求項3に記載の方法。
  5. 要求処理装置であって、
    仮想マシンの起動に応答して、仮想マシンのデバイス毎に、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数を示す作業キュー数情報を取得するように配置される取得ユニットであって、前記数は一つ又は複数である、取得ユニットと、
    仮想マシンのデバイス毎の作業キュー数情報に基づいて、前記仮想マシンのデバイス毎に対応する処理スレッドをそれぞれ構築するように配置される構築ユニットであって、前記仮想マシンのデバイス毎に対応する処理スレッドは、前記処理スレッドにバインディングされたデバイスの作業キューにおける仮想マシンのデバイスに対するアクセス要求を処理するためのものである、構築ユニットと、を備える装置。
  6. 仮想マシンの作業キュー数情報に示される、仮想マシンのデバイスに対応する一つの処理スレッドにバインディングされたデバイスの作業キューの数は、前記デバイスのデバイスタイプに対応する所定数である、請求項5に記載の装置。
  7. 前記装置は、
    デバイスタイプに対応する所定数を確定するための候補数のそれぞれに対して、候補数に基いて、前記デバイスタイプのデバイスに対応する処理スレッドを構築し、所定のテスト条件での前記デバイスのプロセッサ使用率を取得し、取得されたプロセッサ使用率を候補数に対応するプロセッサ使用率とし、対応するプロセッサ使用率が最も大きい候補数を、前記デバイスタイプに対応する所定数とするように配置される所定数確定ユニットであって、構築された処理スレッドは、所定のテスト条件において前記デバイスの作業キューにおける前記デバイスに対するアクセス要求を処理するためのものである、所定数確定ユニットを更に備える請求項6に記載の装置。
  8. 前記装置は、
    ユーザの配置操作に基づいて生成された配置指令を受信し、前記配置数を、前記デバイスタイプ標識を有するデバイスタイプに対応する所定数とするように配置される配置ユニットであって、前記配置指令は、デバイスタイプ標識と配置数とを含む、配置ユニットを更に備える請求項7に記載の装置。
  9. 一つ又は複数のプロセッサと、
    一つ又は複数のプログラムを記憶するためのメモリと、を備え、
    前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサにより実行されると、前記一つ又は複数のプロセッサに請求項1〜4の何れか一つに記載の方法を実現させることを特徴とする電子デバイス。
  10. コンピュータプログラムが記憶されており、当該プログラムがプロセッサにより実行されると、請求項1〜4の何れか一つに記載の方法を実現することを特徴とするコンピュータ読取可能な媒体。
  11. コンピュータプログラムであって、
    前記コンピュータプログラムがプロセッサにより実行されると、請求項1ないし請求項4のいずれか一項に記載の方法を実現させるコンピュータプログラム。

JP2019125656A 2018-09-21 2019-07-05 要求処理方法及び装置 Active JP6893531B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811106831.1A CN109240802B (zh) 2018-09-21 2018-09-21 请求处理方法和装置
CN201811106831.1 2018-09-21

Publications (2)

Publication Number Publication Date
JP2020053013A JP2020053013A (ja) 2020-04-02
JP6893531B2 true JP6893531B2 (ja) 2021-06-23

Family

ID=65056573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019125656A Active JP6893531B2 (ja) 2018-09-21 2019-07-05 要求処理方法及び装置

Country Status (4)

Country Link
US (1) US11210127B2 (ja)
JP (1) JP6893531B2 (ja)
KR (1) KR102214981B1 (ja)
CN (1) CN109240802B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631744A (zh) * 2019-09-24 2021-04-09 阿里巴巴集团控股有限公司 进程处理方法、装置、电子设备及计算机可读存储介质
CN111104218B (zh) * 2019-11-29 2022-04-22 北京浪潮数据技术有限公司 存储系统数据同步方法、装置、设备及可读存储介质
CN113608828B (zh) * 2021-06-30 2023-07-14 苏州浪潮智能科技有限公司 一种防护方法及其相关设备
CN114697215A (zh) * 2022-03-31 2022-07-01 西安超越申泰信息科技有限公司 一种虚拟化网络性能提升的方法、系统、设备及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111303B2 (en) * 2002-07-16 2006-09-19 International Business Machines Corporation Virtual machine operating system LAN
US7810083B2 (en) * 2004-12-30 2010-10-05 Intel Corporation Mechanism to emulate user-level multithreading on an OS-sequestered sequencer
KR100809294B1 (ko) * 2006-03-10 2008-03-07 삼성전자주식회사 가상 머신에서 스레드 스케줄링을 수행하는 장치 및 그방법
US8881141B2 (en) * 2010-12-08 2014-11-04 Intenational Business Machines Corporation Virtualization of hardware queues in self-virtualizing input/output devices
CN102591715B (zh) * 2012-01-05 2014-02-12 北京航空航天大学 一种使用多队列技术的虚拟机网络性能优化的实现方法
JP5748349B2 (ja) * 2012-03-16 2015-07-15 株式会社日立製作所 仮想計算機の制御方法及び仮想計算機システム
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置
US9262192B2 (en) * 2013-12-16 2016-02-16 Vmware, Inc. Virtual machine data store queue allocation
JP5960186B2 (ja) * 2014-04-03 2016-08-02 日本電信電話株式会社 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム
KR101638136B1 (ko) * 2015-05-14 2016-07-08 주식회사 티맥스 소프트 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치
CN104980438B (zh) * 2015-06-15 2018-07-24 中国科学院信息工程研究所 一种虚拟化环境中数字证书撤销状态检查的方法和系统
CN111831588A (zh) 2015-10-21 2020-10-27 华为技术有限公司 一种存储设备访问方法、装置和系统
US10635474B2 (en) * 2016-05-09 2020-04-28 Marvell Asia Pte, Ltd. Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration
US10620992B2 (en) * 2016-08-29 2020-04-14 TidalScale, Inc. Resource migration negotiation
US10733112B2 (en) * 2017-06-16 2020-08-04 Alibaba Group Holding Limited Method and apparatus for hardware virtualization

Also Published As

Publication number Publication date
KR20200034572A (ko) 2020-03-31
US11210127B2 (en) 2021-12-28
US20200097314A1 (en) 2020-03-26
CN109240802A (zh) 2019-01-18
CN109240802B (zh) 2022-02-18
KR102214981B1 (ko) 2021-02-09
JP2020053013A (ja) 2020-04-02

Similar Documents

Publication Publication Date Title
JP6893531B2 (ja) 要求処理方法及び装置
US10042669B2 (en) Concurrent execution of a computer software application along multiple decision paths
TWI544328B (zh) 用於經由背景虛擬機器的探測插入的方法及系統
US9170840B2 (en) Duration sensitive scheduling in a computing environment
KR102158754B1 (ko) 스마트 네트워크 인터페이스 카드의 조작 방법 및 조작 장치
CN107918555B (zh) 基于物理主机的用于处理数据的方法和装置
US10802847B1 (en) System and method for reproducing and resolving application errors
US20180032337A1 (en) Clearing specified blocks of main storage
US9477485B2 (en) Optimizing computer hardware usage in a computing system that includes a plurality of populated central processing unit (‘CPU’) sockets
US11032159B2 (en) Apparatus for preformance analysis of virtual network functions in network functional virtualization platform and method thereof
US10248466B2 (en) Managing workload distribution among processing systems based on field programmable devices
US10346293B2 (en) Testing pre and post system call exits
US10725895B2 (en) Measuring and improving test coverage
US20150227383A1 (en) Application program virtualization system and method of virtualizing application program of user terminal
US10162754B2 (en) Lateral cast out of cache memory
US9542233B1 (en) Managing a free list of resources to decrease control complexity and reduce power consumption
US9977730B2 (en) System and method for optimizing system memory and input/output operations memory
US10528397B2 (en) Method, device, and non-transitory computer readable storage medium for creating virtual machine
US9471433B2 (en) Optimizing computer hardware usage in a computing system that includes a plurality of populated central processing unit (‘CPU’) sockets
US20230131198A1 (en) Featureless machine enhancement discovery and verification
CN113158146A (zh) 脚本管理方法、脚本管理平台、计算设备及介质
US20130111495A1 (en) Load Balancing Servers
US20240175916A1 (en) Systems and methods for testing virtual functions of a device under test
US10496277B1 (en) Method, apparatus and computer program product for storing data storage metrics
CN117917646A (zh) 进程管控方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210601

R150 Certificate of patent or registration of utility model

Ref document number: 6893531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150