スケールアップとスケールアウト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/30 01:29 UTC 版)
「スケーラビリティ」の記事における「スケールアップとスケールアウト」の解説
スケールアップ(垂直スケール)やスケールアウト(水平スケール)は、スケーラビリティの向上、すなわち性能・容量向上のための方法である。 スケールアップはシステムの単一のノードにリソースを追加する方法で、CPUやメモリの増強や、コンピュータ自体の買い換えなどである。スケールアウトはシステムにノードを追加することで、クラスタなどの並列コンピューティング技術を使用する方法である。現実のシステムではそれぞれ上限・制約・デメリットも存在するため、組み合わせも行われる。 システム設計では処理能力をあげることよりもハードウェアに関するスケーラビリティを高めることに力を入れろとよく言われる。システムのノードを増やして高いパフォーマンスを得るほうが、パフォーマンス・チューニングで個々のノードの処理能力を上げるよりも、大抵は安くつくからである。しかし、この手法ではノード数の増加に伴って利益が鈍化していってしまう。この問題はパフォーマンス・エンジニアリング(英語版)で扱われる。例として部分的な並列化によって高速化が可能なプログラムを仮定する。並列化可能な部分は全体の70%とし、CPUを1個から4個にスケールアウトする。Fを逐次的な部分の割合とすると、(1 - F)が並列化される割合となる。P個のプロセッサを稼動して得られる最大の高速化(倍)は次の式(アムダールの法則)となる。 1 F + 1 − F P {\displaystyle {\frac {1}{F+{\frac {1-F}{P}}}}} 仮定した数値を代入すると、 1 0.3 + 0.7 / 4 = 2.105 {\displaystyle {\frac {1}{0.3+0.7/4}}=2.105} が得られる。プロセッサを8個までスケールアウトすると 1 0.3 + 0.7 / 8 = 2.581 {\displaystyle {\frac {1}{0.3+0.7/8}}=2.581} が得られる。よってハードウェアを単純に追加していくのは、必ずしも最適な手法とはいえない。
※この「スケールアップとスケールアウト」の解説は、「スケーラビリティ」の解説の一部です。
「スケールアップとスケールアウト」を含む「スケーラビリティ」の記事については、「スケーラビリティ」の概要を参照ください。
- スケールアップとスケールアウトのページへのリンク