分散技術:原理から応用まで、分散技術の魅力と未来を総合的に分析 - 分散計測指標

分散技術:原理から応用まで、分散技術の魅力と未来を総合的に分析 - 分散計測指標

分散技術の発展の歴史を見ると、分散とは実際には、単一のコンピュータが複雑で大規模なデータやタスクを処理するときに存在するパフォーマンスとリソースのボトルネックの問題を解決するために、安価で一般的なマシンを使用することです。

分散システムの品質を測定するにはどうすればよいでしょうか?

一般的な分散システムのパフォーマンスは、次の側面に反映されます。

  • パフォーマンス
  • リソース
  • 可用性
  • スケーラビリティ

パフォーマンス

実際、パフォーマンスに関して最もよく聞かれるのは、リクエストの応答速度です。実際のところ、これはほんの一側面にすぎません。システムによって、システムに対する要件は異なります。スループットに重点を置くものもあれば、応答時間に重点を置くもの、完了時間に重点を置くものもあります。はい、これら 3 つの指標は最も一般的なパフォーマンス指標です。

スループット

スループットとは、システムが一定期間内に処理できるタスクの数を指します。

この指標は、顧客が多いときにレジ係が 1 時間に何人の顧客に対応できるかを見るのと同じように、システムのパフォーマンスを直接反映します。

インターネットでは、スループットは多くの場合、次の 3 つの特定の指標として表現されます。

  1. 品質保証
  2. TPPSについて
  3. ビーピーエス

QPS (1 秒あたりのクエリ数) は、システムが 1 秒あたりに処理するクエリの数を測定するものです。このインジケーターは通常、読み取り操作に使用されます。値が高いほど、読み取り操作のサポートが向上します。したがって、分散システムを設計する際に、アプリケーションが主に読み取り操作である場合は、高頻度の読み取り操作をサポートするために QPS を向上させる方法に重点を置く必要があります。

TPS (1 秒あたりのトランザクション数) は、システムが 1 秒あたりに処理するトランザクションの数を測定するものです。このインジケーターは通常、書き込み操作に対応します。値が高いほど、書き込み操作のサポートが向上します。分散システムを設計する際に、アプリケーションが主に書き込み操作である場合は、高頻度の書き込み操作をサポートするために TPS を向上させる方法に重点を置く必要があります。

BPS(ビット/秒)は、システムが 1 秒あたりに処理するデータ量を測定する単位です。一部のネットワーク システムやデータ管理システムでは、リクエスト数やトランザクション数に基づいて単純にパフォーマンスを測定することはできません。リクエストとトランザクションの間にも大きな違いがあるからです。たとえば、一部のトランザクションは大きく、より多くのデータの書き込みが必要になります。この場合、BPS はシステム スループットをより客観的に反映できます。

応答時間

応答時間とは、システムが要求に応答するまでにかかる時間を指します。応答時間はユーザー エクスペリエンスに直接影響し、遅延に敏感なビジネスにとって非常に重要です。たとえば、ユーザーがナビゲーションを検索するとき、特に運転中に検索する場合、応答時間が非常に長いと、ユーザーが間違った方向に進んでしまう原因になります。

完了時間

システムがリクエストまたはプロセスを実際に完了するまでにかかる時間を指します。タスク並列(タスク分散とも呼ばれる)モードの目的の 1 つは、タスク全体の完了時間を短縮することです。特に、膨大な量のデータを計算したり、大規模なタスクを処理する必要がある場合、ユーザーは完了時間を非常に明確に感じるでしょう。

リソースの使用

リソース使用量とは、CPU、メモリ、ハードディスクなど、システムが通常の機能を提供するために占有する必要があるハードウェア リソースを指します。

負荷がないときのシステムのリソース使用量は、無負荷リソース使用量と呼ばれ、システム自体のリソース使用量を反映します。たとえば、携帯電話にアプリをインストールする場合、通常はインストール中に KB 数が表示されます。これは、アプリのアイドル状態のハードディスク リソース使用量です。同じ機能でも、アイドル状態のリソースの占有が少ないほど、システム設計は優れ、ユーザーに受け入れられやすくなります。

システムがフルロードされたときのリソース使用量を、フルロード リソース使用量と呼びます。これは、システムがフル稼働しているときのリソース使用量を反映し、システムの処理能力も反映します。同じハードウェア構成で、実行するビジネスが増えるほど、占有されるリソースが少なくなり、システムの設計が改善されることを意味します。

可用性

可用性とは通常、さまざまな例外が発生した場合でもシステムが正しくサービスを提供できる能力を指します。可用性は分散システムの重要な指標です。システムの堅牢性を測定し、システムのフォールト トレランスを反映します。システムの可用性は、システムが稼働していない時間と合計時間の比率によって測定できます。

