JP7282823B2 - メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム - Google Patents

メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム Download PDF

Info

Publication number
JP7282823B2
JP7282823B2 JP2021047577A JP2021047577A JP7282823B2 JP 7282823 B2 JP7282823 B2 JP 7282823B2 JP 2021047577 A JP2021047577 A JP 2021047577A JP 2021047577 A JP2021047577 A JP 2021047577A JP 7282823 B2 JP7282823 B2 JP 7282823B2
Authority
JP
Japan
Prior art keywords
target
numa node
business module
memory
determining
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
JP2021047577A
Other languages
English (en)
Other versions
JP2022033688A (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 JP2022033688A publication Critical patent/JP2022033688A/ja
Application granted granted Critical
Publication of JP7282823B2 publication Critical patent/JP7282823B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願は、コンピュータ技術分野に関し、具体的には、通信技術、データ処理分野に関し、特にメモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラムに関する。
ハードウェアチップ技術の制約を受け、単一のプロセッサ(Central Processing Unit,CPU)の演算能力が飽和する傾向にある。そのため、サーバは、より高い演算性能を得るために、プロセッサ数を増やすことで、サーバの演算性能を向上させる傾向にある。高性能なサーバでは、一般的に、Non-Uniform Memory Architecture,NUMA即ち複数のノードが高速のインターネットを介して接続されており、各ノードは、CPUとローカルメモリとで構成されている。ノードがローカルメモリにアクセスすると、メモリアクセス遅延が小さく、性能が高いが、リモートメモリにアクセスすると、メモリアクセス遅延が相対的に高くなり、性能が低下する。このため、現在のメモリ分配器は、システム性能を向上させるために、メモリ割り当てを行う際に、ローカルメモリを優先的に割り当てる必要があり、次に、リモートメモリを考慮する必要がある。
従来のオペレーティングシステムは、業務モジュールのメモリアクセスの局所的なニーズを感知することができないため、オペレーティングシステムは、業務モジュールのメモリアクセスリクエストを、そのメモリに隣接しないプロセッサコアにスケジューリングし、仮想化環境における業務混在シーンにおいてノードを跨ぐようなリモートメモリアクセス現象が多く存在し、高い業務遅延と低いリソース利用率をもたらす可能性がある。
本願の実施例は、メモリアクセスリクエストスケジューリング方法、装置、デバイス及び記憶媒体を提供する。
第1態様によれば、メモリアクセスリクエストスケジューリング方法を提供しており、該方法は、少なくとも1つの業務モジュールの監視データを取得するステップと、監視データに従って、少なくとも1つの業務モジュールからを決定する目標業務モジュールステップと、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定するステップと、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信するステップと、を含む。
第2態様によれば、メモリアクセスリクエストスケジューリング装置を提供しており、該装置は、少なくとも1つの業務モジュールの監視データを取得するように構成される監視データ取得ユニットと、監視データに従って、少なくとも1つの業務モジュールから目標業務モジュールを決定するように構成される業務モジュール決定ユニットと、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定するように構成される目標ノード決定ユニットと、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信するように構成される第1のリクエストスケジューリングユニットと、を備える。
第3態様によれば、メモリアクセスリクエストスケジューリング電子デバイスを提供しており、該電子デバイスは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサと通信接続されるメモリと、を備え、メモリは、少なくとも1つのプロセッサによって実行可能な命令を記憶し、少なくとも1つのプロセッサが第1の態様に記載の方法を実行できるように、前記命令が少なくとも1つのプロセッサに実行される。
第4態様によれば、コンピュータ命令を記憶する非一時的なコンピュータ可読記憶媒体を提供しており、上記のコンピュータ命令は、コンピュータに第1の態様に記載の方法を実行させる。
第5態様によれば、コンピュータプログラムを提供しており、上記コンピュータプログラムは、プロセッサに実行されると、第1の態様に記載の方法を実行させる。
本願の技術によれば、各業務モジュールから適切な業務モジュールを決定し、該業務モジュールのメモリアクセスリクエストをマッチングのNUMAノードにスケジューリングすることができ、業務モジュールのメモリアクセス遅延を減少させる。
なお、この部分で説明するコンテンツは、本開示の実施例の肝心なまたは重要な特徴を特定することを意図するものではなく、本開示の範囲を限定することを意図するものでもない。本開示の他の特徴は以下の明細書を通じて容易に理解される。
図面は、本解決手段をより良く理解するためのものであり、本願を限定するものではない。
本願の一実施例の適用可能で例示的なシステムアーキテクチャの図である。 本願によるメモリアクセスリクエストスケジューリング方法の一実施例のフローチャートである。 本願によるメモリアクセスリクエストスケジューリング方法の適用シーンの概略図である。 本願によるメモリアクセスリクエストスケジューリング方法の別の実施例のフローチャートである。 本願によるメモリアクセスリクエストスケジューリング方法の更なる実施例のフローチャートである。 本願によるメモリアクセスリクエストスケジューリング装置の一実施例の構成概略図である。 本願実施例のメモリアクセスリクエストスケジューリング方法を実現する電子デバイスのブロック図である。
以下、図面を参照して、本願の例示的な実施例を説明し、理解に役に立つように、本願の実施例の様々な詳細を含み、単に例示的なものと見なされる。従って、当業者は、本願の範囲と精神から逸脱せずに、ここで説明する実施例に様々な変更と修正を加えることができることを認識すべきである。同様に、明確かつ簡潔にするために、以下の説明では、公知の機能と構造の説明を省略する。
なお、衝突しない限り、本願における実施例及び実施例における特徴は、互いに組み合わせることが可能である。以下に図面及び実施例を参照して本願を詳細に説明する。
図1は本願のメモリアクセスリクエストスケジューリング方法またはメモリアクセスリクエストスケジューリング装置の適用可能な実施例の例示的なシステムアーキテクチャ100を示す。
図1に示すように、システムアーキテクチャ100は、複数のNUMAノード101、複数の業務モジュール102及び業務モジュール管理モジュール103を備えてもよい。ここでは、複数のNUMAノード101はNUMAノード1011、1012、1013を備え、複数の業務モジュール102は業務モジュール1021、1022、1023備える。
複数のNUMAノード101のうちの各NUMAノードは複数のCPUコアを備え、各CPUコアは1つのメモリに対応するようにしてもよい。同じNUMAノード内の各CPUコアはインタラクティブし、異なるノード間のCPUコアもインタラクティブするようにしてもよい。
各業務モジュール102のうちの各業務モジュールは、具体的なのタスクを実行するための1フィールドコードデータであり、それは各NUMAノードにアクセスすることができ、それにより、計算を実行し、または読み取りと書き込みを行う。
業務モジュール管理モジュール103は各業務モジュール102の情報を収集し、その後、これらの情報に応じて各業務モジュール102を管理するようにしてもよい。
また、複数のNUMAノード101、複数の業務モジュール102と業務モジュール管理モジュール103は、同じサーバーに設けられてもよく、異なるサーバーに設けられてもよい。複数のNUMAノード101、複数の業務モジュール102及び業務モジュール管理モジュール103は異なるサーバー設けられる場合、サーバークラスターに分散するようにしてもよい。
また、本願実施例によるメモリアクセスリクエストスケジューリング方法は、一般には、業務モジュール管理モジュール103によって実行され、それに対応して、メモリアクセスリクエストスケジューリング装置は、一般には、業務モジュール管理モジュール103に設けられる。
なお、図1中のNUMAノード、業務モジュールと業務モジュール管理モジュールの数は、単なる例示的であることを理解されるべきである。実装のニーズに応じて、任意の数のNUMAノード、業務モジュール及び業務モジュール管理モジュールを備えてもよい。
図2をさらに参照しながら、それは、本願によるメモリアクセスリクエストスケジューリング方法の一実施例のプロセス200を示す。本実施例のメモリアクセスリクエストスケジューリング方法は、次のステップを含み、
ステップ201で、少なくとも1つの業務モジュールの監視データを取得する。
本実施例では、メモリアクセスリクエストスケジューリング方法の実行主体(図1に示めされる業務モジュール管理モジュール103)は、少なくとも1つの業務モジュールの監視データを取得することができる。ここでは、業務モジュールは、ある特定のタスクを実行するためのコードブロック、例えば、あるパラメータに対して特定の処理を実行するコードブロックであってもよい。また、技術者は、各業務モジュールを予め設定でき、すなわち、
業務モジュールはデータを処理するプロセスで、CPU、キャッシュメモリー、メモリなどにアクセスし、特定のログデータ、いくつかのパラメータ値の生成、いくつかのファイルの変更などを行う必要がある場合があり、これらのトレースは監視データとして使用されてもよい。言い換えれば、業務モジュールの監視データは、業務モジュールによってデータ処理プロセスで生成されたたデータであってもよい。実行主体は1フィールドコードを設定することで各業務モジュールの監視データを取得するようにしてもよいし、あるいは各業務モジュールは自ら生成した監視データを実行主体に送信するようにしてもよい。
ステップ202で、監視データに従って、少なくとも1つの業務モジュールから目標業務モジュールを決定する。
本実施例では、実行主体は、各業務モジュールの監視データを取得した後、監視データを分析して分析結果に応じて少なくとも1つの業務モジュールから目標業務モジュールを決定するようにしてもよい。具体的には、実行主体は、監視データからメモリアクセス帯域幅、メモリアクセス回数、メモリへのアクセスのレイテンシ、業務モジュールのメモリに記憶されたデータタイプ、異なるメモリデータタイプのデータ量を抽出するようにしてもよい。これらのパラメータに応じて各業務モジュールのメモリアクセス遅延に対する感度を計算するようにしてもよい。具体的には、実行主体は、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ及び異なるメモリデータタイプのデータ量に応じて、各業務モジュールのメモリアクセス遅延に対する感度を計算するようにしてもよい。たとえば、実行主体は、各メモリデータタイプの縦のメモリデータのうちの占有比率を計算し、そしてメモリアクセス帯域幅、メモリへのアクセスのレイテンシ及び占有比率を乗算した積を、各業務モジュールのメモリアクセス遅延に対する感度とする。
なお、ある業務モジュールがメモリアクセス遅延に敏感であればあるほど、すなわち感度が高いほど、メモリアクセス遅延が小さくなり、該業務モジュールの性能への影響が小さくなる。ある業務モジュールがメモリアクセス遅延に敏感でなければ、長いメモリアクセス遅延も該業務モジュールの性能に影響を与えないことを意味する。各業務モジュールの性能を確保するために、実行主体はメモリアクセス遅延に対する感度がより大きい業務モジュールを目標業務モジュールとする。
ステップ203で、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定する。
目標業務モジュールを決定した後、実行主体は、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定するようにしてもよい。具体的には、実行主体は、目標業務モジュールの最大メモリを占有したNUMAノードを、目標業務モジュールとマッチングする目標NUMAノードとしてもよい。あるいは、実行主体は、目標業務モジュールがNUMAノードに対するメモリ占有率が予め設定された範囲にあるNUMAノードを、目標業務モジュールとマッチングする目標NUMAノードとしてもよい。
ステップ204で、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信する。
目標業務モジュールと目標NUMAノードを決定した後、実行主体は、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信するようにしてもよい。目標業務モジュールは、各NUMAノードに目標NUMAノードを占有したメモリが最も多いため、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信すると、目標業務モジュールは、目標NUMAノードのCPUコアを利用して計算することができ、NUMAノードを跨いでメモリにアクセスすることがなく、目標業務モジュールのメモリアクセス遅延を効果的に低減することができる。
図3をさらに参照しながら、それは、本願によるメモリアクセスリクエストスケジューリング方法の適用シーンの概略図を示す。図3の適用シーンでは、サーバー内はそれぞれ業務モジュール301、302、303である複数の業務モジュールを備える。同様に、それぞれNUMAノード311、312、313である複数のNUMAノードを備える。サーバーは、各業務モジュールの監視データを取得し、その後、監視データを分析し、業務モジュール301のメモリアクセス遅延に対する感度が高いと決定する。それにより業務モジュール301を目標業務モジュールとする。そして監視データを利用して、業務モジュール301により占有された最も多いメモリは、NUMAノード312のメモリであることを分析した。それにより業務モジュール301とNUMAノード312とをバインドし、業務モジュール301のメモリアクセスリクエストをいずれもNUMAノード312に送信する。
本願の上記実施例によるメモリアクセスリクエストスケジューリング方法は、各業務モジュールから適切な業務モジュールを決定し、該業務モジュールのメモリアクセスリクエストをマッチングのNUMAノードにスケジューリングすることができ、業務モジュールのメモリアクセス遅延を減少させる。
図4をさらに参照しながら、それは、本願によるメモリアクセスリクエストスケジューリング方法の別の実施例のプロセス400を示す。図4に示すように、本実施例のメモリアクセスリクエストスケジューリング方法は次のステップを含み、
ステップ401で、少なくとも1つの業務モジュールの監視データを取得する。
ステップ402で、監視データに従って、前記少なくとも1つの業務モジュールから目標業務モジュールを決定する。
本実施例では、実行主体は、具体的には、以下のステップ(図4に示されず)で目標業務モジュールを決定することができ、そのステップは、監視データに従って、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ、中央演算装置へのアクセスのレイテンシ、キャッシュメモリーへのアクセスのレイテンシ、異なるメモリデータタイプのデータ量のうちの少なくとも1項を決定するステップと、決定された情報に基づいて、少なくとも1つの業務モジュールのメモリアクセス遅延感度値を決定するステップと、メモリアクセス遅延感度値に応じて、少なくとも1つの業務モジュールから目標業務モジュールを決定するステップと、を含む。
実行主体は、まず監視データを分析し、メモリアクセス回数、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ、中央演算装置へのアクセスのレイテンシ、キャッシュメモリーへのアクセスのレイテンシ、アクセスのメモリデータタイプの少なくとも1つのパラメータを決定するようにしてもよい。ここでは、メモリアクセス帯域幅は、メモリにアクセスするときの有効帯域幅と理解される。アクセスのメモリデータタイプは、rssメモリページとcacheメモリページを含んでもよい。rssメモリページのレイアウトは人為的に制御可能であるが、cacheメモリページのレイアウトは人為的に制御できないため、rssメモリページの占有比率がより多い場合、人為的に制御可能な部分がより多いであることを意味する。実行主体は、決定された上記情報に応じて、各業務モジュールのメモリアクセス遅延感度値を決定するようにしてもよい。具体的には、実行主体は、次の式に従ってメモリアクセス遅延感度値を計算するようにしてもよい。
メモリアクセス遅延感度値=メモリアクセス帯域幅×[00メモリへのアクセスのレイテンシ/(メモリへのアクセスのレイテンシ+キャッシュメモリーへのアクセスのレイテンシ)]×[00rssメモリページのデータ量/(rssメモリページのデータ量+cacheメモリページのデータ量)]。
あるいは、実行主体も次の式に従ってメモリアクセス遅延感度値を計算するようにしてもよい。
メモリアクセス遅延感度値=メモリアクセス回数×[00メモリへのアクセスのレイテンシ/(メモリへのアクセスのレイテンシ+キャッシュメモリーへのアクセスのレイテンシ)]×[00rssメモリページのデータ量/(rssメモリページのデータ量+cacheメモリページのデータ量)]。
なお、メモリアクセス遅延感度値が大きいほど、業務モジュールがメモリアクセス遅延に対する感度が強いと理解され、業務モジュールのメモリアクセス遅延を適切に低減すれば、これらの業務モジュールの性能を効果的に向上させる。したがって、次に、実行主体は、メモリアクセス遅延感度値に応じて目標業務モジュールを決定するようにしてもよい。具体的には、実行主体は、メモリアクセス遅延感度値が予め設定された閾値より大きい業務モジュールを目標業務モジュールとするか、あるいはメモリアクセス遅延感度値最大の業務モジュールを目標業務モジュールとするようにしてもよい。
ステップ403で、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定する。
本実施例では、実行主体は、具体的には、以下のステップ(図4に示されず)で目標NUMAノードを決定することができ、そのステップは、目標業務モジュールがNUMAノード集合の各NUMAノードに占有したメモリ量を決定するステップと、各NUMAノードのメモリアクセス帯域幅及び/又は占有したメモリ量に応じて、目標NUMAノードを決定するステップと、を含む。
実行主体は、目標業務モジュールを決定した後、目標業務モジュールのメモリアクセス遅延を可能な限り小さくにすることを確保するために、実行主体は、まず目標業務モジュールが各NUMAノードに占有したメモリ量を決定するようにしてもよい。各NUMAノードのメモリアクセス帯域幅に応じて、目標NUMAノードを決定するようにしてもよい。たとえば、実行主体は、目標業務モジュールの最大メモリ量を占有したNUMAノードを目標NUMAノードとしてもよい。あるいは、メモリアクセス帯域幅最大のNUMAノードを目標NUMAノードとしてもよい。あるいは、メモリアクセス帯域幅と占有メモリ量を総合的に考慮して、両者を重み付けし、重み付け結果に応じて、NUMAノードを選択して目標NUMAノードとする。本実施例では、実行主体は、目標業務モジュールと最大メモリ量を占有したNUMAノードとをバンドリングし、最大メモリ量を占有したNUMAノードを目標業務モジュールとマッチングする目標NUMAノードとすることができる。
ステップ404で、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信する。
ステップ405で、目標NUMAノードのハードウェアリソース情報を取得する。
本実施例では、実行主体は、目標NUMAノードのハードウェアリソース情報を取得するようにしてもよい。これらのハードウェアリソース情報は、予め設定されたハードウェアリソース情報収集ツールを利用して収集されてもよく、各NUMAノードの元データを記憶データベースから取得するようにしてもよい。ハードウェアリソース情報は、NUMAノードに含まれるCPUコアの数、構成、一次キャッシュメモリーの大きさなど情報を含んでもよい。
ステップ406で、監視データ及びハードウェアリソース情報に従って、目標NUMAノードのリソース利用率を決定する。
実行主体は、目標NUMAノードのハードウェアリソース情報を取得した後、監視データ及びハードウェアリソース情報に基づいて、目標NUMAノードのリソース利用率を決定するようにしてもよい。具体的には、実行主体はメモリ容量及びメモリ使用量に応じてメモリの使用率を決定するようにしてもよい。
ステップ407で、リソース利用率が予め設定された閾値よりも大きいと決定されたことに応答し、NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定する。
本実施例では、実行主体は、目標NNUMAノードのリソース利用率が予め設定された閾値よりも大きいと判定すると、目標UMAノードのハードウェアリソースが飽和していると見なされる。上記の予め設定された閾値は90%であってもよい。なお、上記の予め設定された閾値は、実際の適用シーンに応じて技術者が設定した閾値であってもよい。ハードウェアリソースが飽和している場合には、目標NUMAノードの性能が良くないと認定される。このとき、NUMAノード集合から目標NUMAノードの予備NUMAノードを決定することができる。それにより予備NUMAノードに一部の目標業務モジュールのメモリアクセスリクエストを処理させる。具体的には、実行主体は、目標業務モジュールの各NUMAノードでのメモリ占有量が2番目に大きいNUMAノードを目標NUMAノードの予備NUMAノードとするようにしてもよい。あるいは、実行主体は各NUMAノードの残りリソース量に応じて目標NUMAノードの予備NUMAノードを選択するようにしてもよい。
本実施例のいくつの選択可能な実施形態では、具体的には、以下のステップ(図4に示されず)で予備NUMAノードを決定することができ、そのステップは、NUMAノード集合のうちの各NUMAノードのリソース利用率を決定するステップと、各NUMAノードのリソース利用率に応じて、NUMAノード集合から目標NUMAノードの予備NUMAノードを決定するステップと、を含む。
実施形態では、実行主体は、各NUMAノードのリソース利用率を決定し、その後、各NUMAノードのリソース利用率に応じて、NUMAノード集合から目標NUMAノードの予備NUMAノードを決定するようにしてもよい。たとえば、実行主体は、リソース利用率が最も低いのNUMAノードを予備NUMAノードとしてもよい。
ステップ408で、目標NUMAノードに送信された一部のメモリアクセスリクエストを予備NUMAノードに転送する。
予備NUMAノードを決定した後、実行主体は、目標NUMAノードの処理圧力を減少するように、目標NUMAノードに送信された一部のメモリアクセスリクエストを予備NUMAノードに転送するようにしてもよい。
例えば、目標NUMAノードのリソース利用率が95%で、別のNUMAノード1のリソース利用率が50%である場合、NUMAノード1のハードウェアリソースを十分に利用するために、実行主体はNUMAノード1を予備NUMAノードとし、20%のメモリアクセスリクエストをNUMAノード1に転送するようにしてもよく、このようにして、目標NUMAノードの性能を向上させるとともに、予備NUMAノード性能を低下させないという前提条件で、予備NUMAノードのハードウェアリソースを十分に利用する。
本願の上記実施例によるメモリアクセスリクエストスケジューリング方法は、各NUMAノードの性能が良好な状態にあることを確保できることにより、各業務モジュールの正常な実行を確保できる。
図5をさらに参照しながら、それは、本願によるメモリアクセスリクエストスケジューリング方法の更なる実施例のプロセス500を示す。本実施例のメモリアクセスリクエストスケジューリング方法は、サーバークラスターに適用することができる。図5に示すように、本実施例のメモリアクセスリクエストスケジューリング方法は次のステップを含み、
ステップ501で、少なくとも1つの業務モジュールの監視データを取得する。
ステップ502で、監視データに従って、少なくとも1つの業務モジュールから目標業務モジュールを決定する。
ステップ503で、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定する。
ステップ504で、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信する。
ステップ505で、監視データに従って、目標業務モジュールの実行状態情報を決定する。
本実施例では、実行主体は、監視データに従って、目標業務モジュールの実行状態情報を決定するようにしてもよい。ここでは、実行状態情報は複数のパラメータ値、たとえばメモリアクセス帯域幅値、メモリ利用率値などを含んでもよい。
ステップ506で、実行状態情報に応じて、目標業務モジュールが予め設定された条件を満たすか否かを決定する。
実行主体は、実行状態情報のうちの各パラメータ値と予め設定された閾値集合とを比較することで、目標業務モジュールが予め設定された条件を満たすか否かを決定するようにしてもよい。具体的には、実行状態情報のうちの各パラメータ値がいずれも閾値集合のうちの対応する閾値よりも小さい場合、目標業務モジュールが予め設定された条件を満たすと決定する。
ステップ507、予め設定された条件を満たさないことに応答し、目標業務モジュールに対応するリモートメモリを決定する。
目標業務モジュールが予め設定された条件を満たさない場合、実行主体は、目標業務モジュールに対応するリモートメモリを決定するようにしてもよい。具体的には、実行主体は、目標業務モジュールのプロセスアドレス空間レイアウトを解析し、メモリアクセスをサンプリングし、リモートメモリを認識するようにしてもよい。ここでは、リモートメモリはローカルメモリに対するものである。目標業務モジュールにバインドされた目標NUMAノードが所在するサーバーはローカルメモリである。リモートメモリはサーバークラスターのサーバーに位置するNUMAノードのメモリである。
ステップ508、リモートメモリのうちのデータを目標業務モジュールのローカルメモリにマイグレーションする。
実行主体は、リモートメモリを決定した後、リモートメモリのデータを目標業務モジュールのローカルメモリにマイグレーションするようにしてもよい。具体的には、実行主体は、カーネルシステムのインタフェースを介してリモートメモリのデータを目標業務モジュールのローカルメモリにマイグレーションするようにしてもよい。
このようにして、目標業務モジュールは、ローカルメモリにリモートメモリのコンテンツを読み取り、目標業務モデルの実行状態を提供することができる。
本願の上記実施例によるメモリアクセスリクエストスケジューリング方法は、各業務モジュールを監視することができ、各業務モジュールの性能を向上させる。
図6をさらに参照しながら、上記の各図に示される方法の実施として、本願は、メモリアクセスリクエストスケジューリング装置の一実施例を提供し、該装置実施例は、図2に示される方法実施例に対応し、該装置は、具体的には、様々電子デバイスに適用することができる。
図6に示すように、本実施例のメモリアクセスリクエストスケジューリング装置600は、監視データ取得ユニット601、業務モジュール決定ユニット602、目標ノード決定ユニット603及び第1のリクエストスケジューリングユニット604を備える。
監視データ取得ユニット601は、少なくとも1つの業務モジュールの監視データを取得するように構成される。
業務モジュール決定ユニット602は、監視データに従って、少なくとも1つの業務モジュールから目標業務モジュールを決定するように構成される。
目標ノード決定ユニット603は、監視データに従って、予め設定されたNUMAノード集合から目標業務モジュールとマッチングする目標NUMAノードを決定するように構成される。
第1のリクエストスケジューリングユニット604は、目標業務モジュールのメモリアクセスリクエストを目標NUMAノードに送信するように構成される。
本実施例のいくつの選択可能な実施形態では、業務モジュール決定ユニット602は、さらに、監視データに従って、メモリアクセス回数、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ、中央演算装置へのアクセスのレイテンシ、キャッシュメモリーへのアクセスのレイテンシ、異なるメモリデータタイプのデータ量のうちの少なくとも1項を決定し、決定された情報に基づいて、少なくとも1つの業務モジュールのメモリアクセス遅延感度値を決定し、メモリアクセス遅延感度値に応じて、少なくとも1つの業務モジュールから目標業務モジュールを決定するように構成されてもよい。
本実施例のいくつの選択可能な実施形態では、目標ノード決定ユニット603は、さらに、目標業務モジュールがNUMAノード集合の各NUMAノードに占有したメモリ量を決定し、各NUMAノードのメモリアクセス帯域幅及び/又は占有したメモリ量に応じて、目標NUMAノードを決定するように構成されてもよい。
本実施例のいくつの選択可能な実施形態では、装置600は、さらに、図6に示されないリソース情報取得ユニット、利用率決定ユニット、予備ノード決定ユニット及び第2のリクエストスケジューリングユニットを備えてもよい。
リソース情報取得ユニットは、目標NUMAノードのハードウェアリソース情報を取得するように構成される。
利用率決定ユニットは、監視データ及びハードウェアリソース情報に従って、目標NUMAノードのリソース利用率を決定するように構成される。
予備ノード決定ユニットは、リソース利用率が予め設定された閾値よりも大きいと決定されたことに応答し、NUMAノード集合から目標NUMAノードの予備NUMAノードを決定するように構成される。
第2のリクエストスケジューリングユニットは、目標NUMAノードに送信された一部のメモリアクセスリクエストを予備NUMAノードに転送するように構成される。
本実施例のいくつの選択可能な実施形態では、予備ノード決定ユニットは、さらに、NUMAノード集合のうちの各NUMAノードのリソース利用率を決定し、各NUMAノードのリソース利用率に応じて、NUMAノード集合から目標NUMAノードの予備NUMAノードを決定するように構成される。
本実施例のいくつの選択可能な実施形態では、装置600は、さらに、図6に示されない状態情報決定ユニット、判定ユニット、リモートメモリ決定ユニット及びデータマイグレーションユニットを備えてもよい。
状態情報決定ユニットは、監視データに従って、目標業務モジュールの実行状態情報を決定するように構成される。
判定ユニットは、実行状態情報に応じて、目標業務モジュールが予め設定された条件を満たすか否かを決定するように構成される。
リモートメモリ決定ユニットは、予め設定された条件を満たさないことに応答し、目標業務モジュールに対応するリモートメモリを決定するように構成される。
データマイグレーションユニットは、リモートメモリのうちのデータを目標業務モジュールのローカルメモリにマイグレーションするように構成される。
なお、メモリアクセスリクエストスケジューリング装置600に記載のユニット601乃至ユニット604は、それぞれ図2に説明される方法の各ステップに対応する。これにより、上文にメモリアクセスリクエストスケジューリング方法について説明されたオペレーションと特徴は、同様に装置600及びそれに含まれるユニットに適用し、ここでは繰り返し説明しない。
本願の実施例によれば、さらに、本願は電子デバイスと読み取り可能な記憶媒体を提供する。
図7に示すように、本願の実施例によるメモリアクセスリクエストスケジューリング方法を実行する電子デバイスのブロック図である。電子デバイスは、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバー、ブレードサーバー、メインフレーム、その他の適切なコンピュータなどのさまざまな態様のデジタルコンピュータを表すことを目的とする。電子デバイスは、パーソナルデジタル処理、セルラー方式の携帯電話、スマートフォン、ウェアラブルデバイス、及び他の類似するコンピューティング装置などのさまざまな態様のモバイル装置を表すこともできる。本文に示されるコンポーネント、それらの接続及び関係、ならびにそれらの機能は、単なる例であり、本文に記載されるおよび/または主張される本願の実現を限定することを意図しない。
図7に示すように、該電子デバイスは、1つまたは複数のプロセッサ701、メモリ702、及び高速インターフェース及び低速インターフェースを備える各コンポーネントを接続するためのインターフェースを備える。各コンポーネントは、異なるバスで相互に接続されており、共通のマザーボードにインストールしてもよいし、必要に応じて、他の方法でインストールしてもよい。プロセッサは、GUIのグラフィック情報を外部入/出力装置(インターフェースに結合されたディスプレイデバイスなど)に表示できるように、メモリ内またはメモリ上に記憶された命令を含む電子デバイスで実行された命令を処理でき、他の実施例では、必要とすれば、複数のプロセッサおよび/または複数のバスを、複数のメモリ及び複数のメモリと共に使用することができる。同様に、複数の電子デバイスを接続でき、各デバイスはいくつかの必要なオペレーティングを提供する(例えば、サーバーアレイ、ブレードサーバーグループ、またはマルチプロセッサシステムとする)。図7では、1つのプロセッサ701を例にする。
メモリ702は、すなわち、本願による非一時的なコンピュータ可読記憶媒体である。ただし、前記メモリは、少なくとも1つのプロセッサによって実行可能な命令を記憶するので、前記少なくとも1つのプロセッサに本願によるメモリアクセスリクエストスケジューリング方法を実行させる。本願の非一時的なコンピュータ可読記憶媒体は、コンピュータに本願によるメモリアクセスリクエストスケジューリング方法を実行させるためのコンピュータ命令を記憶する。
メモリ702は非一時的なコンピュータ可読記憶媒体として、非一時的なソフトウェアプログラム、非一時的なコンピュータによって実行可能なプログラム、及びモジュールを記憶することに用いられ、例えば、本願の実施例のメモリアクセスリクエストスケジューリング方法に対応するプログラム命令/モジュール(例えば、図6に示される監視データ取得ユニット601、業務モジュール決定ユニット602、目標ノード決定ユニット603及び第1のリクエストスケジューリングユニット604)プロセッサ701は、メモリ702に記憶された非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバーの様々な機能アプリケーション及びデータ処理を実行し、すなわち、上記の方法実施例のメモリアクセスリクエストスケジューリング方法を実現する。
メモリ702は、記憶プログラム領域と記憶データ領域を含んでもよく、ただし、記憶プログラム領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶してもよく、記憶データ領域は、メモリアクセスリクエストスケジューリング方法を実行する電子デバイスの使用のため、作成されたデータなどを記憶することができ、また、メモリ702は、高速ランダムアクセスメモリを含んでもよく、さらに非一時的なメモリを含んでもよく、例えば、少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイス、または他の非一時的なソリッドステートストレージデバイスなどの非一時的なメモリを含んでもよく、いくつかの実施例では、メモリ702は、プロセッサ701に対してリモートで設定されたメモリを選択してもよく、これらのリモートメモリは、ネットワークを介してメモリアクセスリクエストスケジューリング方法を実行する電子デバイスに接続されてもよい。上記のネットワークの例としては、インターネット、ブロックチェーンネットワーク、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びそれらの組み合わせなどを含むがこれらに限定されない。
メモリアクセスリクエストスケジューリング方法を実行する電子デバイスは、入力装置703及び出力装置704をさらに備えてよい。プロセッサ701、メモリ702、入力装置703、出力装置704は、バスなどで接続されてもよいが、図7にバスによる接続を例にする。
入力装置703は、入力デジタルまたは文字情報を受信し、メモリアクセスリクエストスケジューリング方法を実行する電子デバイスのユーザ設定及び機能制御に関連するキー信号入力を生成することができる。例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ以上のマウスボタン、トラックボール、ジョイスティック、その他の入力装置。出力装置704は、ディスプレイデバイス、補助照明装置(例えば、LED)、触覚フィードバック装置(例えば、振動モーター)などを備えてもよい。該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを備えてもよい。いくつかの実施例では、ディスプレイデバイスはタッチスクリーンであってもよい。
ここでは説明されるシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにおいて実現できる。これらの様々な実施形態は、以下を含んでもよく、1つまたは複数のコンピュータプログラムに実施され、該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行および/または解釈されてもよく、該プログラマブルプロセッサは、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータと命令を受信し、そのデータと命令をストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置に送信できる専用または汎用のプログラマブルプロセッサであってもよい。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含み、高レベルのプロセス及び/またはオブジェクト指向プログラミング言語、及び/またはアセンブリ/機械言語を利用してこれらのコンピュータプログラムを実施することができる。本文で使用されるように、「機械読み取り可能な媒体」及び「コンピュータ可読媒体」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために用いられる任意のコンピュータプログラム製品、デバイス、および/または装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジック装置(PLD)を指す。機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために用いられる任意の信号を指す。
ユーザとのインタラクティブを提供するために、コンピュータにここでは説明されるシステム及び技術を実施してもよく、該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニター)、及びキーボードとポインティング装置(マウスやトラックボールなど)を備え、ユーザが該キーボードとポインティング装置を介してコンピュータに入力を提供することができる。他のタイプの装置もユーザとのインタラクティブを提供するために用いられ、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、任意の形式(音入力、音声入力、または触覚入力を含み)でユーザからの入力を受信することができる。
ここでは説明されるシステムと技術は、バックエンドコンポーネント(例えば、データサーバー)を含むコンピュータシステム、ミドルウェアコンポーネント(例えば、アプリケーションサーバー)を含むコンピュータシステム、またはフロントエンドコンポーネントを含むコンピュータシステム(例えば、グラフィカルユーザインターフェイスまたはWebブラウザーを備え、ユーザが該ラフィカルユーザインターフェイスまたはWebブラウザーでシステムと技術の実施例とインタラクティブできるユーザのコンピュータ)、またはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントを含む任意の組み合わせに実施してもよく、システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信(通信ネットワークなど)を介して相互に接続してもよい。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、ブロックチェーンネットワークが挙げられる。
コンピュータシステムは、クライアント端末及びサーバーを含んでもよい。クライアント端末とサーバーは、一般的に互いに離れており、通常は通信ネットワークを介してインタラクティブする。対応するコンピュータ上で、互いにクライアント端末/サーバー関係を持つコンピュータプログラムを実行することによりクライアント端末とサーバーの関係を生成する。
本願実施例の技術解決手段によれば、各業務モジュールから適切な業務モジュールを決定し、該業務モジュールのメモリアクセスリクエストをマッチングのNUMAノードにスケジューリングすることができ、業務モジュールのメモリアクセス遅延を減少させる。
なお、上記に示される様々な形態のプロセスを使用して再度ソートし、ステップを追加し、削除できる。例えば、本願に記載される各ステップは、本願に開示される技術的解決手段の所望の結果を達成できる限り、並列、順次、または異なる順序で実行されてもよく、ここでは本文に限定されない。
上記の具体的にはな実施形態は、本願の特許範囲を限定するものではない。当業者は、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブ組み合わせ、及び置換を行うことができると理解すべきである。本願の精神及び原則を逸脱せずに行われる補正、同等など置換、改良などはすべて本願の特許範囲に含まれるべきである。

