分散技術の発展の歴史を見ると、分散とは実際には、単一のコンピュータが複雑で大規模なデータやタスクを処理するときに存在するパフォーマンスとリソースのボトルネックの問題を解決するために、安価で一般的なマシンを使用することです。 分散システムの品質を測定するにはどうすればよいでしょうか? 一般的な分散システムのパフォーマンスは、次の側面に反映されます。
パフォーマンス実際、パフォーマンスに関して最もよく聞かれるのは、リクエストの応答速度です。実際のところ、これはほんの一側面にすぎません。システムによって、システムに対する要件は異なります。スループットに重点を置くものもあれば、応答時間に重点を置くもの、完了時間に重点を置くものもあります。はい、これら 3 つの指標は最も一般的なパフォーマンス指標です。 スループットスループットとは、システムが一定期間内に処理できるタスクの数を指します。 この指標は、顧客が多いときにレジ係が 1 時間に何人の顧客に対応できるかを見るのと同じように、システムのパフォーマンスを直接反映します。 インターネットでは、スループットは多くの場合、次の 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(高性能コンピューティング)、ビッグデータ、クラウドコンピューティング、ブロックチェーンなどのビジネスやシステムの需要について見ていきます。
|
<<: クラウド アプリケーション移行の問題を回避する 4 つの解決策
>>: Spring の組み込み分散ロックを使用したことがありますか?
AWS IoT Device Management を使用すると、大規模な IoT デバイスを簡単か...
AWS Lambda を使用すると、サーバーをプロビジョニングしたり管理したりせずにコードを実行でき...
LLM テクノロジーの適用と実装により、データベースのベクトル分析と AI サポート機能を向上させる...
catalysthost.com が最後に Hostcat に登場したのは 8 か月前です。12 月...
私が所属する技術チームは、数十のプロジェクトの開発と保守を担当しています。各プロジェクトには、少なく...
現在人気のリレーショナル データベース (RDS) である MySQL は、クラウド ネイティブの波...
まずは、マイクロソフト社が開発し、社内では「タイポグラフィベースのデザイン言語」と呼ばれている「Me...
3か月で、私はASOの完全な初心者から基本的な知識を身につけました。ASOに関する記事を100以上読...
先月、私はJingan Kuaiyun VPSに注目し、Kuaiyun VPSのレビューを書きました...
私はフルタイムのSEO最適化担当者で、3年以上SEO最適化をフルタイムで行っています。学ぶことが大好...
「Youzhan」という言葉は、1年前にはほとんどの人にとって馴染みのない言葉ではなくなりました。し...
世の中にホワイトハットSEOというものは存在しません。SEOの道を歩む人が増えたため、ホワイトハット...
モノのインターネット (IoT) 開発の初期の前提の 1 つは、すべての物理要素間での通信の共有であ...
序文始める前に、日常生活でよく見かけるシーンを見てみましょう。ある日スーパーマーケットに買い物に行く...
人々の数が増え続けるにつれて、SEO業界はますます競争が激しくなり、挑戦的になっています。数年前は、...