JP2019500700A - コンポーネント論理スレッド量の調節方法及びデバイス - Google Patents

コンポーネント論理スレッド量の調節方法及びデバイス Download PDF

Info

Publication number
JP2019500700A
JP2019500700A JP2018534546A JP2018534546A JP2019500700A JP 2019500700 A JP2019500700 A JP 2019500700A JP 2018534546 A JP2018534546 A JP 2018534546A JP 2018534546 A JP2018534546 A JP 2018534546A JP 2019500700 A JP2019500700 A JP 2019500700A
Authority
JP
Japan
Prior art keywords
logical
component
threads
thread
added
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.)
Pending
Application number
JP2018534546A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2019500700A publication Critical patent/JP2019500700A/ja
Pending legal-status Critical Current

Links

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/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
    • 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/505Allocation 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 the load
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

コンポーネント論理スレッドの数を調節する方法及び装置が提供される。本方法は、コンポーネントによって呼び出し可能な複数の論理スレッドを取得すること(S11)と、それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、負荷状態は通常負荷状態及び異常負荷状態を含む、判断すること(S12)と、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断すること(S13)と、コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節すること(S14)と、を含む。本方法及び本装置を使用することによって、データの実時間算出を保証しながらもリソースの利用率は改善される。

Description

本開示は、インターネットの分野に関し、より詳細には、コンポーネント論理スレッドの数を調節するための方法及び装置に関する。
一般的に、コンピュータクラスタは分散実時間計算システムに配設されてよい。データの実時間計算は、コンピュータクラスタを使用することによって実施されてよい。典型的には、マスタデバイス及び複数のスレーブデバイスがクラスタに配設されてよい。実時間計算プログラムはマスタデバイスに記憶される。処理される必要があるデータがある時(すなわち、外部データが分散実時間計算システムに入力される時)、マスタデバイスにおける実時間計算プログラムはデータ計算を実施するためにスレーブデバイスにおいてリソースを起動することになる。
実際のアプリケーションでは、実時間計算プログラムは複数のコンポーネントから構成され、それぞれのコンポーネントは特定的なタスクを実行する。スレーブデバイスはマスタデバイスが呼び出す複数の論理スレッドリソースを提供してよい。従って、マスタデバイスは一般的に、一定の論理スレッドリソースを実時間計算プログラムにおけるそれぞれのコンポーネントに予め割り当てる。処理される必要があるデータがある時、実時間計算プログラムにおけるそれぞれのコンポーネントは事前割り当てされた論理スレッドリソースを呼び出してタスクを実行することで、データの計算を完了することになる。
実時間計算システムにおいて、外部から入力されるデータのデータ量は一定でないが、それぞれのコンポーネントに割り当てられる論理スレッドリソースは一定である。大量の外部データが入力される時、それぞれのコンポーネントは処理する多くのタスクを有する。この場合、少数の論理スレッドリソースが1つのコンポーネントに事前割り当てされる場合、コンポーネントの実行効率は低くなるため、データの実時間計算に影響を及ぼす。同様に、少量の外部データが入力されるが、多くの論理スレッドリソースが1つのコンポーネントに事前割り当てされる場合、リソースは浪費されることになる。従って、コンポーネント論理スレッドの数を調節するための方法及び装置が、データの実時間計算を保証しながらもリソースの利用率を改善するために、従来の技術において至急必要とされている。
本開示の例示の実施形態は、データの実時間計算を保証しながらもリソースの利用率を改善するための、コンポーネント論理スレッドの数を調節するための方法及び装置を提供する。
前述の技術的問題を解決するために、本開示の例示の実施形態は以下の技術的解決策を開示する。
一態様では、本開示は、コンポーネント論理スレッドの数を調節する方法であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得することと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、負荷状態は通常負荷状態及び異常負荷状態を含む、判断することと、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断することと、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節することと、を含む方法を開示する。
オプションとして、判断結果に従ってコンポーネントの論理スレッドの数を調節するステップは、
コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータのデータ量/1秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節することであって、送出装置はデータをコンポーネントに送る装置である、調節することを含む。
オプションとして、異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されるデータによって占有される空間/メッセージキューの事前割り当てされた記憶空間に等しく、それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するステップは、
論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きいかどうかを判断することと、
利用率が第1の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断することと、
現在の論理スレッドに対応するデータ処理キューの利用率が、第1の事前設定閾値より大きくない場合、該利用率が第2の事前設定閾値より小さいかどうかを判断することと、
利用率が第2の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあることを判断することと、を含む。
オプションとして、コンポーネントの論理スレッドの数がコンポーネントの全ての論理スレッドの負荷状態に従って調節される必要があるかどうかを判断するステップは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えることと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出することであって、高負荷確率算出式=高負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数、及び低負荷確率算出式=低負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、算出することと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つは第3の事前設定閾値より大きいかどうかを判断することと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つが第3の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があると判断することと、を含む。
オプションとして、論理スレッドは動作プロセスにおいて実行し、本方法は、
コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断することと、
論理スレッドが、追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドは追加されることが許容可能であるかどうかを判断することと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加することと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断することと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除することと、をさらに含む。
オプションとして、論理スレッドが、現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能であるかどうかを判断するステップは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断することと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断することであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数=(動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために動作プロセスによって占有されるリソース*第4の事前設定値−1)*現在の動作プロセスにおいて実行する論理スレッドの数である、判断することと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えることと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断することと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断することと、を含む。
オプションとして、追加される必要がある動作プロセスの数を判断するステップは、事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得することと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出することであって、動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nはコンポーネントに追加される必要がある論理スレッドの数であり、Tは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、T、N、及びQは正の整数である、算出することと、を含む。
オプションとして、本方法は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断することと、
現在のコンポーネントによって呼び出し可能な第3の論理スレッドと、第1の論理スレッドとの間の通信接続、及び、第3の論理スレッドと第2の論理スレッドとの間の通信接続を確立することと、をさらに含む。
オプションとして、本方法は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断することと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除することと、をさらに含む。
別の態様では、本開示は、コンポーネント論理スレッドの数を調節するための装置であって、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュールと、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第1の判断モジュールであって、負荷状態は通常負荷状態及び異常負荷状態を含む、第1の判断モジュールと、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第1の判定モジュールと、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節するように構成された調節モジュールと、を含む装置をさらに開示する。
オプションとして、調節モジュールは、
コンポーネントの論理スレッドの数を、コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータのデータ量/1秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節するように構成された調節ユニットであって、送出装置はデータをコンポーネントに送る装置である、調節ユニットを含む。
オプションとして、異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されたデータによって占有される空間/メッセージキューの事前割り当てされた記憶空間に等しく、判断モジュールは、
論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きいかどうかを判断するように構成された第1の判定ユニットと、
利用率が第1の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
現在の論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きくない場合、該利用率が第2の事前設定閾値より小さいかどうかを判断するように構成された第2の判定ユニットと、
利用率が第2の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む。
オプションとして、判断モジュールは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第1の計数ユニットと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出するように構成された第1の算出ユニットであって、高負荷確率算出式=高負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数であり、低負荷確率算出式=低負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、第1の算出ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つは第3の事前設定閾値より大きいかどうかを判断するように構成された第3の判定ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つが第3の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があると判断するように構成された第1の判断ユニットと、を含む。
オプションとして、本装置は、
コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第2の判断モジュールと、
論理スレッドが、追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドが追加されることが許容可能であるかどうかを判断するように構成された第2の判定モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加するように構成された追加モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断するように構成された第3の判断モジュールと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含む。
オプションとして、第2の判定モジュールは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第2の判断ユニットと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第3の判断ユニットであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数=(動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために動作プロセスによって占有されるリソース*第4の事前設定値−1)*現在の動作プロセスにおいて実行する論理スレッドの数である、第3の判断ユニットと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第2の計数ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断するように構成された第4の判定ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であることを判断するように構成された第3の判断ユニットと、を含む。
オプションとして、第3の判断ユニットは、
事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得するように構成された取得サブユニットと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nはコンポーネントに追加される必要がある論理スレッドの数であり、Tは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、T、N、及びQは正の整数である、算出サブユニットと、を含む。
オプションとして、装置は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断するように構成された第4の判断モジュールと、
現在のコンポーネントによって呼び出し可能な第3の論理スレッドと、第1の論理スレッドとの間の通信接続、及び、第3の論理スレッドと第2の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む。
オプションとして、装置は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断するように構成された第3の判定モジュールと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除するように構成された削除モジュールと、をさらに含む。
上記の技術的解決策から示されるように、本開示の例示の実施形態において、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出し可能な論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
本開示の例示の実施形態、または従来の技術における技術的解決策をより明確に示すために、例示の実施形態または従来の技術を説明するための添付の図面について以下で簡潔に紹介する。当業者が創意工夫なくこれらの添付の図面から他の図面を得ることができることは明らかである。
本開示の例示の実施形態による、コンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるデータ処理キューの概略図である。 本開示の例示の実施形態による論理スレッドの概略図である。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための方法の概略的なフローチャートである。 本開示の例示の実施形態によるコンポーネント論理スレッドの数を調節するための装置の概略的なモジュール図である。
本開示の例示の実施形態における技術的解決策について、本開示の例示の実施形態における添付の図面を参照して明確にかつ完全に後述する。説明される例示の実施形態が、本開示の全ての例示の実施形態ではなく一部の例示の実施形態を単に表していることは明らかである。本開示の例示の実施形態に基づいて、創意工夫なく当業者によって得られる他の例示の実施形態全ては、本開示の保護範囲に属するものとする。
本開示は、コンポーネント論理スレッドの数を調節するための方法を開示する。図1に示されるように、本方法は、少なくとも以下のステップを含む。
ステップS11:コンポーネントによって呼び出し可能な複数の論理スレッドを取得する。
ステップS12:それぞれの論理スレッドの負荷状態を、それぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断し、負荷状態は、通常負荷状態及び異常負荷状態を含む。
本開示の例示の実施形態では、それぞれの論理スレッド内にデータ処理キューがある。データ処理キューは、対応する論理スレッドによって処理される必要があるデータを記憶するために使用される。本開示の例示の実施形態では、データ処理キューは、具体的には図2に示されるようなものであってよく、陰影部は、処理キューに記憶されたデータによって既に占有されている占有空間を表す。
本開示の例示の実施形態では、メッセージキューの利用率=メッセージキューに記憶されたデータによって占有される空間/メッセージキューの事前割り当てされた記憶空間である。よって、対応する論理スレッドの負荷状態、すなわち、通常負荷状態または異常負荷状態は、メッセージキューの利用率に従って判断されてよい。異常負荷状態は、具体的には、非常に高い利用率による高負荷状態、及び非常に低い利用率による低負荷状態を含んでよく、論理スレッドは、データの実時間処理を保証することはできない。低負荷状態において、コンポーネントに割り当てられた論理スレッドリソースは浪費されることになる。
ステップS13:コンポーネントの論理スレッドの数が調節される必要があるかどうかを、コンポーネントの論理スレッドの負荷状態に従って判断し、はいの場合、ステップS14が行われ、その他の場合は、手続きを終了する。
本開示の例示の実施形態では、コンポーネントの論理スレッドの数が調節される必要があるかどうかは、コンポーネントによって呼び出し可能な全ての論理スレッドにおける通常負荷状態または異常負荷状態の論理スレッドの割合に従って、具体的に判断されてよい。例えば、通常負荷状態の論理スレッドがコンポーネントによって呼ばれてよい論理スレッドの80%を占める場合、コンポーネントの論理スレッドの数は調節される必要がないと判断されてよい。異常負荷状態の論理スレッドが80%を占める場合、コンポーネントの論理スレッドの数は調節される必要があると判断されてよい。
ステップS14:コンポーネントの論理スレッドの数を判断結果に従って調節する。
本開示の例示の実施形態では、コンポーネントの論理スレッドの数は、具体的には、コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータのデータ量/1秒当たりにコンポーネントによって受信されるデータのデータ量となるように、調節されてよく、送出装置はデータをコンポーネントに送る装置である。
本開示の例示の実施形態では、実時間計算プログラムは、一般的に、スパウト(メッセージソース)コンポーネント及びボルト(メッセージ処理)コンポーネントから構成される。複数のコンポーネントがデータを繰り返し処理してよい。図3に示されるように、例えば、実時間計算プログラムは、1つのスパウトコンポーネント及び2つのボルトコンポーネントから構成され、2つのボルトコンポーネントは、それぞれ、第1のボルトコンポーネント及び第2のボルトコンポーネントである。本開示の例示の実施形態では、スパウトコンポーネントは、メッセージソースから送られたデータを受信し、かつデータを処理するために事前割り当てされた論理スレッドを呼び出してよい。処理が完了すると、スパウトコンポーネントは、下流コンポーネントとしての役割を果たす第1のボルトコンポーネントにデータを送るための上流コンポーネントとしての役割を果たす。同様に、データ処理が完了すると、第1のボルトコンポーネントは、下流コンポーネントとしての役割を果たす第2のボルトコンポーネントにデータを送るための上流コンポーネントとしての役割を果たすことになる。本開示の例示の実施形態では、現在のコンポーネントがスパウトコンポーネントである場合、送出装置は、メッセージソースデバイスであってよい。現在のコンポーネントがボルトコンポーネントである場合、送出装置は現在のコンポーネントの上流コンポーネントであってよい。
上記の技術的解決策から示されるように、本開示の例示の実施形態において、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出されてよい論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
本開示の別の実施可能な例示の実施形態では、図4に示されるように、前述の例示の実施形態全てにおけるステップS12は、以下のステップを含んでよい。
ステップS41:論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きいかどうかを判断し、はいの場合、ステップS42を行い、その他の場合、ステップS43を行う。
本開示の例示の実施形態において、ユーザは、第1の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第1の事前設定閾値は80%である。
ステップS42:論理スレッドは高負荷状態にあると判断する。
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きい時、論理スレッドは処理されるべき大量のデータを有し、実時間でデータを処理できないことを示し、論理スレッドは高負荷状態にあると判断される。
ステップS43:現在の論理スレッドに対応するデータ処理キューの利用率が第2の事前設定閾値より小さいかどうかを判断し、はいの場合、ステップS44を行い、その他の場合、ステップS45を行う。
本開示の例示の実施形態では、ユーザはまた、第2の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第2の事前設定閾値は20%である。
ステップS44:論理スレッドは低負荷状態にあると判断する。
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第2の事前設定閾値より小さい時、論理スレッドはアイドル状態であり、かつ、リソースを浪費していることを示し、論理スレッドは低負荷状態であると判断される。
ステップS45:論理スレッドは通常負荷状態にあると判断する。
本開示の例示の実施形態では、論理スレッドに対応するデータ処理キューの利用率が第2の事前設定閾値以上であり、かつ、第1の事前設定閾値以下である時、論理スレッドは通常にデータを処理してよい、すなわち、論理スレッドはリソースを浪費することなくデータの実時間処理を保証し得ることを示す。よって、論理スレッドは通常負荷状態にあると判断される。
上記から示されるように、本開示の例示の実施形態における方法を使用することによって、論理スレッドの負荷状態が判断されてよく、次いで、コンポーネントによって呼び出されてよい全ての論理スレッドの負荷状態が判断されてよい。
本開示の別の実施可能な例示の実施形態では、図5に示されるように、前述の例示の実施形態全てにおけるステップS13は、以下のステップを含んでよい。
ステップS51:コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ、数える。
ステップS52:高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出し、高負荷確率算出式=高負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数、及び低負荷確率算出式=低負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である。
本開示の例示の実施形態において、精度を改善するために、現在のコンポーネントにおける全ての論理スレッドの負荷状態は、事前設定された時間の間隔で収集されてよい。全ての論理スレッドの負荷状態が事前設定された回数収集された後、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数が数えられる。その後、コンポーネントの高負荷確率及び低負荷確率は、以下の算出式を使用することによって算出される:高負荷確率算出式=高負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数*事前設定された回数、及び、低負荷確率算出式=低負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数*事前設定された回数。
ステップS53:コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つが第3の事前設定閾値より大きいかどうかを判断し、はいの場合、ステップS54を行い、その他の場合、ステップS55を行う。
本開示の例示の実施形態では、ユーザは、第3の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第3の事前設定閾値は80%に設定されてよい。
本開示の例示の実施形態では、ステップS54は、コンポーネントの高負荷確率が第3の事前設定閾値より大きい時に行われてよい、またはステップS54は、コンポーネントの低負荷確率が第3の事前設定閾値より大きい時に行われてよい、またはステップS54は、コンポーネントの高負荷確率及び低負荷確率の両方が第3の事前設定閾値より大きい時に行われてよい。
ステップS54:調節される必要があるコンポーネントの論理スレッドの数を判断する。
ステップS55:調節される必要がないコンポーネントの論理スレッドの数を判断する。
上記から示されるように、本開示の例示の実施形態では、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態の全てにおける論理スレッドは全て、動作プロセスにおいて実行する。図6に示されるように、全ての前述の例示の実施形態における方法は、以下のステップをさらに含んでよい。
ステップS61:コンポーネントに対して追加または削除される必要がある論理スレッドを、調節される必要があるコンポーネントの論理スレッドの数、及び現在の論理スレッドの数に従って、判断する。
本開示の例示の実施形態では、コンポーネントの論理スレッドの数は、前述の方法を使用することによる算出時に3に調節される必要があり、コンポーネントの現在の論理スレッドの数は5であるとする。この場合に、コンポーネントの2つの論理スレッドは現時点で削除される必要があると判断されてよい。
ステップS62:論理スレッドが追加される必要がある場合、論理スレッドが、現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能であるかどうかを判断し、はいの場合、ステップS63を行い、その他の場合、ステップS64を行う。
本開示の例示の実施形態では、現在の論理スレッドに関連付けられた動作プロセスは、現在の論理スレッドが配置されるコンピュータクラスタにおける全ての動作プロセスを含む。
ステップS63:論理スレッドを、現在の論理スレッドに関連付けられた動作プロセスに追加する。
ステップS64:追加される必要がある動作プロセスの数を判断する。
ステップS65:対応する論理スレッドが削除される必要がある場合、論理スレッドを動作プロセスにおいて削除する。
本開示の例示の実施形態では、コンポーネントの全ての論理スレッドは同じレベルにある。従って、本開示の例示の実施形態では、削除される必要がある論理スレッドの数は、コンポーネントの現在の論理スレッドの数と調節後の論理スレッドの数との間の差に従って判断されてよい。この場合に、論理スレッドの対応する数が、現在のコンポーネントから無作為に削除される。
よって、本開示の例示の実施形態では、現在のコンポーネントの論理スレッドが具体的には、追加または削除されてよいことは、明確である。
本開示の別の実施可能な例示の実施形態では、図7に示されるように、前述の例示の実施形態全てにおけるステップS62は以下のステップを含んでよい。
ステップS71:現在の論理スレッドに関連付けられた複数の動作プロセスを判断する。
本開示の例示の実施形態では、上記のように、複数の関連付けられた動作プロセスは、コンポーネントが配置されるコンピュータクラスタにおける全ての動作プロセスを含む。
ステップS72:それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を、事前設定された増加式に従って判断する。この増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数=(動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために動作プロセスによって占有されるリソース*第4の事前設定値−1)*現在の動作プロセスにおいて実行する論理スレッドの数である。
本開示の例示の実施形態では、動作プロセスの事前割り当てされた全リソースは、動作プロセスに事前割り当てされたCPUリソース、または記憶空間であってよく、論理スレッドを実行するために動作プロセスによって占有されるリソースは、論理スレッドを実行するために動作プロセスによって占有されるCPUリソース、または記憶空間であってよい。
本開示の例示の実施形態では、ユーザは、第3の事前設定閾値の値を自分自身で必要に応じて設定してよい。好ましい例示の実施形態では、第3の事前設定閾値は80%に設定されてよい。
ステップS73:全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数える。
本開示の例示の実施形態では、現在のコンポーネントが配置されるコンピュータクラスタに3つの動作プロセスがあり、この動作プロセスはそれぞれ、第1の動作プロセス、第2の動作プロセス、及び第3の動作プロセスであるとし、ステップS72において提供される方法を使用することによって、2つの論理スレッドは第1の動作プロセスに追加されることが許容可能であり、3つの論理スレッドは第2の動作プロセスに追加されることが許容可能であり、3つの論理スレッドは第3の動作プロセスに追加されることが許容可能であると判断される。この場合に、コンピュータクラスタ全体に追加されることが許容可能である論理スレッドの総数は、8=2+3+3である。
ステップS74:追加されることが許容可能である論理スレッドの総数はコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断し、はいの場合、ステップS75を行い、その他の場合、ステップS76を行う。
ステップS75:論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断する。
ステップS76:論理スレッドは関連付けられた動作プロセスに追加されることが許容可能でないと判断する。
よって、本開示の例示の実施形態では、現在のコンポーネントに関連付けられた動作プロセスに、現在のコンポーネントに追加される必要がある論理スレッドを追加するどうかが判断されてよい。
本開示のさらに別の実施可能な例示の実施形態では、図8に示されるように、前述の例示の実施形態全てにおけるステップS64は、以下のステップを含んでよい。
ステップS81:事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得する。
本開示の例示の実施形態では、事前設定された負荷閾値は、具体的には、動作プロセスの負荷限度の80%であってよい。
ステップS82:追加される必要がある動作プロセスの数を、動作プロセス算出式を使用することによって、算出する。動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nはコンポーネントに追加される必要がある論理スレッドの数であり、Tは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、T、N、及びQは正の整数である。
よって、追加される必要がある動作プロセスの数は、前述の方法を使用することによって判断されてよい。
本開示のさらに別の実施可能な例示の実施形態では、第1のコンポーネント及び第2のコンポーネントがデータを送信する時、前述の例示の実施形態全てにおける方法は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断することと、
現在のコンポーネントによって呼び出し可能な第3の論理スレッドと、第1の論理スレッドとの間の通信接続、及び、第3の論理スレッドと第2の論理スレッドとの間の通信接続を確立することと、をさらに含んでよい。
上記のように、コンポーネントは、上流コンポーネント及び下流コンポーネントを含んでよい。それぞれのコンポーネントによって呼び出されてよい論理スレッドの数は、本開示の例示の実施形態における方法を使用することによって変動する。上流コンポーネントと下流コンポーネントとの間の論理スレッドの通常のデータ送信は、本開示に開示される方法を使用することによって判断されてよい。
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける方法は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断することと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除することと、をさらに含んでよい。
本開示の例示の実施形態では、論理スレッドを削除する動作が行われる時、動作プロセスに論理スレッドをなくならせるようにしてよい。この場合、動作プロセスはいずれのタスクも実行しない。動作プロセスによって占有されるリソースは本開示に開示される方法を使用することによって時間的に解放されてよい。
上記の方法の例示の実施形態の説明から、本開示は、ソフトウェアと必要な汎用ハードウェアプラットフォームとを併せることによって実装されてよく、また間違いなく、ハードウェアによって実装されてもよいことを当業者は明確に理解し得る。しかしながら、ほとんどの状況下で前者が好ましい実施態様である。このような理解に基づいて、本質的にまたは部分的に従来の技術に貢献する本開示の技術的解決策はソフトウェア製品の形態で具現化されてよい。コンピュータソフトウェア製品は、記憶媒体に記憶されてよく、本開示の例示の実施形態に説明される方法のステップの全てまたは一部を行うように(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであってよい)コンピュータデバイスに命令するためのいくつかの命令を含む。前述の記憶媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光学ディスクなど、プログラムコードを記憶し得る任意の媒体を含む。
本開示において提供されるコンポーネント論理スレッドの数を調節するための方法の例示の実施形態に対応して、本開示は、コンポーネント論理スレッドの数を調節するための装置をさらに提供する。図9に示されるように、装置は、
コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュール91と、
それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第1の判断モジュール92であって、負荷状態は通常負荷状態及び異常負荷状態を含む、第1の判断モジュール92と、
コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第1の判定モジュール93と、
コンポーネントの論理スレッドの数が調節される必要がある場合、判断結果に従ってコンポーネントの論理スレッドの数を調節するように構成された調節モジュール94と、を含む。
本開示の例示の実施形態では、調節モジュール94の機能は、具体的には、調節ユニットによって実施されてよい。調節ユニットは、コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータのデータ量/1秒当たりにコンポーネントによって受信されるデータのデータ量となるように、コンポーネントの論理スレッドの数を調節するように構成され、送出装置はデータをコンポーネントに送る装置である。
上記の技術的解決策から示されるように、本開示の例示の実施形態では、最初に、それぞれの論理スレッドの負荷状態はそれぞれの論理スレッドに対応するデータ処理キューの利用率に従って判断され、負荷状態は通常負荷状態及び異常負荷状態を含む。次いで、コンポーネントの論理スレッドの負荷状態に従って、コンポーネントの論理スレッドの数が調節される必要があるかどうかが判断される。最後に、コンポーネントの論理スレッドの数が調節される必要がある場合、コンポーネントの論理スレッドの数は判断結果に従って調節される。本開示の例示の実施形態では、コンポーネントによって呼び出されてよい論理スレッドの数は、論理スレッドの負荷状態に従って調節されてよく、それによって、コンポーネントによって呼び出されてよい論理スレッドが過大または不十分にならないようにするため、データの実時間処理を保証しながらも論理スレッドリソースの利用率を改善する。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける異常負荷状態は高負荷状態及び低負荷状態を含み、利用率は、メッセージキューに記憶されるデータによって占有される空間/メッセージキューの事前割り当てされた記憶空間に等しく、判断モジュールは、
論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きいかどうかを判断するように構成された第1の判定ユニットと、
利用率が第1の事前設定閾値より大きい場合、論理スレッドが高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
現在の論理スレッドに対応するデータ処理キューの利用率が、第1の事前設定閾値より大きくない場合、該利用率が第2の事前設定閾値より小さいかどうかを判断するように構成された第2の判定ユニットと、
利用率が第2の事前設定閾値より小さい場合、論理スレッドが低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む。
よって、本開示の例示の実施形態において、論理スレッドの負荷状態が判断されてよいことは、明確である。
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける判定モジュールは、
コンポーネントによって呼び出し可能な全ての論理スレッドの中で、高負荷状態の論理スレッドの数、及び低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第1の計数ユニットと、
高負荷確率算出式及び低負荷確率算出式を使用することによって、コンポーネントの高負荷確率及び低負荷確率をそれぞれ算出するように構成された第1の算出ユニットであって、高負荷確率算出式=高負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数であり、低負荷確率算出式=低負荷状態の論理スレッドの数/現在のコンポーネントによって呼び出し可能な全ての論理スレッドの数である、第1の算出ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つは第3の事前設定閾値より大きいかどうかを判断するように構成された第3の判定ユニットと、
コンポーネントの高負荷確率及び低負荷確率のうちの少なくとも1つが第3の事前設定閾値より大きい場合、コンポーネントの論理スレッドの数が調節される必要があることを判断するように構成された第1の判断ユニットと、を含む。
よって、本開示の例示の実施形態において、コンポーネントの論理スレッドの数は調節される必要があるかどうかが判断されてよいことは、明確である。
本開示のさらに別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
コンポーネントが調節後に有する必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドがコンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第2の判断モジュールと、
論理スレッドが追加される必要がある場合、現在の論理スレッドに関連付けられた動作プロセスにおいて論理スレッドは追加されることが許容可能であるかどうかを判断するように構成された第2の判定モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加されることが許容可能である場合、現在の論理スレッドに関連付けられた動作プロセスに論理スレッドを追加するように構成された追加モジュールと、
論理スレッドが現在の論理スレッドに関連付けられた動作プロセスに追加できない場合、追加される必要がある動作プロセスの数を判断するように構成された第3の判断モジュールと、
対応する論理スレッドが削除される必要がある場合、動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含んでよい。
よって、本開示の例示の実施形態において、論理スレッドが追加または削除されることが許容可能であることは、明確である。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける第2の判定モジュールは、
現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第2の判断ユニットと、
事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第3の判断ユニットであって、増加式は、動作プロセスに追加されることが許容可能である論理スレッドの数=(動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために動作プロセスによって占有されるリソース*第4の事前設定値−1)*現在の動作プロセスにおいて実行する論理スレッドの数である、第3の判断ユニットと、
全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第2の計数ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上であるかどうかを判断するように構成された第4の判定ユニットと、
追加されることが許容可能である論理スレッドの総数がコンポーネントに追加される必要がある論理スレッドの数以上である場合、論理スレッドは関連付けられた動作プロセスに追加されることが許容可能であると判断するように構成された第3の判断ユニットと、を含む。
よって、本開示の例示の実施形態において、論理スレッドが関連付けられた動作プロセスに追加されることが許容可能であるかどうかが判断されてよいことは、明確である。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける第3の判断ユニットは、
事前設定された負荷閾値下で、関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得するように構成された取得サブユニットと、
動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nはコンポーネントに追加される必要がある論理スレッドの数であり、Tは関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの数であり、T、N、及びQは正の整数である、算出サブユニットと、を含む。
よって、本開示の例示の実施形態では、新しく追加された動作プロセスの数が判断されてよいことは、明確である。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
事前設定された時間の間隔で、コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断するように構成された第4の判断モジュールと、
現在のコンポーネントによって呼び出し可能な第3の論理スレッドと、第1の論理スレッドとの間の通信接続、及び、第3の論理スレッドと第2の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む。
よって、本開示の例示の実施形態では、上流コンポーネントと下流コンポーネントとの間の通常の通信が保証され得ることは、明確である。
本開示の別の実施可能な例示の実施形態では、前述の例示の実施形態全てにおける装置は、
任意の論理スレッドが現在のコンポーネントに関連付けられたそれぞれの動作プロセスに存在するかどうかを逐次に判断するように構成された第3の判定モジュールと、
動作プロセスに論理スレッドが存在しない場合、動作プロセスを削除するように構成された削除モジュールと、をさらに含む。
よって、本開示の例示の実施形態では、空き動作プロセスが削除されてよいことは、明確である。
「第1」及び「第2」などの関連用語は、単に、一つの実体または動作を他の実体または動作と区別するために使用されており、必ずしもこのような実体または動作の間の実際の関係または順序を必要とする、また暗示するものではないことは、留意されるべきである。さらに、「include(含む)」、「comprise(備える)」、またはこれらの他の変形の用語は、非排他的な包含を対象として含むことを意図し、一連の要素を含むプロセス、方法、物品、またはデバイスは、要素を含むだけでなく、明確に列挙されていない他の要素も含む、または、プロセス、方法、物品、またはデバイスの固有の要素をさらに含む。さらなる限定がなく、「〜を含む(including a/an)」によって定義される要素は、その要素を含むプロセス、方法、物品、またはデバイスが他の同一の要素をさらに有することを除外するものではない。
上記の説明は、当業者が本開示を理解または実施可能とする、単なる本開示の特定的な実施態様である。例示の実施形態に対するさまざまな修正は当業者には明白であろう。本文で定義される一般的な原理は、本開示の趣旨または範囲を逸脱することなく、他の例示の実施形態において実装されてよい。従って、本開示は、本文に示される例示の実施形態に限定されることはなく、本文に開示される原理及び新規性と一致する最も広い範囲に従うものになる。