Claims (13)

  1. メモリアクセスリクエストスケジューリング方法であって、
    少なくとも1つの業務モジュールの監視データを取得するステップと、
    前記監視データに従って、前記少なくとも1つの業務モジュールから目標業務モジュールを決定するステップと、
    前記監視データに従って、予め設定されたNUMAノード集合から前記目標業務モジュールとマッチングする目標NUMAノードを決定するステップと、
    前記目標業務モジュールのメモリアクセスリクエストを前記目標NUMAノードに送信するステップと、を含み、
    前記監視データに従って、前記少なくとも1つの業務モジュールから目標業務モジュールを決定するステップは、
    前記監視データに従って、メモリアクセス回数、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ、中央演算装置へのアクセスのレイテンシ、キャッシュメモリーへのアクセスのレイテンシ、異なるメモリデータタイプのデータ量のうちの少なくとも1項を決定することと、
    決定された情報に基づいて、前記少なくとも1つの業務モジュールのメモリアクセス遅延感度値を決定することと、
    前記メモリアクセス遅延感度値に応じて、前記少なくとも1つの業務モジュールから目標業務モジュールを決定することと、を含む、方法。
  2. 前記監視データに従って、予め設定されたNUMAノード集合から前記目標業務モジュールとマッチングする目標NUMAノードを決定するステップは、
    前記目標業務モジュールが前記NUMAノード集合の各NUMAノードに占有したメモリ量を決定することと、
    各NUMAノードのメモリアクセス帯域幅及び/又は占有したメモリ量に応じて、前記目標NUMAノードを決定することと、を含む請求項に記載の方法。
  3. 前記方法は、さらに、
    前記目標NUMAノードのハードウェアリソース情報を取得するステップと、
    前記監視データ及び前記ハードウェアリソース情報に従って、前記目標NUMAノードのリソース利用率を決定するステップと、
    前記リソース利用率が予め設定された閾値よりも大きいと決定されたことに応答し、前記NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定するステップと、
    前記目標NUMAノードに送信された一部のメモリアクセスリクエストを前記予備NUMAノードに転送するステップと、を含む請求項1に記載の方法。
  4. 前記NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定するステップは、
    前記NUMAノード集合のうちの各NUMAノードのリソース利用率を決定することと、
    各NUMAノードのリソース利用率に応じて、前記NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定することと、を含む請求項に記載の方法。
  5. 前記方法は、さらに、
    前記監視データに従って、前記目標業務モジュールの実行状態情報を決定するステップと、
    前記実行状態情報に応じて、前記目標業務モジュールが予め設定された条件を満たすか否かを決定するステップと、
    前記予め設定された条件を満たさないことに応答し、前記目標業務モジュールに対応するリモートメモリを決定するステップと、
    前記リモートメモリのうちのデータを前記目標業務モジュールのローカルメモリにマイグレーションするステップと、を含む請求項1に記載の方法。
  6. メモリアクセスリクエストスケジューリング装置であって、
    少なくとも1つの業務モジュールの監視データを取得するように構成される監視データ取得ユニットと、
    前記監視データに従って、前記少なくとも1つの業務モジュールから目標業務モジュールを決定するように構成される業務モジュール決定ユニットと、
    前記監視データに従って、予め設定されたNUMAノード集合から前記目標業務モジュールとマッチングする目標NUMAノードを決定するように構成される目標ノード決定ユニットと、
    前記目標業務モジュールのメモリアクセスリクエストを前記目標NUMAノードに送信するように構成される第1のリクエストスケジューリングユニットと、を備え
    前記業務モジュール決定ユニットは、さらに、
    前記監視データに従って、メモリアクセス回数、メモリアクセス帯域幅、メモリへのアクセスのレイテンシ、中央演算装置へのアクセスのレイテンシ、キャッシュメモリーへのアクセスのレイテンシ、異なるメモリデータタイプのデータ量のうちの少なくとも1項を決定し、
    決定された情報に基づいて、前記少なくとも1つの業務モジュールのメモリアクセス遅延感度値を決定し、
    前記メモリアクセス遅延感度値に応じて、前記少なくとも1つの業務モジュールから目標業務モジュールを決定するように構成される、装置。
  7. 前記目標ノード決定ユニットは、さらに、
    前記目標業務モジュールが前記NUMAノード集合の各NUMAノードに占有したメモリ量を決定し、
    各NUMAノードのメモリアクセス帯域幅及び/又は占有したメモリ量に応じて、前記目標NUMAノードを決定するように構成される請求項に記載の装置。
  8. 前記装置は、さらに、
    前記目標NUMAノードのハードウェアリソース情報を取得するように構成されるリソース情報取得ユニットと、
    前記監視データ及び前記ハードウェアリソース情報に従って、前記目標NUMAノードのリソース利用率を決定するように構成される利用率決定ユニットと、
    前記リソース利用率が予め設定された閾値よりも大きいと決定されたことに応答し、前記NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定するように構成される予備ノード決定ユニットと、
    前記目標NUMAノードに送信された一部のメモリアクセスリクエストを前記予備NUMAノードに転送するように構成される第2のリクエストスケジューリングユニットと、を備える請求項に記載の装置。
  9. 前記予備ノード決定ユニットは、さらに、
    前記NUMAノード集合のうちの各NUMAノードのリソース利用率を決定し、
    各NUMAノードのリソース利用率に応じて、前記NUMAノード集合から前記目標NUMAノードの予備NUMAノードを決定するように構成される請求項に記載の装置。
  10. 前記装置は、さらに、
    前記監視データに従って、前記目標業務モジュールの実行状態情報を決定するように構成される状態情報決定ユニットと、
    前記実行状態情報に応じて、前記目標業務モジュールが予め設定された条件を満たすか否かを決定するように構成される判定ユニットと、
    前記予め設定された条件を満たさないことに応答し、前記目標業務モジュールに対応するリモートメモリを決定するように構成されるリモートメモリ決定ユニットと、
    前記リモートメモリのうちのデータを前記目標業務モジュールのローカルメモリにマイグレーションするように構成されるデータマイグレーションユニットと、を備える請求項に記載の装置。
  11. メモリアクセスリクエストスケジューリング電子デバイスであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと通信接続されるメモリと、を備え、
    前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記少なくとも1つのプロセッサが請求項1~5のいずれか1項に記載の方法を実行できるように、前記命令が前記少なくとも1つのプロセッサに実行される電子デバイス。
  12. コンピュータ命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ命令は、コンピュータに請求項1~5のいずれか1項に記載の方法を実行させる。
  13. コンピュータプログラムであって、前記コンピュータプログラムは、プロセッサにより実行されると、請求項1~のいずれか1項に記載の方法を実行させるコンピュータプログラム。
