スケーラビリティのソースを表示
←
スケーラビリティ
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''スケーラビリティ'''('''{{lang|en|scalability}}''')とは利用者や仕事の増大に適応できる能力・度合いのこと<ref>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</ref>。[[電気通信]]や[[ソフトウェア工学]]において、[[システム工学|システム]]または[[コンピュータネットワーク|ネットワーク]]または[[アルゴリズム]]の、持つべき望ましい特性の1つで、一種の[[拡張性]]である。より具体的には、小規模なシステムを大規模にする場合に、システム全体を交換する方法(建物で例えると大きな物件に引っ越すこと)では無く、[[リソース]](特に[[ハードウェア]])の追加によって大規模なものへと透過的に規模拡張できる能力(建物で例えると、増築や別棟を建てること)はスケーラビリティの一種だといえる。リソースの量に比例して全体の[[スループット]]が向上するシステムは'''スケーラブルな'''('''{{lang|en|scalable}}''')システムまたはスケーラビリティのあるシステムと呼ばれる。 対する概念としては、既存の仕組みを破棄してそれ以上の仕組みにする[[スクラップアンドビルド]]である。 システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい<ref>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, などを参照</ref>。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど[[情報工学]]の分野において非常に重要なことである。スケーラビリティは[[分散コンピューティング|分散処理]]の[[透過性 (情報工学)|'''透過性''']]の概念と密接なつながりがある。 '''スケーラビリティの高さ'''は様々な尺度で評価される。例として ;規模透過性 : 負荷の高低に合わせてリソース・プールを拡大・縮小できること ;位置透過性 : ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること ;異種透過性 : システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。 例えば、スケーラブルな[[データベース管理システム]]では[[CPU|プロセッサ]]や[[記憶装置|ストレージ]]を追加することでより多くの[[トランザクション]]を処理できるようにアップグレードでき、またアップグレードを[[シャットダウン]]なしに実行できる。 [[ルーティング]][[プロトコル]]がネットワークの規模に関してスケーラブルであると言われるのは、''N''をネットワーク内の[[ルーター|ノード]]数としたときに、各ノードに必要なルーティングテーブルのサイズが [[ランダウの記号|O]](log ''N'') に従って増大するときである。 == スケールアップとスケールアウト == '''スケールアップ'''('''垂直スケール''')や'''スケールアウト'''('''水平スケール''')は、スケーラビリティの向上、すなわち性能・容量向上のための方法である。 '''スケールアップ'''はシステムの単一の[[ノード (ネットワーク)|ノード]]にリソースを追加する方法で、[[CPU]]や[[主記憶装置|メモリ]]の増強や、[[コンピュータ]]自体の買い換えなどである。'''スケールアウト'''はシステムにノードを追加することで、[[コンピュータ・クラスター|クラスタ]]などの[[並列コンピューティング]]技術を使用する方法である。現実のシステムではそれぞれ上限・制約・デメリットも存在するため、組み合わせも行われる。 [[システム工学|システム設計]]では処理能力をあげることよりもハードウェアに関するスケーラビリティを高めることに力を入れろとよく言われる。システムのノードを増やして高いパフォーマンスを得るほうが、パフォーマンス・チューニングで個々のノードの処理能力を上げるよりも、大抵は安くつくからである。しかし、この手法ではノード数の増加に伴って利益が鈍化していってしまう。この問題は{{仮リンク|パフォーマンス・エンジニアリング|en|Performance engineering}}で扱われる。例として部分的な[[並列化]]によって高速化が可能なプログラムを仮定する。並列化可能な部分は全体の70%とし、CPUを1個から4個にスケールアウトする。Fを逐次的な部分の割合とすると、(1 - F)が並列化される割合となる。P個のプロセッサを稼動して得られる最大の高速化(倍)は次の式([[アムダールの法則]])となる。 :<math>\frac{1}{F + \frac{1 - F}{P}}</math> 仮定した数値を代入すると、 :<math>\frac{1}{0.3 + 0.7 / 4} = 2.105</math> が得られる。プロセッサを8個までスケールアウトすると :<math>\frac{1}{0.3 + 0.7 / 8} = 2.581</math> が得られる。よってハードウェアを単純に追加していくのは、必ずしも最適な手法とはいえない。 == ウィーク・スケーリングとストロングスケーリング == [[高性能計算]]の分野で代表的なスケーラビリティの定義としては次の二つがよく用いられる。ひとつは'''ストロング・スケーリング'''、あるいは強スケーリングと呼ばれ、''全体の''問題の大きさを保ってプロセッサ数を増やしたときに実行時間がどのように変化するかで定義される。もう一方は'''ウィーク・スケーリング'''、あるいは弱スケーリングと呼ばれ、''プロセッサあたりの''問題の大きさを保ってプロセッサ数を増やしたときに実行時間がどのように変化するかで定義される。 == その他の分野 == *変圧器の容量増設 - [[三相交流]]で二個の変圧器の「V結線」にしておけば将来的容量が増えた場合に変圧器を一個追加し「Δ結線」にして容量を上げる事ができる。二段階であるが、元の変圧器二台をそのまま使えるので、スケーラビリティーと言える。 *売り場面積拡張 - 一般的な小売店は規模が大きくなった場合、現在より大きい物件に移転をするが、現在の物件の増築や隣の物件を取得するスケーラブルな計画を行う場合もある。ホームセンター大手の[[ジョイフル本田]]はこの手法を採用している。 *[[クラウドコンピューティング]] - ユーザのアプリケーションの改変なしに、プラットフォーム側の計算資源や記憶領域を増減させることが出来る技術。本技術を使用しない場合は、より高性能なコンピュータへの移行やストレージの追加によるアプリケーション側の改変が必要になる。 *コンピュータの実メモリや外部記憶装置 - 実メモリは空きスロットがあれば追加することで容量を増やすことができる。また、適切にアプリケーションが設計されていれば増えたメモリが適切に使われる。外部記憶装置も基本ソフトにスパニング機能があればアプリケーションの改変無しで容量を増やすことができる。 == 似ているが違う概念 == *[[オーバードライブプロセッサ]] - [[インテル]]がCPUのアップグレードパスとして販売していたプロセッサや対応コンピュータ。コンピュータ本体を購入しなくても、ソケットにアップグレード用のプロセッサーを接続するだけでアップグレードできる。しかし、実際は元のプロセッサの動作を停止し、新規プロセッサを動作させる仕組みでありスケーラビリティとは異なる。 == 脚注 == <div class="references-small"> <references/> </div> == 関連項目 == {{ウィキポータルリンク|コンピュータ}} * [[アムダールの法則]] * [[並列化]] * [[分散コンピューティング]] * [[負荷分散]] {{Normdaten}} {{DEFAULTSORT:すけいらひりてい}} [[Category:性能]] [[Category:コンピュータアーキテクチャ]] [[Category:分散コンピューティング問題]] [[Category:プロジェクトマネジメント]] [[Category:トランザクション処理]] [[Category:システム管理]] [[Category:スケール]]
このページで使用されているテンプレート:
テンプレート:Lang
(
ソースを閲覧
)
テンプレート:Normdaten
(
ソースを閲覧
)
テンプレート:ウィキポータルリンク
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
スケーラビリティ
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報