scalability
「scalability」の意味・「scalability」とは
「scalability」とは、システムやネットワークが大きくなったときにその性能を維持または向上させる能力を指す。例えば、ウェブサイトの訪問者数が増えたときでも、そのサイトのパフォーマンスを維持する能力が「scalability」である。また、データベースが大量のデータを扱う能力も「scalability」の一例と言える。「scalability」の発音・読み方
「scalability」の発音は、IPA表記では /ˌskeɪləˈbɪlɪti/ となる。カタカナ表記では「スケイラビリティ」と読む。日本人が発音する際には「スケーラビリティ」となる。「scalability」の定義を英語で解説
Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources (typically hardware) are added.「scalability」の類語
「scalability」の類語としては、「expandability」、「extensibility」、「flexibility」が挙げられる。これらの語はすべて、システムやネットワークが成長や変化に対応する能力を指す。「scalability」に関連する用語・表現
「scalability」に関連する用語としては、「load balancing」、「distributed system」、「cloud computing」などがある。これらはすべて、システムが大量のデータやトラフィックを効率的に処理するための手段や概念である。「scalability」の例文
1. The scalability of the system was tested by increasing the number of users.(システムのスケーラビリティは、ユーザー数を増やすことでテストされた。)2. Scalability is a key factor in the design of distributed systems.(スケーラビリティは分散システムの設計における重要な要素である。)
3. The software has excellent scalability, allowing it to handle large amounts of data.(そのソフトウェアは優れたスケーラビリティを持っており、大量のデータを処理することができる。)
4. The scalability of the network was improved by adding more servers.(ネットワークのスケーラビリティは、サーバーを追加することで改善された。)
5. The company is focusing on improving the scalability of its cloud services.(その会社は、クラウドサービスのスケーラビリティを改善することに注力している。)
スケーラビリティー【scalability】
読み方:すけーらびりてぃー
スケーラビリティ
スケーラビリティとは、システムの規模(スケール)の変化に柔軟に対応できる度合いのことである。
スケーラビリティは、一般的には、将来想定されるシステム規模の増大に対して対応可能であるように設計されたシステムを指して、「スケーラビリティが高い」などと表現する用い方をする。大半の場合はシステムの大規模化が想定されているが、逆にシステムをより小規模・低スペックな構成に変更する場合にも、スケーラビリティの語が用いられる。
規模の増大に対応するスケーラビリティを考慮する際には、いわゆる「垂直」と「水平」の観点から捉えることができる。サーバーにCPUを追加したり、ハードディスクを増設したりするなど、同一論理単位内でリソースを増強して対応可能なことを垂直スケーラビリティと言い、クラスタ化、分散システム化により論理単位を追加することを水平スケーラビリティと言うこともある。
スケーラビリティ
スケーラビリティ(scalability)とは利用者や仕事の増大に適応できる能力・度合いのこと[1]。電気通信やソフトウェア工学において、システムまたはネットワークまたはアルゴリズムの、持つべき望ましい特性の1つで、一種の拡張性である。より具体的には、小規模なシステムを大規模にする場合に、システム全体を交換する方法(建物で例えると大きな物件に引っ越すこと)では無く、リソース(特にハードウェア)の追加によって大規模なものへと透過的に規模拡張できる能力(建物で例えると、増築や別棟を建てること)はスケーラビリティの一種だといえる。リソースの量に比例して全体のスループットが向上するシステムはスケーラブルな(scalable)システムまたはスケーラビリティのあるシステムと呼ばれる。
対する概念としては、既存の仕組みを破棄してそれ以上の仕組みにするスクラップアンドビルドである。
システムの特性としてのスケーラビリティに一般的な定義を与えるのは難しい[2]。具体的な事例においては、問題としている領域でスケーラビリティを確保するための条件を特定することが必要である。これはデータベース、ルータ、ネットワークなど情報工学の分野において非常に重要なことである。スケーラビリティは分散処理の透過性の概念と密接なつながりがある。
スケーラビリティの高さは様々な尺度で評価される。例として
- 規模透過性
- 負荷の高低に合わせてリソース・プールを拡大・縮小できること
- 位置透過性
- ユーザーやリソースがどれだけ離れているか意識せずに、変わらない使い勝手でシステムが利用できること
- 異種透過性
- システムを構成する機器やソフトウェアが異なっていることを意識せずに管理・利用できること
がある。スケーラビリティについて議論する際には規模透過性のみを問題にすることも多い。
例えば、スケーラブルなデータベース管理システムではプロセッサやストレージを追加することでより多くのトランザクションを処理できるようにアップグレードでき、またアップグレードをシャットダウンなしに実行できる。
ルーティングプロトコルがネットワークの規模に関してスケーラブルであると言われるのは、Nをネットワーク内のノード数としたときに、各ノードに必要なルーティングテーブルのサイズが O(log N) に従って増大するときである。
スケールアップとスケールアウト
スケールアップ(垂直スケール)やスケールアウト(水平スケール)は、スケーラビリティの向上、すなわち性能・容量向上のための方法である。
スケールアップはシステムの単一のノードにリソースを追加する方法で、CPUやメモリの増強や、コンピュータ自体の買い換えなどである。スケールアウトはシステムにノードを追加することで、クラスタなどの並列コンピューティング技術を使用する方法である。現実のシステムではそれぞれ上限・制約・デメリットも存在するため、組み合わせも行われる。
システム設計では処理能力をあげることよりもハードウェアに関するスケーラビリティを高めることに力を入れろとよく言われる。システムのノードを増やして高いパフォーマンスを得るほうが、パフォーマンス・チューニングで個々のノードの処理能力を上げるよりも、大抵は安くつくからである。しかし、この手法ではノード数の増加に伴って利益が鈍化していってしまう。この問題はパフォーマンス・エンジニアリングで扱われる。例として部分的な並列化によって高速化が可能なプログラムを仮定する。並列化可能な部分は全体の70%とし、CPUを1個から4個にスケールアウトする。Fを逐次的な部分の割合とすると、(1 - F)が並列化される割合となる。P個のプロセッサを稼動して得られる最大の高速化(倍)は次の式(アムダールの法則)となる。