ウェブサイトの合計実行時間は 24 時間であると仮定します。 24 時間以内に Web サイトがダウンし、4 時間利用できなくなった場合、システムの可用性は 4/24 = 0.167 となり、利用できない割合は 0.167、つまり、可用性の割合は 0.833 になります。

さらに、システムの可用性は、特定の機能の障害の数とリクエストの総数の比率によって測定することもできます。たとえば、Web サイトへのリクエストが 1,000 件あり、そのうち 10 件が失敗した場合、可用性は 99% になります。

システムのスローガンでは、3 つの 9 (または 3N、3 つの Nines) や 5 つの 9 (または 9N、9 つの Nines) をよく見たり聞いたりするかもしれません。これらのスローガンに記載されている 3 つの 9 と 5 つの 9 は、実際にはシステム メーカーが可用性を宣伝する方法であり、システムが 99.9% または 99.999% の時間、障害なく外部にサービスを提供できることを示しています。

可用性について話すとき、非常によく似た用語である「信頼性」も思い浮かぶかもしれません。では、信頼性と可用性の違いは何でしょうか?信頼性は通常、システムがまったく故障しない確率を示すために使用され、ハードウェア分野でより一般的に使用されます。可用性とは、一部のコンポーネントに障害が発生しても、システムが外部に対して通常のサービスを提供できる可能性を指します。ジェフ・ディーンはかつて Google I/O カンファレンスで、1,000 台の汎用コンピュータをベースにした Google クラスターでは、1 年以内に 1,000 台以上のハード ドライブが故障するだろうと明かしました。今日のより一般的な分散システムは基本的に汎用コンピュータに基づいているため、これらのシステムでは真の信頼性を実現できないことを意味し、信頼性と可用性が同じ意味で使用される場合もあります。

スケーラビリティ

スケーラビリティとは、クラスターマシンの規模を拡大することで、システムパフォーマンス (スループット、応答時間、完了時間)、ストレージ容量、コンピューティング能力を向上させる分散システムの特性を指します。これは分散システムのユニークな特性です。

分散システムを設計する本来の目的は、クラスター内の複数のマシンの機能を活用して、単一のマシンでは解決できない問題を処理することです。ただし、特定のタスクを完了するために必要なマシンの数、つまりクラスターのサイズは、個々のマシンのパフォーマンスとタスクの要件によって異なります。

特定の業務に伴ってタスク要件が増加し続ける場合、垂直/縦方向の拡張のためにシステム性能をアップグレードすることに加えて、マシンを追加することでシステム規模を水平/横方向に拡張するというアプローチもあります。

ここで、垂直方向/縦方向の拡張とは、CPU の強化、メモリの増設など、単一のマシンのハードウェア機能の増強を指します。水平拡張とは、コンピュータの数を増やすことを指します。優れた分散システムは常に「線形スケーラビリティ」を追求します。これは、システムの特定の指標がクラスター内のマシンの数に応じて線形に増加できることを意味します。

システムのスケーラビリティを測定するための一般的な指標はスピードアップです。スピードアップとは、拡張前と比較した拡張後のシステムのパフォーマンスの向上です。

分散システムは、すべてのメトリックが合理的なレベルに到達することを保証できますか?

答えはノーです。高可用性、高パフォーマンス、高スケーラビリティのいずれであっても、リソースの使用量、つまりコストによって制限されます。

しかし、ハードウェアコストや開発効率などの制約により、パフォーマンス、可用性、信頼性、リソース使用量の面ですべてを実現することはできません。したがって、設計者はさまざまなビジネス シナリオでいくつかのトレードオフを行う必要があります。

