|
スケーラビリティ()とは電気通信やソフトウェア工学において、システムまたはネットワークまたはアルゴリズムの、持つべき望ましい特性の1つで、利用者や仕事の増大に適応できる能力・度合いのこと〔André B. Bondi, 'Characteristics of scalability and their impact on performance', ''Proceedings of the 2nd international workshop on Software and performance, '' Ottawa, Ontario, Canada, 2000, ISBN 1-58113-195-X, pp.195 - 203〕。一種の拡張性である。より具体的には、システムを小規模なものからリソース(特にハードウェア)の追加によって大規模なものへと透過的に規模拡張できる能力はスケーラビリティの一種だといえる。リソースの量に比例して全体のスループットが向上するシステムはスケーラブルな()システムまたはスケーラビリティのあるシステムと呼ばれる。 システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい〔Mark D. Hill, 'What is scalability?' in ''ACM SIGARCH Computer Architecture News,'' December 1990, Volume 18 Issue 4, pp.18 - 21, (ISSN 0163-5964) および Leticia Duboc, David S. Rosenblum, Tony Wicks, 'Doctoral symposium: presentations: A framework for modelling and analysis of software systems scalability' in ''Proceeding of the 28th international conference on Software engineering ICSE '06'', May 2006, ISBN 1-59593-375-1, pp.949 - 952, などを参照〕。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど情報工学の分野において非常に重要なことである。スケーラビリティは分散処理の透過性の概念と密接なつながりがある。 スケーラビリティの高さは様々な尺度で評価される。例として ;規模透過性 : 負荷の高低に合わせてリソース・プールを拡大・縮小できること ;位置透過性 : ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること ;異種透過性 : システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。 例えば、スケーラブルなデータベースマネージメントシステムではプロセッサやストレージを追加することでより多くのトランザクションを処理できるようにアップグレードでき、またアップグレードをシャットダウンなしに実行できる。 ルーティングプロトコルがネットワークの規模に関してスケーラブルであると言われるのは、''N''をネットワーク内のノード数としたときに、各ノードに必要なルーティングテーブルのサイズが O(log ''N'') に従って増大するときである。'')とは電気通信やソフトウェア工学において、システムまたはネットワークまたはアルゴリズムの、持つべき望ましい特性の1つで、利用者や仕事の増大に適応できる能力・度合いのこと〔André B. Bondi, 'Characteristics of scalability and their impact on performance', ''Proceedings of the 2nd international workshop on Software and performance, '' Ottawa, Ontario, Canada, 2000, ISBN 1-58113-195-X, pp.195 - 203〕。一種の拡張性である。より具体的には、システムを小規模なものからリソース(特にハードウェア)の追加によって大規模なものへと透過的に規模拡張できる能力はスケーラビリティの一種だといえる。リソースの量に比例して全体のスループットが向上するシステムはスケーラブルな()システムまたはスケーラビリティのあるシステムと呼ばれる。 システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい〔Mark D. Hill, 'What is scalability?' in ''ACM SIGARCH Computer Architecture News,'' December 1990, Volume 18 Issue 4, pp.18 - 21, (ISSN 0163-5964) および Leticia Duboc, David S. Rosenblum, Tony Wicks, 'Doctoral symposium: presentations: A framework for modelling and analysis of software systems scalability' in ''Proceeding of the 28th international conference on Software engineering ICSE '06'', May 2006, ISBN 1-59593-375-1, pp.949 - 952, などを参照〕。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど情報工学の分野において非常に重要なことである。スケーラビリティは分散処理の透過性の概念と密接なつながりがある。 スケーラビリティの高さは様々な尺度で評価される。例として ;規模透過性 : 負荷の高低に合わせてリソース・プールを拡大・縮小できること ;位置透過性 : ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること ;異種透過性 : システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。 例えば、スケーラブルなデータベースマネージメントシステムではプロセッサやストレージを追加することでより多くのトランザクションを処理できるようにアップグレードでき、またアップグレードをシャットダウンなしに実行できる。 ルーティングプロトコルがネットワークの規模に関してスケーラブルであると言われるのは、''N''をネットワーク内のノード数としたときに、各ノードに必要なルーティングテーブルのサイズが O(log ''N'') に従って増大するときである。'')システムまたはスケーラビリティのあるシステムと呼ばれる。 システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい〔Mark D. Hill, 'What is scalability?' in ''ACM SIGARCH Computer Architecture News,'' December 1990, Volume 18 Issue 4, pp.18 - 21, (ISSN 0163-5964) および Leticia Duboc, David S. Rosenblum, Tony Wicks, 'Doctoral symposium: presentations: A framework for modelling and analysis of software systems scalability' in ''Proceeding of the 28th international conference on Software engineering ICSE '06'', May 2006, ISBN 1-59593-375-1, pp.949 - 952, などを参照〕。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど情報工学の分野において非常に重要なことである。スケーラビリティは分散処理の透過性の概念と密接なつながりがある。 スケーラビリティの高さは様々な尺度で評価される。例として ;規模透過性 : 負荷の高低に合わせてリソース・プールを拡大・縮小できること ;位置透過性 : ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること ;異種透過性 : システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。 例えば、スケーラブルなデータベースマネージメントシステムではプロセッサやストレージを追加することでより多くのトランザクションを処理できるようにアップグレードでき、またアップグレードをシャットダウンなしに実行できる。 ルーティングプロトコルがネットワークの規模に関してスケーラブルであると言われるのは、''N''をネットワーク内のノード数としたときに、各ノードに必要なルーティングテーブルのサイズが O(log ''N'') に従って増大するときである。 == スケールアップとスケールアウト == スケールアップ(垂直スケール)やスケールアウト(水平スケール)は、スケーラビリティの向上、すなわち性能・容量向上のための方法である。 スケールアップはシステムの単一のノードにリソースを追加する方法で、CPUやメモリの増強や、コンピュータ自体の買い換えなどである。スケールアウトはシステムにノードを追加することで、クラスタなどの並列コンピューティング技術を使用する方法である。現実のシステムではそれぞれ上限・制約・デメリットも存在するため、組み合わせも行われる。 システム設計では処理能力をあげることよりもハードウェアに関するスケーラビリティを高めることに力を入れろとよく言われる。システムのノードを増やして高いパフォーマンスを得るほうが、パフォーマンス・チューニングで個々のノードの処理能力を上げるよりも、大抵は安くつくからである。しかし、この手法ではノード数の増加に伴って利益が鈍化していってしまう。この問題はで扱われる。例として部分的な並列化によって高速化が可能なプログラムを仮定する。並列化可能な部分は全体の70%とし、CPUを1個から4個にスケールアウトする。Fを逐次的な部分の割合とすると、(1 - F)が並列化される割合となる。P個のプロセッサを稼動して得られる最大の高速化(倍)は次の式(アムダールの法則)となる。 : 仮定した数値を代入すると、 : が得られる。プロセッサを8個までスケールアウトすると : が得られる。よってハードウェアを単純に追加していくのは、必ずしも最適な手法とはいえない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「スケーラビリティ」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Scalability 」があります。 スポンサード リンク
|