Claims (18)

  1. コンポーネントの論理スレッドの数を調節する方法であって、
    コンポーネントによって呼び出し可能な複数の論理スレッドを取得することと、
    それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断することであって、前記負荷状態は通常負荷状態及び異常負荷状態を含む、前記判断することと、
    前記コンポーネントの前記論理スレッドの負荷状態に従って、前記コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断することと、
    前記コンポーネントの前記論理スレッドの数が調節される必要があるとの判断に応答して前記判断の結果に従って前記コンポーネントの前記論理スレッドの数を調節することと、を含む、前記方法。
  2. 前記判断の結果に従って前記コンポーネントの前記論理スレッドの数を調節することは、
    前記コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータの量/1秒当たりに前記コンポーネントによって受信されるデータの量となるように、前記コンポーネントの前記論理スレッドの数を調節することであって、前記送出装置はデータを前記コンポーネントに送る装置である、前記調節することを含む、請求項1に記載の方法。
  3. 前記異常負荷状態は高負荷状態及び低負荷状態を含み、
    前記利用率は、メッセージキューに記憶されるデータによって占有される空間/前記メッセージキューの事前割り当てされた記憶空間に等しく、
    それぞれの論理スレッドに対応する前記データ処理キューの前記利用率に従ってそれぞれの論理スレッドの前記負荷状態を判断することは、
    論理スレッドに対応する前記データ処理キューの前記利用率が第1の事前設定閾値より大きいかどうかを判断することと、
    前記利用率が前記第1の事前設定閾値より大きいとの判断に応答して、前記論理スレッドが前記高負荷状態にあると判断することと、
    前記論理スレッドに対応する前記データ処理キューの前記利用率が前記第1の事前設定閾値より大きくないとの判断に応答して、前記利用率が第2の事前設定閾値より小さいかどうかを判断することと、
    前記利用率が前記第2の事前設定閾値より小さいとの判断に応答して、前記論理スレッドが前記低負荷状態にあると判断することと、を含む、請求項1または2に記載の方法。
  4. 前記コンポーネントの前記論理スレッドの前記負荷状態に従って、前記コンポーネントの前記論理スレッドの数が調節される必要があるかどうかを判断することは、
    前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの中で、前記高負荷状態の論理スレッドの数、及び前記低負荷状態の論理スレッドの数をそれぞれ数えることと、
    高負荷確率算出式及び低負荷確率算出式をそれぞれ使用することによって、前記コンポーネントの高負荷確率及び低負荷確率を算出することであって、前記高負荷確率算出式=前記高負荷状態の前記論理スレッドの数/前記コンポーネントによって呼び出し可能な全ての論理スレッドの数、及び前記低負荷確率算出式=前記低負荷状態の前記論理スレッドの数/前記コンポーネントによって呼び出し可能な全ての論理スレッドの数である、前記算出することと、
    前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも1つは第3の事前設定閾値より大きいかどうかを判断することと、
    前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも1つが前記第3の事前設定閾値より大きいとの判断に応答して、前記コンポーネントの前記論理スレッドの数は調節される必要があると判断することと、を含む、請求項3に記載の方法。
  5. 前記論理スレッドは動作プロセスにおいて実行し、
    前記方法は、
    前記コンポーネントに対して調節される必要がある前記論理スレッドの数、及び前記現在の論理スレッドの数に従って、前記論理スレッドが前記コンポーネントに対して追加または削除される必要があるかどうかを判断することと、
    前記論理スレッドが追加される必要があるとの判断に応答して、前記現在の論理スレッドに関連付けられた前記動作プロセスにおいて論理スレッドが追加されることが許容可能であるかどうかを判断することと、
    前記論理スレッドが前記動作プロセスに追加されることが許容可能であるとの判断に応答して、関連付けられた前記動作プロセスに前記論理スレッドを追加することと、
    前記論理スレッドが前記動作プロセスに追加されることが許容可能ではないとの判断に応答して、追加される必要がある動作プロセスの数を判断することと、
    対応する前記論理スレッドが削除される必要があるとの判断に応答して、前記動作プロセスにおいて論理スレッドを削除することと、をさらに含む、請求項1、2、及び4のいずれか1項に記載の方法。
  6. 前記論理スレッドが、前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能であるかどうかを判断することは、
    前記現在の論理スレッドに関連付けられた複数の動作プロセスを判断することと、
    事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断することであって、前記事前設定された増加式は、前記動作プロセスに追加されることが許容可能である論理スレッドの数=(前記動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために前記動作プロセスによって占有されるリソース*第4の事前設定値−1)*前記現在の動作プロセスにおいて実行する論理スレッドの数である、前記判断することと、
    全ての関連付けられた動作プロセスに追加されることが許容可能である論理スレッドの総数を数えることと、
    追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるかどうかを判断することと、
    追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるとの判断に応答して、前記論理スレッドは前記関連付けられた動作プロセスに追加されることが許容可能であると判断することと、を含む、請求項5に記載の方法。
  7. 追加される必要がある前記動作プロセスの数を判断することは、
    事前設定された負荷閾値下で、前記関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得することと、
    動作プロセス算出式を使用することによって、追加される必要がある前記動作プロセスの数を算出することであって、前記動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nは前記コンポーネントに追加される必要がある論理スレッドの数であり、Tは前記関連付けられた動作プロセスに追加されることが許容可能である前記論理スレッドの数であり、T、N、及びQは正の整数である、前記算出することと、を含む、請求項6に記載の方法。
  8. 事前設定された時間の間隔で、前記コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び前記コンポーネントの下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断することと、
    前記コンポーネントによって呼び出し可能な第3の論理スレッドと、前記第1の論理スレッドとの間の通信接続、及び、前記第3の論理スレッドと前記第2の論理スレッドとの間の通信接続を確立することと、をさらに含む、請求項1、2、4、6、及び7のいずれか1項に記載の方法。
  9. 論理スレッドが前記コンポーネントに関連付けられた動作プロセスに存在するかどうかを逐次に判断することと、
    前記動作プロセスに論理スレッドが存在しないとの判断に応答して、前記動作プロセスを削除することと、をさらに含む、請求項1、2、4、6、及び7のいずれ1項に記載の方法。
  10. コンポーネント論理スレッドの数を調節する装置であって、
    コンポーネントによって呼び出し可能な複数の論理スレッドを取得するように構成された取得モジュールと、
    それぞれの論理スレッドに対応するデータ処理キューの利用率に従ってそれぞれの論理スレッドの負荷状態を判断するように構成された第1の判断モジュールであって、前記負荷状態は通常負荷状態及び異常負荷状態を含む、前記第1の判断モジュールと、
    前記コンポーネントの前記論理スレッドの負荷状態に従って、前記コンポーネントの論理スレッドの数が調節される必要があるかどうかを判断するように構成された第1の判定モジュールと、
    前記コンポーネントの前記論理スレッドの数が調節される必要があるとの判断に応答して判断結果の結果に従って前記コンポーネントの前記論理スレッドの数を調節するように構成された調節モジュールと、を含む、前記装置。
  11. 前記調節モジュールは、
    前記コンポーネントの前記論理スレッドの数を、前記コンポーネントの現在の論理スレッドの数*1秒当たりに送出装置によって送られるデータの量/1秒当たりに前記コンポーネントによって受信されるデータの量となるように調節するように構成された調節ユニットであって、前記送出装置はデータを前記コンポーネントに送る装置である、前記調節ユニットを含む、請求項10に記載の装置。
  12. 前記異常負荷状態は高負荷状態及び低負荷状態を含み、
    前記利用率は、メッセージキューに記憶されたデータによって占有される空間/前記メッセージキューの事前割り当てされた記憶空間に等しく、
    前記判断モジュールは、
    論理スレッドに対応するデータ処理キューの利用率が第1の事前設定閾値より大きいかどうかを判断するように構成された第1の判断ユニットと、
    前記利用率が前記第1の事前設定閾値より大きいとの判断に応答して、前記論理スレッドが前記高負荷状態にあると判断するように構成された高負荷状態判断ユニットと、
    前記論理スレッドに対応する前記データ処理キューの前記利用率が、前記第1の事前設定閾値より大きくないとの判断に応答して、前記利用率が第2の事前設定閾値より小さいかどうかを判断するように構成された第2の判断ユニットと、
    前記利用率が前記第2の事前設定閾値より小さいとの判断に応答して、前記論理スレッドが前記低負荷状態にあると判断するように構成された低負荷状態判断ユニットと、を含む、請求項10または11に記載の装置。
  13. 前記判定モジュールは、
    前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの中で、前記高負荷状態の論理スレッドの数、及び前記低負荷状態の論理スレッドの数をそれぞれ数えるように構成された第1の計数ユニットと、
    高負荷確率算出式及び低負荷確率算出式をそれぞれ使用することによって、前記コンポーネントの高負荷確率及び低負荷確率を算出するように構成された第1の算出ユニットであって、前記高負荷確率算出式=前記高負荷状態の前記論理スレッドの数/前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの数であり、前記低負荷確率算出式=前記低負荷状態の前記論理スレッドの数/前記コンポーネントによって呼び出し可能な全ての前記論理スレッドの数である、前記第1の算出ユニットと、
    前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも1つは第3の事前設定閾値より大きいかどうかを判断するように構成された第3の判断ユニットと、
    前記コンポーネントの前記高負荷確率及び前記低負荷確率のうちの少なくとも1つが前記第3の事前設定閾値より大きいとの判断に応答して、前記コンポーネントの論理スレッドの数が調節される必要があることを判断するように構成された第1の判断ユニットと、を含む、請求項12に記載の装置。
  14. 前記装置は、
    前記コンポーネントが調節される必要がある論理スレッドの数、及び現在の論理スレッドの数に従って、論理スレッドが前記コンポーネントに対して追加または削除される必要があるかどうかを判断するように構成された第2の判断モジュールと、
    前記論理スレッドが追加される必要があるとの判断に応答して、前記現在の論理スレッドに関連付けられた動作プロセスに論理スレッドが追加されることが許容可能であるかどうかを判断するように構成された第2の判定モジュールと、
    前記論理スレッドが前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能であるとの判断に応答して、前記現在の論理スレッドに関連付けられた前記動作プロセスに前記論理スレッドを追加するように構成された追加モジュールと、
    前記論理スレッドが前記現在の論理スレッドに関連付けられた前記動作プロセスに追加されることが許容可能でないとの判断に応答して、追加される必要がある動作プロセスの数を判断するように構成された第3の判断モジュールと、
    対応する前記論理スレッドが削除される必要があるとの判断に応答して、前記動作プロセスにおいて論理スレッドを削除するように構成された削除モジュールと、をさらに含む、請求項10、11、及び13のいずれか1項に記載の装置。
  15. 前記第2の判定モジュールは、
    前記現在の論理スレッドに関連付けられた複数の動作プロセスを判断するように構成された第2の判断ユニットと、
    事前設定された増加式に従って、それぞれの動作プロセスに追加されることが許容可能である論理スレッドの数を判断するように構成された第3の判断ユニットであって、前記増加式は、前記動作プロセスに追加されることが許容可能である前記論理スレッドの数=(前記動作プロセスの事前割り当てされた全リソース/論理スレッドを実行するために前記動作プロセスによって占有されるリソース*第4の事前設定値−1)*前記現在の動作プロセスにおいて実行する論理スレッドの数である、前記第3の判断ユニットと、
    全ての関連付けられた前記動作プロセスに追加されることが許容可能である論理スレッドの総数を数えるように構成された第2の計数ユニットと、
    追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるかどうかを判断するように構成された第4の判定ユニットと、
    追加されることが許容可能である前記論理スレッドの総数が前記コンポーネントに追加される必要がある前記論理スレッドの数以上であるとの判断に応答して、前記論理スレッドは前記関連付けられた動作プロセスに追加されることが許容可能であると判断するように構成された第3の判断ユニットと、を含む、請求項14に記載の装置。
  16. 前記第3の判断ユニットは、
    事前設定された負荷閾値下で前記関連付けられた動作プロセスにおいて実行することが許容可能である論理スレッドの数Qを取得するように構成された取得サブユニットと、
    動作プロセス算出式を使用することによって、追加される必要がある動作プロセスの数を算出するように構成された算出サブユニットであって、前記動作プロセス算出式は、追加される動作プロセスの数=(N−T)/Q+1であり、式中、Nは前記コンポーネントに追加される必要がある前記論理スレッドの数であり、Tは前記関連付けられた動作プロセスに追加されることが許容可能である前記論理スレッドの数であり、T、N、及びQは正の整数である、前記算出サブユニットと、を含む、請求項15に記載の装置。
  17. 事前設定された時間の間隔で、前記コンポーネントの上流コンポーネントによって呼び出し可能な第1の論理スレッド、及び前記コンポーネントの下流コンポーネントによって呼び出し可能な第2の論理スレッドを判断するように構成された第4の判断モジュールと、
    前記コンポーネントによって呼び出し可能な第3の論理スレッドと、前記第1の論理スレッドとの間の通信接続、及び、前記第3の論理スレッドと前記第2の論理スレッドとの間の通信接続を確立するように構成された確立モジュールと、をさらに含む、請求項10、11、13、15、及び16のいずれか1項に記載の装置。
  18. 論理スレッドが前記コンポーネントに関連付けられた動作プロセスに存在するかどうかを逐次に判断するように構成された第3の判定モジュールと、
    前記動作プロセスに論理スレッドが存在しないとの判断に応答して、前記動作プロセスを削除するように構成された削除モジュールと、をさらに含む、請求項10、11、13、15、及び16のいずれか1項に記載の装置。