JP2021047577A 2020-08-24 2021-03-22 メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム Active JP7282823B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010856106.7A CN114090223A (zh) 2020-08-24 2020-08-24 访存请求调度方法、装置、设备以及存储介质
CN202010856106.7 2020-08-24

Publications (2)

Publication Number Publication Date
JP2022033688A JP2022033688A (ja) 2022-03-02
JP7282823B2 true JP7282823B2 (ja) 2023-05-29

Family

ID=75223053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021047577A Active JP7282823B2 (ja) 2020-08-24 2021-03-22 メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム

Country Status (5)

Country Link
US (1) US11372594B2 (ja)
EP (1) EP3961395A1 (ja)
JP (1) JP7282823B2 (ja)
KR (1) KR102563165B1 (ja)
CN (1) CN114090223A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208939B (zh) * 2022-07-14 2024-03-19 Oppo广东移动通信有限公司 访问控制方法、装置、存储介质及电子设备
CN117519957A (zh) * 2022-07-30 2024-02-06 华为技术有限公司 一种数据处理方法及装置
CN115378842B (zh) * 2022-08-26 2024-07-09 中国银行股份有限公司 一种资源监控的方法、装置、存储介质及设备
CN115515188A (zh) * 2022-08-30 2022-12-23 北京达佳互联信息技术有限公司 流量控制方法、装置、电子设备及存储介质
CN115543222B (zh) * 2022-11-30 2023-03-10 苏州浪潮智能科技有限公司 一种存储优化方法、系统、设备及可读存储介质
KR102569833B1 (ko) * 2022-12-30 2023-08-23 주식회사 에스티씨랩 디지털 서비스 기반 서비스 서버의 모니터링을 이용한 유량 제어 방법, 서버 및 시스템
CN118035514B (zh) * 2024-04-12 2024-07-23 深圳大学 基于区块链系统的敏感信息过滤方法、装置、设备和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013567A (ja) 2002-06-07 2004-01-15 Nec Corp 動的負荷均等化方法および動的負荷均等化装置
JP2005508545A (ja) 2001-11-07 2005-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 非均一メモリ・アクセス(numa)コンピュータ・システムでタスクをディスパッチする方法および装置
JP2006003972A (ja) 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP2007249445A (ja) 2006-03-15 2007-09-27 Hitachi Ltd クラスタシステムの負荷分散制御方法およびその装置
JP2010211506A (ja) 2009-03-10 2010-09-24 Nec Corp 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
JP2011238278A (ja) 2011-07-22 2011-11-24 Hitachi Ltd 仮想計算機の制御方法
JP2012247827A (ja) 2011-05-25 2012-12-13 Ricoh Co Ltd プログラム生成装置、プログラム生成方法及びプログラム
JP2015504541A (ja) 2011-11-30 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチプロセッサ・コンピューティング・システムにおけるメモリ・アクセスを動的に最適化する方法、プログラム、及びコンピューティング・システム
JP2015153402A (ja) 2014-02-19 2015-08-24 富士通株式会社 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
JP2019049843A (ja) 2017-09-08 2019-03-28 富士通株式会社 実行ノード選定プログラム、実行ノード選定方法及び情報処理装置
US20200073703A1 (en) 2017-04-24 2020-03-05 Shanghai Jiao Tong University Apparatus and method for virtual machine scheduling in non-uniform memory access architecture

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347362B1 (en) 1998-12-29 2002-02-12 Intel Corporation Flexible event monitoring counters in multi-node processor systems and process of operating the same
KR100700156B1 (ko) * 2006-02-22 2007-03-28 삼성전자주식회사 다이나믹 메모리의 리프레쉬 컨트롤러, 이를 포함하는반도체 시스템 및 다이나믹 메모리의 리프레쉬 제어 방법.
US9015446B2 (en) * 2008-12-10 2015-04-21 Nvidia Corporation Chipset support for non-uniform memory access among heterogeneous processing units
US9535767B2 (en) * 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
KR101097777B1 (ko) * 2010-02-05 2011-12-23 한국과학기술원 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체
US8898664B2 (en) * 2010-06-01 2014-11-25 Microsoft Corporation Exposure of virtual cache topology to a guest operating system
CN104252419B (zh) * 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
US10255091B2 (en) 2014-09-21 2019-04-09 Vmware, Inc. Adaptive CPU NUMA scheduling
US10452572B2 (en) 2016-10-06 2019-10-22 Vmware, Inc. Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive
JP6734804B2 (ja) * 2017-03-29 2020-08-05 日本電信電話株式会社 キャッシュサーバおよびキャッシュ方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005508545A (ja) 2001-11-07 2005-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 非均一メモリ・アクセス(numa)コンピュータ・システムでタスクをディスパッチする方法および装置
JP2004013567A (ja) 2002-06-07 2004-01-15 Nec Corp 動的負荷均等化方法および動的負荷均等化装置
JP2006003972A (ja) 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP2007249445A (ja) 2006-03-15 2007-09-27 Hitachi Ltd クラスタシステムの負荷分散制御方法およびその装置
JP2010211506A (ja) 2009-03-10 2010-09-24 Nec Corp 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
JP2012247827A (ja) 2011-05-25 2012-12-13 Ricoh Co Ltd プログラム生成装置、プログラム生成方法及びプログラム
JP2011238278A (ja) 2011-07-22 2011-11-24 Hitachi Ltd 仮想計算機の制御方法
JP2015504541A (ja) 2011-11-30 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチプロセッサ・コンピューティング・システムにおけるメモリ・アクセスを動的に最適化する方法、プログラム、及びコンピューティング・システム
JP2015153402A (ja) 2014-02-19 2015-08-24 富士通株式会社 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US20200073703A1 (en) 2017-04-24 2020-03-05 Shanghai Jiao Tong University Apparatus and method for virtual machine scheduling in non-uniform memory access architecture
JP2019049843A (ja) 2017-09-08 2019-03-28 富士通株式会社 実行ノード選定プログラム、実行ノード選定方法及び情報処理装置