次に、さまざまな指標に対する一般的な電子商取引、IoT、通信、HPC(高性能コンピューティング)、ビッグデータ、クラウドコンピューティング、ブロックチェーンなどのビジネスやシステムの需要について見ていきます。

  • 電子商取引システム。電子商取引システムの場合、システム設計者はスループットに最も注意を払います。より多くのユーザー訪問や注文業務に対応するために、ハードウェアコストをいくらか犠牲にすることもいとわない。
  • IoT。 IoT システムの場合、設計者はリソース使用状況インジケーターに最も注意を払います。これは、最小限の機能を持つ一部の IoT デバイスで使用可能な RAM および ROM リソースが通常 KB レベルであるためです。
  • 電気通信事業。通信ビジネスにとって最も重要なのは、間違いなく応答時間、完了時間、可用性です。なぜなら、電話をかけるときに、相手が自分の声を聞くのに長い時間をかけたり、応答するのに長い時間をかけたり、電話をかけても発信できない状態にしたりするのは望ましくないからです。
  • 高性能PC。 HPC システムの最も注目すべき特徴は、タスク実行時間が非常に長いことです。天体物理学的なタスクの分析と計算には通常、数週間、場合によっては数か月もかかります。したがって、水平拡張によるシステムの加速率の向上は、HPC システム設計者が重点を置く必要があるものです。
  • ビッグデータ。ビッグデータ タスクの処理時間は HPC システムと比較すると比較的短いかもしれませんが、一般的な完了時間も 1 時間レベルであるため、ビッグデータ システムではスケーラビリティも最初に考慮すべき事項です。
  • クラウドコンピューティング。クラウド コンピューティング システムの場合、一般的なタスクは、リソースの作成、調整、仮想ホストまたはコンテナーの破棄などの操作です。これらの操作の完了時間を短縮し、ユーザー エクスペリエンスを向上させる方法こそが、設計者が重点を置くべき点です。また、クラウドコンピューティングシステムは本質的にリソースを販売するものであるため、システム自体のリソースオーバーヘッドを削減することもシステム設計における最優先事項です。
  • ブロックチェーン。ブロックチェーンのスループットは比較的低いです。ビットコインのTPSは1秒あたり7回しかなく、トランザクションの確認には平均で約10分かかります。したがって、スループットと完了時間は通常、ブロックチェーン システム設計者の主な目標となります。

<<:  クラウド アプリケーション移行の問題を回避する 4 つの解決策

>>:  Spring の組み込み分散ロックを使用したことがありますか?

推薦する

AWS IoT デバイス管理の概要

AWS IoT Device Management を使用すると、大規模な IoT デバイスを簡単か...

AWS Lambda の紹介

AWS Lambda を使用すると、サーバーをプロビジョニングしたり管理したりせずにコードを実行でき...

クラウドネイティブデータウェアハウスByteHouseで高性能なベクトル検索を構築する方法の分析

LLM テクノロジーの適用と実装により、データベースのベクトル分析と AI サポート機能を向上させる...

x: catalysthost-$12/年/256MBメモリ/10GBハードドライブ/4TBトラフィック/シアトル/ダラス

catalysthost.com が最後に Hostcat に登場したのは 8 か月前です。12 月...

中小規模のチーム向けの Docker ベースの DevOps プラクティス

私が所属する技術チームは、数十のプロジェクトの開発と保守を担当しています。各プロジェクトには、少なく...

クラウドネイティブで MySQL の高可用性を実現するにはどうすればよいでしょうか?

現在人気のリレーショナル データベース (RDS) である MySQL は、クラウド ネイティブの波...

WEBデザインのレイアウトでユーザーが関連情報を効率的かつ正確に取得できるようにする方法

まずは、マイクロソフト社が開発し、社内では「タイポグラフィベースのデザイン言語」と呼ばれている「Me...

ASO最適化とプロモーションの総合ガイド、ダウンロード数を2倍にしたAPPプロモーションの実践的なヒントを共有!

3か月で、私はASOの完全な初心者から基本的な知識を身につけました。ASOに関する記事を100以上読...

Jingan「高速クラウドサーバー」レビュー、高性能/BGPネットワーク/クラウド

先月、私はJingan Kuaiyun VPSに注目し、Kuaiyun VPSのレビューを書きました...

SEO 3 年目のベテランが教える初心者のための最適化のヒント

私はフルタイムのSEO最適化担当者で、3年以上SEO最適化をフルタイムで行っています。学ぶことが大好...

Youzhanの登録価格の誤解から抜け出し、イベント登録の基本要素を把握する

「Youzhan」という言葉は、1年前にはほとんどの人にとって馴染みのない言葉ではなくなりました。し...

ホワイトハットSEOを選択する理由

世の中にホワイトハットSEOというものは存在しません。SEOの道を歩む人が増えたため、ホワイトハット...

エッジコンピューティングで IoT パフォーマンスを向上させるにはどうすればよいでしょうか?

モノのインターネット (IoT) 開発の初期の前提の 1 つは、すべての物理要素間での通信の共有であ...

ウェブサイト運営:ユーザーエクスペリエンスはウェブサイト最適化の核心です

序文始める前に、日常生活でよく見かけるシーンを見てみましょう。ある日スーパーマーケットに買い物に行く...

SEOトレーニングについての簡単な説明は、もはや以前ほど単純ではありません

人々の数が増え続けるにつれて、SEO業界はますます競争が激しくなり、挑戦的になっています。数年前は、...