JP2018534546A 2015-12-30 2016-12-16 コンポーネント論理スレッド量の調節方法及びデバイス Pending JP2019500700A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201511021180.2 2015-12-30
CN201511021180.2A CN106933673B (zh) 2015-12-30 2015-12-30 调整组件逻辑线程数量的方法及装置
PCT/CN2016/110251 WO2017114180A1 (zh) 2015-12-30 2016-12-16 调整组件逻辑线程数量的方法及装置

Publications (1)

Publication Number Publication Date
JP2019500700A true JP2019500700A (ja) 2019-01-10

Family

ID=59225931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018534546A Pending JP2019500700A (ja) 2015-12-30 2016-12-16 コンポーネント論理スレッド量の調節方法及びデバイス

Country Status (5)

Country Link
US (1) US10783005B2 (ja)
EP (1) EP3399413B1 (ja)
JP (1) JP2019500700A (ja)
CN (1) CN106933673B (ja)
WO (1) WO2017114180A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102307641B1 (ko) * 2021-04-30 2021-10-01 나무기술 주식회사 클라우드 운영 데이터 분석을 위한 병렬 처리 제어 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897876A (zh) * 2018-06-29 2018-11-27 中科鼎富(北京)科技发展有限公司 一种数据接入方法及装置
CN113138772B (zh) * 2020-01-19 2023-12-05 北京京东振世信息技术有限公司 数据处理平台的构建方法、装置、电子设备和存储介质
US11467877B2 (en) 2020-01-31 2022-10-11 Salesforce, Inc. Throttling and limiting thread resources of service computing platform
CN112631754A (zh) * 2020-12-29 2021-04-09 浙江大华技术股份有限公司 数据处理方法、装置、存储介质及电子装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237242B2 (en) * 2002-12-31 2007-06-26 International Business Machines Corporation Dynamic thread pool tuning techniques
US7162571B2 (en) * 2003-12-09 2007-01-09 Emc Corporation Methods and apparatus for parsing a content address to facilitate selection of a physical storage location in a data storage system
US7681196B2 (en) * 2004-11-18 2010-03-16 Oracle International Corporation Providing optimal number of threads to applications performing multi-tasking using threads
CA2620337C (en) * 2008-02-04 2012-11-27 Omnivex Corporation Digital signage network
CN100562854C (zh) * 2008-03-11 2009-11-25 浙江大学 多核处理器操作系统负载均衡的实现方法
US8631415B1 (en) * 2009-08-25 2014-01-14 Netapp, Inc. Adjustment of threads for execution based on over-utilization of a domain in a multi-processor system by sub-dividing parallizable group of threads to sub-domains
JP5531679B2 (ja) * 2010-03-04 2014-06-25 日本電気株式会社 Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム
JP5843459B2 (ja) * 2011-03-30 2016-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体
CN102591721A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 一种分配线程执行任务的方法和系统
CN102866922B (zh) * 2012-08-31 2014-10-22 河海大学 一种海量数据多线程并行处理中的负载均衡方法
CN103677997B (zh) * 2012-09-21 2017-04-12 宏达国际电子股份有限公司 多核心装置以及其多线程调度方法
US10817496B2 (en) * 2013-11-05 2020-10-27 Hewlett Packard Enterprise Development Lp Forum inspection based on correlation rating of response poster
WO2015071008A1 (en) * 2013-11-14 2015-05-21 Alcatel Lucent Distributed computing unit, system and respective method
JP6237318B2 (ja) * 2014-02-19 2017-11-29 富士通株式会社 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US9722945B2 (en) * 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102307641B1 (ko) * 2021-04-30 2021-10-01 나무기술 주식회사 클라우드 운영 데이터 분석을 위한 병렬 처리 제어 시스템

