スケーラビリティとは、増加する作業量を処理できるシステムの特性です。ソフトウェアシステムに関する定義の一つでは、これはシステムにリソースを追加することによって実現できるとされています。[ 1 ]
経済的な観点から言えば、スケーラブルなビジネスモデルとは、企業がリソースを増やすことで売上を伸ばせることを意味します。例えば、荷物配送システムは、配送車両を増やすことでより多くの荷物を配送できるため、スケーラブルです。しかし、すべての荷物が最初に仕分けのために単一の倉庫を経由しなければならない場合、1つの倉庫で処理できる荷物の数には限りがあるため、システムはそれほどスケーラブルではありません。[ 2 ]
コンピューティングにおいて、スケーラビリティはコンピュータ、ネットワーク、アルゴリズム、ネットワークプロトコル、プログラム、アプリケーションの特性です。例として検索エンジンがあり、これは増加するユーザー数とインデックス化するトピック数をサポートする必要があります。[ 3 ]ウェブスケールは、大規模クラウドコンピューティング企業の機能をエンタープライズデータセンターにもたらすコンピュータアーキテクチャのアプローチです。[ 4 ]
分散システムには、著者によっていくつかの定義があり、スケーラビリティの概念を弾力性の一部とみなすものもあれば、別個のものとみなすものもあります。マーク・ブルッカーによれば、「システムは、追加ワークロードの限界コストがほぼ一定である範囲でスケーラブルである」。サーバーレス技術はこの定義に当てはまりますが、インフラコストだけでなく、総所有コストを考慮する必要があります。[ 5 ]
数学において、スケーラビリティとは主にスカラー乗法に関する閉包性を指す。
産業工学および製造業において、スケーラビリティとは、増大する作業負荷に対応し、高まる需要に適応し、運用効率を維持するプロセス、システム、または組織の能力を指します。スケーラブルなシステムは、品質や性能を損なうことなく、生産量の増加、新製品ライン、または拡大する市場を効果的に管理できます。この文脈において、スケーラビリティは、顧客の期待に応え、競争力を維持し、持続的な成長を目指す企業にとって不可欠な要素です。スケーラビリティに影響を与える要因には、生産プロセスの柔軟性、従業員の適応性、および先進技術の統合などがあります。スケーラブルなソリューションを導入することで、企業はリソースの利用を最適化し、コストを削減し、業務を効率化できます。産業工学および製造業におけるスケーラビリティは、企業が変動する市場状況に対応し、新たな機会を活用し、絶えず変化するグローバルな環境で成長することを可能にします。
インシデント・コマンド・システム(ICS)は、米国の緊急対応機関で使用されています。ICSは、単一の消防車による路傍の低木火災から州間高速道路の山火事まで、リソースの調整を拡張できます。現場に最初に到着したリソースが指揮を執り、リソースを命令し、責任を委任する権限を持ちます(5人から7人の職員を管理し、さらに最大7人に委任し、インシデントが拡大するにつれてさらに委任します)。インシデントが拡大するにつれて、より上級の職員が指揮を引き継ぎます。[ 6 ]
スケーラビリティは、次のような複数の次元で測定できます。[ 7 ]

