JP6526907B2 - 分散型記憶システムの性能監視 - Google Patents

分散型記憶システムの性能監視 Download PDF

Info

Publication number
JP6526907B2
JP6526907B2 JP2018507533A JP2018507533A JP6526907B2 JP 6526907 B2 JP6526907 B2 JP 6526907B2 JP 2018507533 A JP2018507533 A JP 2018507533A JP 2018507533 A JP2018507533 A JP 2018507533A JP 6526907 B2 JP6526907 B2 JP 6526907B2
Authority
JP
Japan
Prior art keywords
request
storage system
distributed storage
probe
probe request
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
JP2018507533A
Other languages
English (en)
Other versions
JP2018533779A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018533779A publication Critical patent/JP2018533779A/ja
Application granted granted Critical
Publication of JP6526907B2 publication Critical patent/JP6526907B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

背景
本明細書は、一般的には、分散型記憶システムの性能監視に関する。
分散型システムにおいて、様々な性能メトリックを追跡することによって、システムの全体的な健全性を判定することができる。例えば、システムがクライアントリクエストの応答にかかる時間(すなわち、待ち時間)を監視することによって、システムが適時に応答していることを確認することができる。
概要
一般的には、本明細書に記載された主題の1つの態様は、システムとして具体化されてもよく、データ処理装置によって実行される方法として具体化されてもよい。この方法は、クライアントによって分散型記憶システムに送信されたリクエストを識別するステップを含み、各リクエストは、リクエストパラメータを含む。方法は、識別されたリクエストに基づいて、プローブリクエストを生成するステップを含み、プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含む。方法は、ネットワークを介して、生成されたプローブリクエストを分散型記憶システムに送信するステップを含み、分散型記憶システムは、プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成される。方法は、分散型記憶システムからプローブリクエストに対する応答を受信するステップと、受信した応答に基づいて、分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力するステップとを含む。
本明細書に記載される主題の1つ以上の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様および潜在的な利点は、説明、図面および特許請求の範囲から明らかになるであろう。
分散型記憶システムの性能を監視するための例示的な環境を示す図である。 分散型記憶システムのクライアントリクエストを処理する例示的なプロセスを示すスイムレーン図である。 分散型記憶システムの性能を監視するための例示的なプロセスを示すスイムレーン図である。 分散型記憶システムの性能を監視するための例示的なプロセスを示フローチャートである。 本明細書に記載のシステムおよび方法を実施するために使用され得るコンピューティング装置を示す図である。
詳細な説明
様々な図面において、同様の参照番号および記号は、同様の要素を示す。
分散型記憶システムにおいて、多くの要因がシステム性能に影響を与える可能性がある。例えば、クライアントは、インターネットなどのパブリックネットワークを介して、システムにアクセスすることができる。この場合、各クライアントの観点から、パブリックネットワークのいずれかの箇所の性能上の問題が分散型記憶システムの性能に影響を与え得る。また、クライアントの観点から、分散型記憶システム自身の問題、例えば、ハードウェア障害、内部ネットワーク障害、ソフトウェアバグなども、システムの性能に影響を与え得る。
場合によって、分散型記憶システムとクライアントとの間の関係は、サービスレベルアグリーメント(SLA)によって制限される。一般的には、SLAは、分散型記憶システムのプロバイダがクライアントリクエストにサービスを提供するときに満たすべき性能目標を含む。例えば、SLAは、分散型記憶システムのプロバイダがリクエストを処理する際に10ms以下の待ち時間を保証することを指定することができる。SLAは、性能目標を満たしていない場合に取らせる措置、例えば、プロバイダがクライアントに払い戻す措置を含み得る。このような契約は、分散型記憶システムのプロバイダが、管理範囲以外の状況(例えば、パブリックネットワークの停止、クライアントネットワークの停止、クライアント装置の問題)によって生じた性能問題に対して責任を負わないという条項を含み得る。
SLAが定められていなくても、分散型記憶システムのプロバイダは、クライアントのリクエストにサービスを提供すると共に、システムの性能に影響を与えない非侵害的な方法で、システムの健全性を監視したいことがある。
したがって、本開示は、クライアントのリクエストをプロファイリングすることによって、分散データベースシステムの性能を監視するための技術を説明する。1つの例示的な方法は、クライアントによって分散型記憶システムに送信されたリクエストを識別することを含む。リクエストは、例えば、リクエスト種類、並行処理パラメータ、およびリクエストに関連するデータを示すリクエスト目標などのリクエストパラメータを含むことができる。場合によって、リクエストは、分散型記憶システムのクライアントから送信された情報に基づいて識別されてもよい。識別されたリクエストに基づいて、プローブリクエストを生成する。プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含む。生成されたプローブリクエストは、分散型記憶システムに送信される。分散型記憶システムは、各プローブリクエストにサービスを提供するための準備を用意することによって応答するが、リクエスト目標によって示されたデータに実際にアクセスしない。例えば、分散型記憶システムは、リクエスト種類が「読み取り」であるプローブリクエストに応答して、リクエスト目標によって示されたデータを読み取るための準備(例えば、データの位置付け、リクエストの行列化)を行う際に、クライアントがアクセスできないデータフィールドを読み取る。これによって、クライアントリクエストの通常処理を妨げることなく、システムを徹底的にプロファイリングすることができる。分散型記憶システムからプローブリクエストに対する応答を受信すると、性能メトリックを計算することができる。
場合によって、分散型記憶システムの性能を単独に測定するために、分散型記憶システムと同様の場所(例えば、同様の内部ネットワーク)に配置されたコンピューティング装置を用いて、プロセスを実行することができる。これによって、プロバイダの管理範囲以外の問題(例えば、パブリックネットワークの停止)は、プロセスによって示されない。
本明細書に記載の技術は、以下の利点を提供することができる。本発明の技術は、実際のクライアントリクエストをプロファイリングすることによりプローブリクエストを生成することによって、分散型記憶システムによってサービスを提供しているクライアントリクエストの近似値を用いて、分散型記憶システムを監視することができる。また、クライアントにアクセス可能なデータにアクセスせず、分散型記憶システムの健全性を監視することによって、実際のクライアントリクエストに対する性能の影響を最小限に抑えることができる。さらに、分散型記憶システムをシステムプロバイダの管理範囲以外の他の要因から分離して監視することによって、システムの真の性能をより正確に考察することができる。システムの真の性能は、例えば、クライアントが分散型記憶システムからサービスをリクエストする際に、待ち時間の観点から認識した端末間性能を含む。このような情報は、SLAの遵守を判断する時に有用である。また、本発明の技術は、クライアントリクエストの配布に関する統計情報(例えば、特定のデータ項目が他のデータ項目よりも普及しているか否か)を提供することができる。これによって、プロバイダおよびクライアントは、(例えば、ホットスポットを回避するために)ワークロードを調整すべきか否かを理解することができる。また、本発明の技術は、分散型記憶システムの様々な性質、例えば、キュー時間、実際の処理時間、サーバの現地時間、サーバのCPUおよびメモリの現在使用率、キューの長さおよび他のメトリックをプロファイリングすることができる。さらに、本発明の技術によって、分散型記憶システムのプロバイダがプロファイリングを完全に管理することができるため、SLA/SLO遵守をより容易に管理することができる。
図1は、分散型データベースシステムの性能を監視するための例示的な環境を示す図である。図示のように、環境100は、分散型記憶システム110を含み、分散型記憶システム110は、複数のデータグループ114を各々管理するための複数のサーバ112を含む。動作中、クライアント120は、リクエスト122を分散型記憶システム110に送信する。分散型記憶システム110は、リクエスト122を処理し、応答124をクライアント120に送信する。クライアント120は、リクエスト情報126をプローバ130に送信する。リクエスト情報126は、特定のクライアント120によって分散型記憶システム110に送信されたリクエストに関する情報、例えば、リクエスト種類、リクエストパラメータおよび各リクエストのリクエスト目標を含む。プローバ130は、リクエスト情報126を受信し、リクエスト情報126に基づいて、プローブリクエスト132を分散型記憶システム110に送信する。分散型記憶システム110は、プローブリクエストを処理し、応答134をプローバ130に送信する。プローバ130は、応答を解析することによって、分散型記憶システム110、分散型記憶システム110内の特定のサーバ112または分散型記憶システム110内の特定のデータグループ114の現在性能、もしくは分散型記憶システム110内の他の要素の現在性能を示す性能メトリック140を出力する。
分散型記憶システム110は、ローカルまたはプライベートネットワーク(図示せず)によって接続された複数のサーバ112を備えた分散システムであってもよい。一部の場合に、ローカルまたはプライベートネットワークは、単一の施設に完全に配置され、他の場合に、ローカルまたはプライベートネットワークは、広域なエリアをカバーし、複数の施設を相互に接続することができる。サーバ112は、互いに通信することによって、クライアント120によってリクエストしたデータを記憶、検索および更新することによって、クライアントリクエスト122にサービスを提供することができる。場合によって、分散型記憶システム110は、分散型データベース、分散型ファイルシステム、または他の種類の分散型記憶装置を含むことができる。また、分散型記憶システム110は、システム内のサーバ112の動作を管理および構成するための要素を含むことができる。
分散型記憶システム110内の各サーバ112は、プロセッサと、分散型記憶システム110によって管理されるデータを格納するためのハードドライブなどの記憶装置とを含むコンピューティング装置であってもよい。場合によって、配信ポリシーに従って、データを異なるサーバ112に配信することができる。配信ポリシーは、例えば、冗長性を維持するために、分散型記憶システム110内の特定のテーブルまたはファイルを特定の数のサーバ112上に格納するように指定することができる。また、配信ポリシーは、地理的冗長性を維持するために、データを複数の異なる場所に格納するように指定することができる。場合によって、サーバ112は、直接に接続された永続記憶装置の代わりに、分散型ファイルシステムなどの外部記憶装置または外部記憶システムを利用することができる。
各々のサーバ112は、1つ以上のデータグループ114を管理する。データグループ114は、分散型記憶システム110によって管理されている全てのデータセットの一部を含むことができる。各データグループ114は、分散型データベースのテーブルの一部からのデータ、分散型ファイルシステムからの1つ以上のファイル、または分散型記憶システム110内の他のデータの区分を表すまたは含むことができる。動作中、分散型記憶システム110は、リクエスト目標に基づいて、各々のリクエスト122およびプローブリクエスト132を解析することによって、リクエストまたはプローブリクエストに関連する特定のデータグループ114を決定する。その後、分散型記憶システムは、特定のデータグループ114を管理する特定のサーバ112に、リクエストまたはプローブリクエストをルーティングすることができる。
場合によって、クライアント120は、分散型記憶システム110のユーザであってもよい。クライアント120は、分散型記憶システム110を用いてデータを格納および検索するエンティティ(例えば、ウェブサイトまたはアプリケーション)であってもよい。各クライアント120は、分散型記憶システム110に送信した各リクエスト122に関する情報を格納することができる。場合によって、各クライアント120は、分散型記憶システム110に送信したリクエストの全体のレコードを格納することができる。各クライアントは、分散型記憶システム110に送信したリクエスト122の概要、例えば、同様のセットのリクエストパラメータと共に送信したリクエストのカウント数を格納することができる。例えば、クライアント120は、「読み取り」というリクエスト種類、「無効」という並行処理パラメータ、および「顧客」という名前のテーブルのリクエスト目標を有する5つのリクエストが送信されたことを記録することができる。このリクエスト情報126は、例えば、各クライアント120によって定期的にプローバ130に送信されてもよい。このリクエスト情報126は、例えば、インターネットのようなパブリックネットワークを介して、クライアント120によってプローバ130に送信されてもよい。場合によって、リクエスト情報126は、クライアント上で実行し、クライアントによって送信されたリクエストに関する情報を収集するように構成されたソフトウェアプロセスまたはライブラリによって、収集されてもよい。場合によって、ソフトウェアライブラリは、分散型記憶システムのプロバイダによって提供されてもよい。
プローバ130は、クライアント120から受信したリクエスト情報を解析し、リクエスト情報126によって記述されたリクエストの統計近似値を表すプローブプロファイルを生成することができる。例えば、プローバ130は、1万個の「読み取り」種類のリクエストおよび5千個の「書き込み」種類のリクエストを含むリクエスト情報126を解析し、最初のリクエスト122を処理する分散システムの性能をエミュレートおよび決定するために、1千個の「読み取り」種類のプローブリクエストおよび5百個の「書き込み」種類のプローブリクエストを送信すべきであることを示すプローブプロファイルを生成することができる。いくつかの場合において、プローバ130は、クライアント120によって送信されたリクエスト122を表すのに十分であり、分散型記憶システム110の性能に与える影響を最小限に抑える最小数のプローブリクエスト132を選択的に生成することができる。
プローバ130は、プローブプロファイルに基づいて、プローブリクエスト132を分散型記憶システム110に送信する。場合によって、プローブリクエスト132は、クライアント120によって送信されたリクエスト122と同様のフォーマットを有してもよいが、クライアント120からのリクエストではなくプローブリクエストであることを示す指標を含んでもよい。分散型記憶システム110は、クライアントリクエスト122と同様に、プローブリクエスト132を受信および処理するが、この場合、分散型記憶システムは、各プローブリクエストのリクエスト目標によって示された実際のデータにアクセスしない。その代わりに、場合によって、分散型記憶システム110は、プローバ130に特別に割り当てられたデータ、例えば、特別のフィールド、コラム、メタデータ値、またはリクエスト目標によって示されたデータに関連する他の値にアクセスすることができる。このようにして、クライアントからのリクエスト122の処理を妨げることなく、分散型記憶システム110のいくつかの特徴の性能をプロファイリングすることができる。例えば、リクエストされたデータをロックさせるための並行処理パラメータを含むプローブリクエストは、クライアントからのリクエストの処理を妨げないように、分散型記憶システム110に指示して、プローバ特有データにロックを掛けることができる。このような機能によって、クライアントリクエストの処理に影響を与えることなく、分散型記憶システム110の同時性特徴をプロファイリングすることができる。
図示のように、プローバ130は、送信したプローブリクエスト132および受信した応答134に基づいて、1つ以上の性能メトリック140を生成する。場合によって、性能メトリックは、分散型記憶システム110がプローブリクエストに応答する平均時間として測定されたシステムの全体的な待ち時間を含むことができる。また、性能メトリックは、失敗したプローブリクエストと成功したプローブリクエストとの比率として測定された有効率を含むことができる。さらに、性能メトリックは、ローカルネットワーク待ち時間、サーバのキュー待ち時間(例えば、各プローブリクエスト132が処理される前にサーバで待機する平均時間)、ディスクまたはメモリ待ち時間、または他の性能メトリックを含むことができる。
図2は、分散型記憶システムのクライアントリクエストを処理する例示的なプロセスを示すスイムレーン図である。ステップ205では、クライアント120は、リクエストを分散型記憶システム110に送信する。ステップ210では、分散型記憶システム110は、リクエストにサービスを提供するための準備を用意する。分散型記憶システム110により行われた準備は、例えば、リクエストの構文解析、リクエストしたデータを格納するための特定のサーバの決定、特定のサーバにリクエストの送信、特定のリクエストを達成するための実行計画の生成(例えば、リクエストを実現するために、アクセスするテーブルおよびデータを操作する方法の決定)、または他の操作を含むことができる。ステップ215では、分散型記憶システム110は、各リクエストによって示されたデータにアクセスする。この操作は、(以下に説明するように)分散型記憶システム110がプローブリクエストを処理するときに、リクエストによって示されたデータにアクセスすることができないこととは対照的である。ステップ220では、分散型記憶システム110は、リクエストに対する応答をクライアントに送信する。例えば、クライアントが分散型記憶システム110から特定のデータを読み取むことをリクエストした場合、応答は、リクエストされたデータを含むことができる。
図3は、分散型データベースシステムの性能を監視するための例示的なプロセスを示すスイムレーン図である。ステップ305では、クライアント120は、リクエストを分散型記憶システム110に送信する。ステップ310では、分散型記憶システム110は、リクエストに対する応答をクライアント120に送信する。ステップ315では、クライアント120は、送信されたリクエストに関する情報をプローバ130に提供する。ステップ320では、プローバ130は、クライアントから送信されたリクエストに関する情報に基づいて、プローブプロファイルを生成する。場合によって、プローバは、複数のクライアントから送信されたリクエストに関する情報を受信し、受信した情報に基づいて、プローブプロファイルを生成することができる。ステップ325では、プローバ130は、プローブプロファイルに基づいて、プローブリクエストを分散型記憶システム110に送信する。ステップ330では、分散型記憶システム110は、各リクエストにサービスを提供するための準備を用意する。ステップ335では、分散型記憶システム110は、各プローブリクエストのリクエスト目標によって示されたデータに関連するプローブ特有メタデータにアクセスする。ステップ340では、分散型記憶システム110は、プローブリクエストに対する応答をプローバ130に送信する。ステップ345では、プローバは、プローブリクエストに対する応答に基づいて、性能メトリックを計算する。
図4は、分散型データベースシステムの性能を監視するための例示的なプロセスを示フローチャートである。ステップ405では、クライアントによって分散型記憶システムに送信されたリクエストを識別する。各リクエストは、リクエストパラメータを含む。場合によって、リクエストパラメータは、リクエスト種類、並行処理パラメータ、およびリクエストに関連する分散型記憶システム内のデータを示すリクエスト目標を含む。
ステップ410では、識別されたリクエストに基づいて、プローブリクエストを生成する。プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含む。場合によって、プローブリクエストの生成は、識別されたリクエストの数よりも少ない数のプローブリクエストを生成することを含む。プローブリクエストの生成は、識別された(特定のリクエスト種類、特定の並行処理パラメータ、および特定のリクエスト目標を含む)リクエストの数に比例する数の(特定のリクエスト種類、特定の並行処理パラメータ、および特定のリクエスト目標を含む)プローブリクエストを生成することを含む。
ステップ415では、ネットワークを介して、生成されたプローブリクエストを分散型記憶システムに送信する。分散型記憶システムは、プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成される。場合によって、分散型記憶システムは、プローブリクエストの受信に応答して各プローブリクエストにサービスを提供するための準備を用意するときに、クライアントにアクセス可能なデータに対して読み書きを行わないように構成される。いくつかの実現例において、分散型記憶システム内のデータは、クライアントにアクセスできないプローブフィールドを含み、分散型記憶システムは、プローブリクエストの受信に応答して、プローブリクエストのリクエスト目標に関連するプローブフィールドにアクセスするように構成される。
ステップ420では、分散型記憶システムからプローブリクエストに対する応答を受信する。ステップ425では、受信した応答に基づいて、分散型記憶システムの少なくとも1つの性能メトリックを出力する。場合によって、少なくとも1つの性能メトリックの出力は、特定のデータグループ内のデータを識別するリクエスト目標を含むプローブリクエストに対する応答に基づいて、分散型記憶システムの特定のデータグループの少なくとも1つの性能メトリックの加重平均を出力することを含む。少なくとも1つの性能メトリックは、有効率、ディスク待ち時間、キュー待ち時間、リクエスト準備待ち時間、または内部ネットワーク待ち時間のうち、少なくとも1つを含むことができる。場合によって、性能メトリックは、リクエスト情報126に由来する計算において用いられた重みによる加重平均を含むことができる。例えば、無効な並行処理リクエストが強力な並行処理リクエストの10倍である場合、性能メトリックにおいて、無効な並行処理プローブリクエストの性能データは、強力な並行処理プローブリクエストの性能データの10倍に重くなる可能性がある。
場合によって、プロセス400は、少なくとも1つの性能メトリックを、分散型記憶システムの少なくとも1つの性能メトリックの目標値を含むサービスレベル目標(SLO)と比較することを含む。SLOは、分散型記憶システムのサービスレベルアグリーメント(SLA)に包含することができる。また、プロセス400は、少なくとも1つの性能メトリックが目標値を満たさないことを判断すること、および少なくとも1つの性能メトリックが目標値を満たさないという指示を出力することを含むことができる。
図5は、クライアントとしてもしくはサーバまたは複数のサーバとして、本明細書に記載のシステムおよび方法を実現するために使用されたコンピューティング装置500、550を示すブロック図である。コンピューティング装置500は、ラップトップ、デスクトップ、ワークステーション、PDA(Personal Digital Assistant)、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図されている。コンピューティング装置550は、パーソナルデジタルアシスタント、携帯電話、PDA、携帯電話、スマートフォンおよび他の類似するコンピューティング装置などの様々な形態のモバイル装置を表すように意図されている。また、コンピューティング装置500または550は、ユニバーサルシリアルバス(USB)フラッシュドライブを含むことができる。USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを格納することができる。USBフラッシュドライブは、入力/出力要素、例えば、別のコンピューティング装置のUSBポートに挿入することができるワイヤレストランスミッタまたはUSBコネクタを含むことができる。図示された構成要素、それらの接続および関係並びにそれらの機能は、例示的なものに過ぎず、本明細書に記載および/または請求される発明の実施を限定するものではない。
コンピューティング装置500は、プロセッサ502と、メモリ504と、記憶装置506と、メモリ504および高速拡張ポート510を連結する高速インターフェイス508と、低速バス514および記憶装置506を連結する低速インターフェイス512とを含む。構成要素502、504、506、508、510および512は、様々なバスを使用して相互に接続され、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。プロセッサ502は、メモリ504または記憶装置506に記憶された命令を含むコンピューティング装置500内に実行される命令を処理することによって、外部入力/出力装置のGUIに、例えば高速インターフェイス508に接続されたディスプレイ516にグラフィック情報を表示することができる。他の実施態様において、複数のプロセッサおよび/または複数のバスは、複数のメモリおよび複数種類のメモリと共に、適切に使用されることができる。また、各装置が(例えば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)必要な動作の一部を実行するように、複数のコンピューティング装置500を接続することができる。
メモリ504は、コンピューティング装置500に情報を格納する。一実現例において、メモリ504は、揮発性メモリユニットである。別の実現例において、メモリ504は、不揮発性メモリユニットである。メモリ504は、別の形態のコンピュータ可読媒体、例えば、磁気ディスクまたは光ディスクであってもよい。
記憶装置506は、コンピューティング装置500に大容量の記憶を提供することができる。一実現例において、記憶装置506は、例えば、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、テープディスク装置、フラッシュメモリまたは他の同様の固体メモリ装置、または記憶エリアネットワークまたは他の構成内の装置を含むアレイ記憶装置などのコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体に有形的に具体化することができる。また、コンピュータプログラム製品は、命令を含むことができる。これらの命令は、実行されると、上述したような1つ以上の方法を実行することができる。情報担体は、例えば、メモリ504、記憶装置506、またはプロセッサ502上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
高速コントローラ508は、コンピューティング装置500の高速の帯域幅集約動作を管理し、低速コントローラ512は、低速の帯域幅集約動作を管理する。このような機能の割り当ては、例示に過ぎない。一実現例において、高速コントローラ508は、メモリ504、(例えば、グラフィックプロセッサまたはアクセラレータを介して)ディスプレイ516、および様々な拡張カード(図示せず)を挿入できる高速拡張ポート510に連結される。この実現例において、低速コントローラ512は、記憶装置506および低速拡張ポート514に連結される。様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、例えば、キーボード、ポインティング装置、スキャナなどの1つ以上の入出力装置に連結されてもよく、またはネットワークアダプタを介して、スイッチまたはルータなどのネットワーキング装置に連結されてもよい。
図示のように、コンピューティング装置500は、いくつかの異なる形態で実装されることができる。例えば、コンピューティング装置500は、標準サーバ520として実装されてもよく、または標準サーバのグループ内に複数回実装されてもよい。また、コンピューティング装置500は、サーバラックシステム524の一部として実装されてもよい。さらに、コンピューティング装置500は、ラップトップコンピュータ522のようなパーソナルコンピュータに実装されてもよい。代替的には、コンピューティング装置500の要素は、装置550などのモバイル装置(図示せず)内の他の要素と組み合わてもよい。このような装置の各々は、1つ以上のコンピューティング装置500、550を含んでもよく、システムの全体は、互いに通信できる複数のコンピューティング装置500、550から構成されてもよい。
コンピューティング装置550は、プロセッサ552、メモリ564、ディスプレイ554などの入出力装置、通信インターフェイス566、およびトランシーバ568を含む。装置550は、追加の記憶を提供するために、マイクロドライブまたは他の素子などの記憶装置を備えることもできる。要素550、552、564、554、566および568は、様々なバスを介して相互に接続され、一部の要素は、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。
プロセッサ552は、メモリ564に格納された命令を含むコンピューティング装置550内の命令を実行することができる。このプロセッサは、互いに独立している複数のアナログプロセッサおよびデジタルプロセッサを備えるチップのチップセットとして実装されてもよい。また、いくつかのアーキテクチャのいずれかを用いて、プロセッサを実装することができる。例えば、プロセッサ510は、CISC(複合命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサであってもよい。このプロセッサは、装置550の他の要素の協調、例えば、ユーザインターフェイスの制御、装置550によるアプリケーションの実行、および装置550による無線通信を提供することができる。
プロセッサ552は、制御インターフェイス558およびディスプレイ554に結合されたディスプレイインターフェイス556を介してユーザと通信することができる。ディスプレイ554は、例えば、TFTディスプレイ(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオードディスプレイ)、または他の適切なディスプレイ技術を使用することができる。表示インターフェイス556は、グラフィック情報および他の情報をユーザに表示するために、ディスプレイ554を駆動する適切な回路を含むことができる。制御インターフェイス558は、ユーザからの指令を受信し、変換してからプロセッサ552に提供することができる。また、プロセッサ552と通信するように外部インターフェイス562を設けることによって、装置550は、他の装置と近距離通信を行うことができる。外部インターフェイス562は、例えば、いくつかの実現例において有線通信を提供することができ、他の実現例において無線通信を提供することができる。複数のインターフェイスを使用することもできる。
メモリ564は、コンピューティング装置550に情報を格納する。メモリ564は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうち、1つまたは複数として実装することができる。拡張メモリ574は、例えば、SIMM(Single In Line Memory Module)カードインターフェイスを含む拡張インターフェイス572を介して、装置550に提供され、接続されてもよい。具体的には、拡張メモリ574は、上述したプロセスを実行するまたは補足するための命令を格納することができ、セキュリティ情報を格納することもできる。したがって、拡張メモリ574は、例えば、装置550のセキュリティモジュールとして提供されてもよく、装置550の安全使用を可能にする命令でプログラムされてもよい。さらに、SIMMカードを介して、追加情報と共に、セキュリティアプリケーションを配置することができる。例えば、ハッキングできない方法で、SIMMカード上に識別情報を配置することができる。
以下に説明するように、メモリは、例えば、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。一実現例において、コンピュータプログラム製品は、情報担体に有形的に具体化される。コンピュータプログラム製品は、命令を含み、これらの命令は、実行されると、上述したような1つ以上の方法を実行する。情報担体は、例えば、メモリ564、拡張メモリ574、またはプロセッサ552上のメモリなどのコンピュータ可読媒体または機械可読媒体であり、トランシーバ568または外部インターフェイス562を介して受信動作を実行してもよい。
装置550は、必要に応じてデジタル信号処理回路を含む通信インターフェイス566を介して無線通信を行うことができる。通信インターフェイス566は、とりわけ、GSM(登録商標)通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルに基づいて、通信を提供することができる。このような通信は、例えば、高周波トランシーバ568を介して行われてもよい。また、ブルートゥース(登録商標)、WiFi(登録商標)、または他のトランシーバ(図示せず)を用いて、短距離通信を行うことができる。さらに、GPS(全地球測位システム)受信モジュール570は、追加のナビゲーション関連無線データおよび位置関連無線データを装置550に提供することができる。これらの無線データは、装置550上で動作するアプリケーションに適宜に使用される。
また、装置550は、音声コーデック560を使用して音声通信を行うことができる。音声コーデック560は、ユーザから受信した音声情報を使用可能なデジタル情報に変換することができる。同様に、音声コーデック560は、例えば、装置550の送受話器内のスピーカを介して、ユーザに可聴な音声を生成することができる。このような音声は、音声電話からの音声を含むことができ、記録された音声(例えば、音声メッセージ、音楽ファイル)を含むことができ、装置550上で動作するアプリケーションによって生成された音声を含むこともできる。
図示のように、コンピューティング装置550は、いくつかの異なる形態で実装されてもよい。例えば、コンピューティング装置550は、携帯電話580として実装されてもよく、スマートフォン582、PDAまたは他の類似するモバイル装置の一部として実装されてもよい。
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェアおよび/またはそれらの組み合わせで実現することができる。これらの様々な実装は、プログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装を含むことができる。このプログラム可能なシステムは、記憶システムからデータおよび命令を受信し、データおよび命令を記憶システムに送信するように記憶システムに連結された少なくとも1つのプログラム可能な専用または汎用のプロセッサ、少なくとも1つの入力要素、および少なくとも1つの出力装置を含む。
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)これらのコンピュータプログラムは、プログラム可能なプロセッサ用の機械命令を含み、高度な手続き型プログラミング言語および/または高度なオブジェクト指向プログラミング言語で実装することができ、および/またはアセンブリ言語/機械言語で実装することができる。「機械可読媒体」という用語は、本明細書に使用された場合、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用された機械可読信号としての機械命令を受け取る機械可読媒体を含む任意のコンピュータプログラム製品、機械および/または装置(例えば、磁気ディスク、光学ディスク、メモリ、プログラム可能な論理装置(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用された任意の信号を指す。
ユーザとの情報交換を提供するために、本開示に記載されたシステムおよび技術は、情報をユーザに提示するための表示装置(例えば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ)、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティング装置(例えば、マウスまたはトラックボール)を備えたコンピュータ上で実装することができる。他の種類の装置を用いて、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意種類の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形で受信することができる。
本明細書に記載のシステムおよび技術は、バックエンド要素(例えば、データサーバ)を含むコンピューティングシステム、またはミドルウェア要素(例えば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンド要素(例えば、ユーザが本明細書に記載のシステムおよび技術の実装と情報交換を行うことができるグラフィカルユーザインターフェイスまたはウェブブラウザを含むクライアントコンピュータ)を含むコンピューティングシステム、またはバックエンド要素、ミドルウェア要素およびフロントエンド要素の任意の組み合わせを含むコンピューティングシステムに実装されてもよい。これらのシステム要素は、任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ピアツーピアネットワーク(アドホックまたは静的メンバを有する)、グリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般的に互いに遠隔であり、典型的には通信ネットワークを介して情報交換を行う。クライアントとサーバとの関係は、各々のコンピュータ上で動作しており、互いにクライアント−サーバ関係を有するコンピュータプログラムに依存する。
さらなる実施形態は、以下の実施例に要約される。
1つ以上のプロセッサによって実行され、分散型記憶システムの性能メトリックを測定するためのコンピュータ実装方法である。方法は、クライアントによって分散型記憶システムに送信されたリクエストを識別するステップを含み、各リクエストは、リクエストパラメータを含む。方法は、識別されたリクエストに基づいて、プローブリクエストを生成するステップを含み、プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含む。方法は、ネットワークを介して、生成されたプローブリクエストを分散型記憶システムに送信するステップを含み、分散型記憶システムは、プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成される。方法は、分散型記憶システムからプローブリクエストに対する応答を受信するステップと、受信した応答に基づいて、分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力するステップとを含む。
実施例1に記載の方法において、プローブリクエストを生成するステップは、識別されたリクエストの数よりも少ない数のプローブリクエストを生成することを含む。
実施例1または2に記載の方法において、リクエストパラメータは、リクエスト種類、並行処理パラメータ、およびリクエストに関連する分散型記憶システム内のデータを示すリクエスト目標を含む。
実施例3に記載の方法において、プローブリクエストを生成するステップは、識別された、特定のリクエスト種類、特定の並行処理パラメータおよび特定のリクエスト目標を含むリクエストの数に比例する数の、特定のリクエスト種類、特定の並行処理パラメータおよび特定のリクエスト目標を含むプローブリクエストを生成することを含む。
実施例1〜4のいずれか1つに記載の方法において、少なくとも1つの性能メトリックを出力するステップは、特定のデータグループ内のデータを識別するリクエスト目標を含むプローブリクエストに対する応答に基づいて、分散型記憶システムの特定のデータグループの少なくとも1つの性能メトリックの加重平均を出力することを含む。
実施例1〜5のいずれか1つに記載の方法において、少なくとも1つの性能メトリックは、有効率、ディスク待ち時間、キュー待ち時間、リクエスト準備待ち時間、および内部ネットワーク待ち時間のうち、少なくとも1つを含む。
実施例1〜6のいずれか1つに記載の方法において、分散型記憶システムは、プローブリクエストの受信に応答して各プローブリクエストにサービスを提供するための準備を用意するときに、クライアントにアクセス可能なデータに対して読み書きを行わないように構成される。
実施例1〜7のいずれか1つに記載の方法において、分散型記憶システム内のデータは、クライアントにアクセスできないプローブフィールドを含み、分散型記憶システムは、プローブリクエストの受信に応答して、プローブリクエストのリクエスト目標に関連するプローブフィールドにアクセスするように構成される。
実施例1〜8のいずれか1つに記載の方法は、少なくとも1つの性能メトリックを、分散型記憶システムの少なくとも1つの性能メトリックの目標値を含むサービスレベル目標(SLO)と比較するステップをさらに含む。
実施例9に記載の方法は、少なくとも1つの性能メトリックが目標値を満たさないことを判断するステップと、少なくとも1つの性能メトリックが目標値を満たさないことを示す指示を出力するステップとをさらに含む。
実施例9または10に記載の方法において、サービスレベル目標は、分散型記憶システムのサービスレベルアグリーメント(SLA)内に含まれる。
実施例1〜11のいずれか1つに記載の方法において、プローブリクエストは、識別されたリクエストの統計表現である。
命令を格納する非一時的なコンピュータ可読媒体であって、これらの命令は、実行されると、少なくとも1つのプロセッサに分散型記憶システム内の性能メトリックを測定する動作を実行させ、これらの動作は、クライアントによって分散型記憶システムに送信されたリクエストを識別する動作を含み、各リクエストは、リクエストパラメータを含み、識別されたリクエストに基づいて、プローブリクエストを生成する動作を含み、プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含み、ネットワークを介して、生成されたプローブリクエストを分散型記憶システムに送信する動作を含み、分散型記憶システムは、プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成され、分散型記憶システムからプローブリクエストに対する応答を受信する動作と、受信した応答に基づいて、分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力する動作とを含む。
実施例13に記載のコンピュータ可読媒体において、プローブリクエストを生成する動作は、識別されたリクエストの数よりも少ない数のプローブリクエストを生成することを含む。
実施例13または14に記載のコンピュータ可読媒体において、リクエストパラメータは、リクエスト種類、並行処理パラメータ、およびリクエストに関連する分散型記憶システム内のデータを示すリクエスト目標を含む。
実施例15に記載のコンピュータ可読媒体において、識別された、特定のリクエスト種類、特定の並行処理パラメータおよび特定のリクエスト目標を含むリクエストの数に比例する数の、特定のリクエスト種類、特定の並行処理パラメータおよび特定のリクエスト目標を含むプローブリクエストを生成することを含む。
実施例13〜16のいずれか1つに記載のコンピュータ可読媒体において、少なくとも1つの性能メトリックを出力する動作は、分散型記憶システムの特定のデータグループ内のデータを識別するリクエスト目標を含むプローブリクエストに対する応答に基づいて、特定のデータグループの少なくとも1つの性能メトリックの加重平均を出力することを含む。
実施例13〜17のいずれか1つに記載のコンピュータ可読媒体において、記少なくとも1つの性能メトリックは、有効率、ディスク待ち時間、キュー待ち時間、リクエスト準備待ち時間、および内部ネットワーク待ち時間のうち、少なくとも1つを含む。
実施例13〜17のいずれか1つに記載のコンピュータ可読媒体において、分散型記憶システムは、プローブリクエストの受信に応答して各プローブリクエストにサービスを提供するための準備を用意するときに、クライアントにアクセス可能なデータに対して読み書きを行わないように構成される。
分散型記憶システムの性能メトリックを測定するためのシステムであって、データを格納するためのメモリと、メモリにアクセスし且つ以下の動作を実行するように動作可能な1つ以上のプロセッサとを備え、これらの動作は、クライアントによって分散型記憶システムに送信されたリクエストを識別する動作を含み、各リクエストは、リクエストパラメータを含み、識別されたリクエストに基づいて、プローブリクエストを生成する動作を含み、プローブリクエストは、識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含み、ネットワークを介して、生成されたプローブリクエストを分散型記憶システムに送信する動作を含み、分散型記憶システムは、プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成され、分散型記憶システムからプローブリクエストに対する応答を受信する動作と、受信した応答に基づいて、分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力する動作とを含む。
上記でいくつかの実施態様を詳細に説明したが、他の変更も可能である。また、望ましい結果を達成するために、図示の論理フローは、示された特定の順序でまたは逐次に行う必要がない。図示のフローに他のステップを追加してもよく、または図示のフローから他のステップを省いてもよい。記載のシステムに他の要素を追加してもよく、システムから他の要素を除去してもよい。したがって、他の実施形態は、添付の特許請求の範囲内に含まれる。

Claims (14)

  1. 1つ以上のプロセッサによって実行され、分散型記憶システムの性能メトリックを測定するためのコンピュータ実装方法であって、
    クライアントによって前記分散型記憶システムに送信されたリクエストを識別するステップを含み、各リクエストは、リクエストパラメータを含み、
    前記識別されたリクエストに基づいて、プローブリクエストを生成するステップを含み、前記プローブリクエストは、前記識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含み、
    ネットワークを介して、前記生成されたプローブリクエストを前記分散型記憶システムに送信するステップを含み、前記分散型記憶システムは、前記プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成され、
    前記分散型記憶システムから前記プローブリクエストに対する応答を受信するステップと、
    前記受信した応答に基づいて、前記分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力するステップとを含む、方法。
  2. 前記プローブリクエストを生成するステップは、前記識別されたリクエストの数よりも少ない数のプローブリクエストを生成することを含む、請求項1に記載の方法。
  3. 前記リクエストパラメータは、リクエスト種類、並行処理パラメータ、および前記リクエストに関連する前記分散型記憶システム内のデータを示すリクエスト目標を含む、請求項1または請求項2に記載の方法。
  4. 前記プローブリクエストを生成するステップは、前記識別された、特定のリクエスト種類、特定の並行処理パラメータ、および特定のリクエスト目標を含むリクエストの数に比例する数の、前記特定のリクエスト種類、前記特定の並行処理パラメータおよび前記特定のリクエスト目標を含むプローブリクエストを生成することを含む、請求項3に記載の方法。
  5. 前記少なくとも1つの性能メトリックを出力するステップは、特定のデータグループ内のデータを識別するリクエスト目標を含むプローブリクエストに対する応答に基づいて、前記分散型記憶システムの前記特定のデータグループの前記少なくとも1つの性能メトリックの加重平均を出力することを含む、請求項3に記載の方法。
  6. 前記少なくとも1つの性能メトリックは、有効率、ディスク待ち時間、キュー待ち時間、リクエスト準備待ち時間、および内部ネットワーク待ち時間のうち、少なくとも1つを含む、請求項1〜請求項5のいずれか1項に記載の方法。
  7. 前記分散型記憶システムは、前記プローブリクエストの受信に応答して各プローブリクエストにサービスを提供するための準備を用意するときに、前記クライアントにアクセス可能なデータに対して読み書きを行わないように構成される、請求項1〜請求項6のいずれか1項に記載の方法。
  8. 前記分散型記憶システム内のデータは、前記クライアントにアクセスできないプローブフィールドを含み、
    前記分散型記憶システムは、前記プローブリクエストの受信に応答して、前記プローブリクエストのリクエスト目標に関連する前記プローブフィールドにアクセスするように構成される、請求項7に記載の方法。
  9. 前記少なくとも1つの性能メトリックを、前記分散型記憶システムの前記少なくとも1つの性能メトリックの目標値を含むサービスレベル目標(SLO)と比較するステップをさらに含む、請求項1〜請求項8のいずれか1項に記載の方法。
  10. 前記少なくとも1つの性能メトリックが前記目標値を満たさないことを判断するステップと、
    前記少なくとも1つの性能メトリックが前記目標値を満たさないことを示す指示を出力するステップとをさらに含む、請求項9に記載の方法。
  11. 前記サービスレベル目標は、前記分散型記憶システムのサービスレベルアグリーメント(SLA)内に含まれる、請求項9に記載の方法。
  12. 前記プローブリクエストは、前記識別されたリクエストの統計表現である、請求項1〜請求項11のいずれか1項に記載の方法。
  13. 実行されると、少なくとも1つのプロセッサに請求項1〜請求項12のいずれか1項に記載の方法を実現させる命令を含む、コンピュータプログラム
  14. 分散型記憶システムの性能メトリックを測定するためのシステムであって、
    データを格納するためのメモリと、
    前記メモリにアクセスし且つ以下の動作を実行するように動作可能な1つ以上のプロセッサとを備え、これらの動作は、
    クライアントによって前記分散型記憶システムに送信されたリクエストを識別する動作を含み、各リクエストは、リクエストパラメータを含み、
    前記識別されたリクエストに基づいて、プローブリクエストを生成する動作を含み、前記プローブリクエストは、前記識別されたリクエストに含まれたリクエストパラメータの統計サンプルを表すプローブリクエストパラメータを含み、
    ネットワークを介して、前記生成されたプローブリクエストを前記分散型記憶システムに送信する動作を含み、前記分散型記憶システムは、前記プローブリクエストの受信に応答して、各プローブリクエストにサービスを提供するための準備を用意するように構成され、
    前記分散型記憶システムから前記プローブリクエストに対する応答を受信する動作と、
    前記受信した応答に基づいて、前記分散型記憶システムの現在の性能状態を測定する少なくとも1つの性能メトリック値を出力する動作とを含む、システム。
JP2018507533A 2015-11-13 2016-09-27 分散型記憶システムの性能監視 Active JP6526907B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562255316P 2015-11-13 2015-11-13
US62/255,316 2015-11-13
PCT/US2016/053933 WO2017083022A1 (en) 2015-11-13 2016-09-27 Performance monitoring in a distributed storage system

Publications (2)

Publication Number Publication Date
JP2018533779A JP2018533779A (ja) 2018-11-15
JP6526907B2 true JP6526907B2 (ja) 2019-06-05

Family

ID=57113778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018507533A Active JP6526907B2 (ja) 2015-11-13 2016-09-27 分散型記憶システムの性能監視

Country Status (9)

Country Link
US (3) US10686686B2 (ja)
EP (2) EP3374864B1 (ja)
JP (1) JP6526907B2 (ja)
KR (1) KR102110757B1 (ja)
CN (2) CN107924337B (ja)
AU (1) AU2016351383B2 (ja)
DE (2) DE202016008054U1 (ja)
GB (1) GB2556772B (ja)
WO (1) WO2017083022A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542725B (zh) * 2018-11-15 2022-04-05 北京金山云网络技术有限公司 一种分布式***的服务质量监控方法、装置及监控服务器
CN110618889A (zh) * 2019-08-14 2019-12-27 网联清算有限公司 服务可用性的探测方法、装置、计算机设备和存储介质
CN110990183B (zh) * 2019-12-04 2022-05-17 腾讯科技(深圳)有限公司 数据库集群的异常检测方法、装置、计算机可读存储介质
CN111290907A (zh) * 2020-01-14 2020-06-16 深圳市网心科技有限公司 分布式存储网络压测方法及装置、计算机装置及存储介质
CN111258870A (zh) * 2020-01-17 2020-06-09 中国建设银行股份有限公司 分布式存储***的性能分析方法、装置、设备及存储介质
US11570182B1 (en) * 2020-03-30 2023-01-31 Amazon Technologies, Inc. Compute-less authorization
CN111600929B (zh) * 2020-04-07 2023-05-19 厦门网宿有限公司 传输线路探测方法、路由策略生成方法及代理服务器
US11695851B2 (en) * 2020-06-03 2023-07-04 Micron Technology, Inc. Gateway for vehicle with caching buffer for distributed storage system
CN111708677B (zh) * 2020-06-19 2023-07-07 浪潮云信息技术股份公司 一种云计算环境下的云硬盘使用量采集方法
CN112559271B (zh) * 2020-12-24 2023-10-20 北京百度网讯科技有限公司 分布式应用的接口性能监测方法、装置、设备及存储介质
CN113138903B (zh) * 2021-04-28 2024-05-28 北京百度网讯科技有限公司 用于跟踪存储***的性能的方法和设备
CN113608974B (zh) * 2021-06-29 2023-12-22 济南浪潮数据技术有限公司 一种分布式存储***的性能压测方法、***及相关组件
US11768665B2 (en) * 2021-11-18 2023-09-26 Red Hat, Inc. Generation of service-level objective specifications using java annotation
CN115373836A (zh) * 2022-05-09 2022-11-22 华为技术有限公司 计算网络、算力度量方法、调度装置及相关产品

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19813884B4 (de) * 1998-03-30 2008-05-29 International Business Machines Corp. System und Verfahren zur Ermittlung und Darstellung von verbindungsbezogenen Leistungsdaten in Netzwerken
US6070190A (en) * 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6336117B1 (en) * 1999-04-30 2002-01-01 International Business Machines Corporation Content-indexing search system and method providing search results consistent with content filtering and blocking policies implemented in a blocking engine
US6981180B1 (en) * 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
CA2438999A1 (en) * 2001-02-20 2002-08-29 Computer Associates Think, Inc. System and method for monitoring service provider achievements
US7640342B1 (en) * 2002-09-27 2009-12-29 Emc Corporation System and method for determining configuration of one or more data storage systems
US7257515B2 (en) * 2004-03-03 2007-08-14 Hewlett-Packard Development Company, L.P. Sliding window for alert generation
US7630862B2 (en) * 2004-03-26 2009-12-08 Microsoft Corporation Load test simulator
JP2008250719A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 情報処理装置
CN101782868A (zh) * 2009-01-21 2010-07-21 国际商业机器公司 一种用于对本地方法调用进行性能测试的方法和装置
US8019862B2 (en) * 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
JP4883139B2 (ja) * 2009-05-28 2012-02-22 富士通株式会社 監視システムの性能測定プログラム,監視システムの性能測定方法及び監視システムの性能測定装置
CN102331989A (zh) * 2010-07-12 2012-01-25 张艳红 基于内容排序的图像、视频搜索引擎
US9323561B2 (en) 2010-08-13 2016-04-26 International Business Machines Corporation Calibrating cloud computing environments
US8489812B2 (en) 2010-10-29 2013-07-16 International Business Machines Corporation Automated storage provisioning within a clustered computing environment
WO2012078316A1 (en) * 2010-12-09 2012-06-14 Northwestern University Endpoint web monitoring system and method for measuring popularity of a service or application on a web server
US8762113B2 (en) * 2011-06-03 2014-06-24 Sony Computer Entertainment America Llc Method and apparatus for load testing online server systems
US20140187519A1 (en) * 2012-12-27 2014-07-03 The Board Of Trustees Of The Leland Stanford Junior University Biomarkers for predicting major adverse events
EP2843537B1 (en) * 2013-08-30 2019-03-27 Fujitsu Limited Method and systems for simulating a workload of a storage system
US9203803B2 (en) * 2013-11-14 2015-12-01 Broadcom Corporation Proxy device for a network of devices
CN104754021B (zh) * 2013-12-31 2018-04-13 伊姆西公司 用于促进对分布式存储***中的数据的访问的装置和方法
US9854053B1 (en) * 2014-03-24 2017-12-26 Amazon Technologies, Inc. Providing faster data access using multiple caching servers
US20150276795A1 (en) * 2014-04-01 2015-10-01 Chipworks Incorporated Atomic force microscopy using correlated probe oscillation and probe-sample bias voltage
US9906425B2 (en) * 2014-07-23 2018-02-27 Cisco Technology, Inc. Selective and dynamic application-centric network measurement infrastructure
CN104717107B (zh) * 2015-03-27 2019-03-26 北京奇安信科技有限公司 网络设备探测的方法、装置及***

Also Published As

Publication number Publication date
GB2556772B (en) 2021-10-06
DE112016005207T5 (de) 2018-08-16
EP3374864B1 (en) 2021-11-03
JP2018533779A (ja) 2018-11-15
US10686686B2 (en) 2020-06-16
GB2556772A (en) 2018-06-06
AU2016351383B2 (en) 2019-06-06
DE202016008054U1 (de) 2017-02-16
GB201802304D0 (en) 2018-03-28
KR102110757B1 (ko) 2020-06-08
US20200382403A1 (en) 2020-12-03
EP3968159A1 (en) 2022-03-16
AU2016351383A1 (en) 2018-03-08
EP3374864A1 (en) 2018-09-19
US11582130B2 (en) 2023-02-14
US20230188452A1 (en) 2023-06-15
CN114217948A (zh) 2022-03-22
CN107924337A (zh) 2018-04-17
US20170141992A1 (en) 2017-05-18
WO2017083022A1 (en) 2017-05-18
KR20180030168A (ko) 2018-03-21
CN107924337B (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
JP6526907B2 (ja) 分散型記憶システムの性能監視
US10644962B2 (en) Continuous monitoring for performance evaluation of service interfaces
US9712410B1 (en) Local metrics in a service provider environment
US20150170070A1 (en) Method, apparatus, and system for monitoring website
US9384114B2 (en) Group server performance correction via actions to server subset
US20120036498A1 (en) Mobile application performance management
EP3138012B1 (en) User experience diagnostics with actionable insights
US9043317B2 (en) System and method for event-driven prioritization
US10367705B1 (en) Selecting and configuring metrics for monitoring
US9880879B1 (en) Identifying task instance outliers based on metric data in a large scale parallel processing system
US10644947B2 (en) Non-invasive diagnosis of configuration errors in distributed system
US10476766B1 (en) Selecting and configuring metrics for monitoring
US20180005152A1 (en) Technologies for correlation based data selection
KR20210023795A (ko) 대규모 데이터 분석 최적화
US9268382B2 (en) Method and system for monitoring resource usage of logical domains
CN113132431B (zh) 服务监控方法、服务监控装置、电子设备及介质
US10475111B1 (en) Selecting and configuring metrics for monitoring
US11144937B2 (en) Framework for marketplace analysis
JP2017151825A (ja) 制御装置及び制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526907

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250