Also Published As

Publication number Publication date
US20180307536A1 (en) 2018-10-25
US10783005B2 (en) 2020-09-22
CN106933673A (zh) 2017-07-07
WO2017114180A1 (zh) 2017-07-06
EP3399413B1 (en) 2021-05-05
EP3399413A4 (en) 2019-08-07
EP3399413A1 (en) 2018-11-07
CN106933673B (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
JP2019500700A (ja) コンポーネント論理スレッド量の調節方法及びデバイス
Das et al. Adaptive stream processing using dynamic batch sizing
CN111767142B (zh) 服务节点的限流阈值设置方法和服务端设备
CN104778111A (zh) 一种进行报警的方法和装置
CN104601492A (zh) 一种nfv架构下进行业务流控的方法及装置
CN106302090B (zh) 一种消息处理方法、装置及系统
CN106610870B (zh) 一种处理节点数量调整方法及装置
CN114448989B (zh) 调整消息分发的方法、装置、电子设备、存储介质及产品
CN111858458B (zh) 一种互联通道的调整方法、装置、系统、设备和介质
CN107977302A (zh) 一种cpu使用率输出方法及装置
CN112383585A (zh) 消息处理系统、方法及电子设备
CN107704317B (zh) 智能设备及其应用管理方法和具有存储功能的装置
CN105404554B (zh) 用于Storm流计算框架的方法和装置
CN111897659B (zh) 业务处理频率的控制方法、系统、装置、电子设备
CN116627615A (zh) 一种任务处理方法、装置、电子设备和存储介质
CN113326133A (zh) 一种分布式负载均衡的任务调度方法及装置
CN112948104B (zh) 负载均衡的数据采集方法及装置
CN112887407A (zh) 用于分布式集群的作业流量控制方法和装置
TWI584667B (zh) 多請求的排程方法及排程裝置
TWI735520B (zh) 調整元件邏輯執行緒數量的方法及裝置
CN112988417B (zh) 消息处理方法、装置、电子设备及计算机可读介质
CN109639594A (zh) 基于框式网络设备的限速方法和装置
CN110968420A (zh) 一种多爬虫平台的调度方法、装置、存储介质及处理器
CN113992378A (zh) 一种安全监测方法、装置、电子设备及存储介质
WO2016165471A1 (zh) Hadoop集群组件指标的采集方法及装置