リソースは大きく分けて水平的と垂直的の2つのカテゴリーに分類されます。[ 8 ]
水平方向のスケーリング(アウト/イン)とは、分散ソフトウェアアプリケーションに新しいコンピュータを追加するなど、ノードを追加または削除することを意味します。例としては、1台のWebサーバーから3台にスケールアウトすることが挙げられます。地震解析やバイオテクノロジーなどの高性能コンピューティングアプリケーションでは、かつては高価なスーパーコンピュータが必要だったタスクをサポートするために、ワークロードを水平方向にスケーリングします。大規模なソーシャルネットワークなどの他のワークロードは、最大のスーパーコンピュータの容量を超えており、スケーラブルなシステムでしか処理できません。このスケーラビリティを活用するには、効率的なリソース管理とメンテナンスのためのソフトウェアが必要です。[ 7 ]
垂直スケーリング(アップ/ダウン)とは、単一のノードにリソースを追加(または削除)することを意味し、通常は単一のコンピュータにCPU、メモリ、ストレージを追加することを含みます。[ 7 ]
スケールアップの利点としては、管理の複雑さの増大を回避できること、リソース間でタスクを割り当てるためのより高度なプログラミングが可能になること、スループット、レイテンシ、ノード間の同期といった問題に対処できることなどが挙げられます。さらに、一部のアプリケーションは水平方向にスケールアップできません。
ネットワーク機能仮想化では、これらの用語を異なる方法で定義しています。スケールアウト/スケールインは、リソースインスタンス(仮想マシンなど)を追加/削除することでスケールできる機能であり、スケールアップ/スケールダウンは、割り当てられたリソース(メモリ/CPU/ストレージ容量など)を変更することでスケールできる機能です。[ 9 ]
データベースのスケーラビリティとは、追加のサーバー、プロセッサ、メモリ、ストレージといったハードウェアリソースの増強に応じて、データベースシステムがより多くの処理を実行できる能力を指します。ワークロードは増加の一途をたどり、データベースへの要求もそれに伴って高まっています。
アルゴリズムの革新としては、行レベルロック、テーブルおよびインデックスのパーティショニングなどが挙げられる。アーキテクチャの革新としては、マルチサーバー構成を管理するための共有なしアーキテクチャと共有すべてアーキテクチャなどが挙げられる。
スケールアウトデータ ストレージのコンテキストでは、スケーラビリティは、完全なデータ一貫性を保証する最大ストレージ クラスタ サイズとして定義されます。つまり、冗長な物理データ コピーの数に関係なく、クラスタ全体で保存されたデータの有効なバージョンは常に 1 つだけです。非同期的にコピーを更新することで「遅延」冗長性を提供するクラスタは、「最終的に一貫性がある」と呼ばれます。このタイプのスケールアウト設計は、可用性と応答性が一貫性よりも高く評価される場合に適しています。これは、多くの Web ファイル ホスティング サービスや Web キャッシュに当てはまります (最新バージョンが必要な場合は、伝播するまで数秒待ちます)。すべての古典的なトランザクション指向アプリケーションでは、この設計は避けるべきです。[ 10 ]
多くのオープンソースおよび商用スケールアウトストレージクラスタ、特に標準的なPCハードウェアとネットワーク上に構築されたものは、CouchDBなどのNoSQLデータベースや前述のものと同様に、結果整合性のみを提供します。書き込み操作は他のコピーを無効にしますが、多くの場合、それらの確認応答を待ちません。読み取り操作は通常、応答する前にすべての冗長コピーをチェックしないため、前の書き込み操作を見逃す可能性があります。大量のメタデータ信号トラフィックを許容可能なパフォーマンスで処理するには、専用のハードウェアと短い距離が必要になります(つまり、クラスタ化されていないストレージデバイスまたはデータベースのように動作します)。
データの一貫性が強く求められる場合は、以下の指標を確認してください。
結果整合性設計の指標(トランザクションアプリケーションには不向き!)は以下のとおりです。
システム設計においては、容量よりもハードウェアのスケーラビリティに重点を置くことが推奨されることが多い。一般的に、各ノードが処理できる容量を向上させるためのパフォーマンスチューニングを行うよりも、システムに新しいノードを追加してパフォーマンスを向上させる方が安価である。しかし、このアプローチには収穫逓減の法則が働く可能性がある(パフォーマンスエンジニアリングで議論されているように)。例えば、プログラムの70%を並列化して1つのCPUではなく複数のCPUで実行すれば高速化できるとしよう。は計算のうち逐次的な部分の割合であり、は並列化可能な割合であり、P個のプロセッサを使用することで達成できる最大高速化は、アムダールの法則に従って与えられます。
この例の値を代入すると、4つのプロセッサを使用した場合、
演算能力を8つのプロセッサに倍増すると、
処理能力を倍増させても、処理速度はわずか5分の1程度しか向上していない。もし問題全体が並列化可能であれば、速度も倍増するはずだ。したがって、ハードウェアを増強することが必ずしも最適なアプローチとは限らない。
分散システムでは、ユニバーサルスケーラビリティ法則(USL)を使用してシステムのスケーラビリティをモデル化し、最適化することができます。USLはNeil J. Guntherによって提唱され、競合や一貫性などのパラメータに基づいてスケーラビリティを定量化します。競合とは、共有リソースの待機やキューイングによる遅延を指します。一貫性とは、データが一貫性を持つようになるまでの遅延を指します。たとえば、競合が高いということは、並列化できる逐次処理であることを示し、一貫性が高いということは、プロセス間の依存関係が過剰であることを示唆し、相互作用を最小限に抑えるよう促します。また、USLを使用すると、システムの最大有効容量を事前に計算できます。その点を超えてシステムをスケールアップすることは無駄です。[ 11 ]
高性能コンピューティングには、スケーラビリティに関して2つの一般的な概念がある。
{{cite journal}}: CS1メンテナンス: DOIは2025年7月現在非アクティブです(リンク)