Also Published As

Publication number Publication date
US20210208819A1 (en) 2021-07-08
US11372594B2 (en) 2022-06-28
JP2022033688A (ja) 2022-03-02
EP3961395A1 (en) 2022-03-02
KR20220025645A (ko) 2022-03-03
KR102563165B1 (ko) 2023-08-04
CN114090223A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
JP7282823B2 (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
CN111406250B (zh) 无服务器计算环境中的使用经预取的数据的配设
US9684562B2 (en) Automatic serial starting of resource groups on failover based on the prediction of aggregate resource usage
JP2020537784A (ja) ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ
US11474712B2 (en) Method, apparatus, device and storage medium for managing access request
JP5923627B2 (ja) 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置
US20160210171A1 (en) Scheduling in job execution
KR20210092689A (ko) 그래프 데이터베이스의 순회 방법, 장치, 설비 및 저장매체
US9473572B2 (en) Selecting a target server for a workload with a lowest adjusted cost based on component values
EP3846036B1 (en) Matrix storage method, matrix access method, apparatus and electronic device
US20140331239A1 (en) Deploying big data software in a multi-instance node
CN110688229B (zh) 任务处理方法和装置
US20100269119A1 (en) Event-based dynamic resource provisioning
Lin et al. Impact of MapReduce policies on job completion reliability and job energy consumption
US8543687B2 (en) Moving deployment of images between computers
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
JP7265618B2 (ja) 深層学習トレーニングタスクに向けたプロセッサメモリを最適化するための方法及び装置
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
US8838414B2 (en) Determining when to create a prediction based on deltas of metric values
WO2020001295A1 (en) Client-server architecture for multicore computer system to realize single-core-equivalent view
US20140143457A1 (en) Determining a mapping mode for a dma data transfer
US9251101B2 (en) Bitmap locking using a nodal lock
Chen et al. Simulating spark cluster for deployment planning, evaluation and optimization
JP2021157805A (ja) テキスト予測方法、装置、機器及び記憶媒体
CN114817058A (zh) 并发风险检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230517

R150 Certificate of patent or registration of utility model

Ref document number: 7282823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150