확장성
Scalability복잡한 시스템 |
---|
토픽 |
scalability는 시스템에 [1]리소스를 추가하여 증가하는 작업을 처리하는 시스템의 특성입니다.
경제적 맥락에서 확장 가능한 비즈니스 모델은 기업이 자원을 늘리면 매출을 늘릴 수 있다는 것을 의미합니다.예를 들어, 패키지 배송 시스템은 더 많은 배송 차량을 추가하여 더 많은 패키지를 배송할 수 있기 때문에 확장 가능합니다.그러나 모든 패키지가 정렬을 위해 먼저 단일 창고를 통과해야 하는 경우, 한 창고가 제한된 수의 [2]패키지만 처리할 수 있기 때문에 시스템의 확장성이 떨어집니다.
컴퓨팅에서 확장성은 컴퓨터, 네트워크, 알고리즘, 네트워킹 프로토콜, 프로그램 및 애플리케이션의 특성입니다.예를 들어, 검색 엔진은 증가하는 사용자 수와 [3]색인화된 항목 수를 지원해야 합니다.Webscale은 대규모 클라우드 컴퓨팅 회사의 기능을 기업 데이터 [4]센터에 도입하는 컴퓨터 아키텍처 접근법입니다.
수학에서 scalability는 스칼라 곱셈 하에서의 닫힘을 말합니다.
예
사고지휘시스템(ICS)은 미국의 긴급대응기관에 의해 사용되고 있습니다.ICS는 단일 엔진 도로변 산불에서 주 간 산불로 자원 조정을 확장할 수 있습니다.현장에 있는 첫 번째 자원은 자원을 주문하고 책임을 위임하는 권한을 가진 지휘권을 확립합니다(담당자는 5~7명, 담당자는 최대 7명에게 다시 위임하고 사건이 커지면 계속합니다).사건이 확대됨에 따라 더 많은 고위 장교들이 [5]지휘를 맡고 있다.
치수
확장성은 다음과 같은 여러 [6]차원에 걸쳐 측정할 수 있습니다.
- 관리 확장성:점점 더 많은 조직 또는 사용자가 시스템에 액세스할 수 있습니다.
- 기능 확장성:기존 작업을 중단하지 않고 새로운 기능을 추가하여 시스템을 강화할 수 있습니다.
- 지리적 확장성:로컬에서 더 큰 지역으로 확장 중에도 효과를 유지할 수 있는 능력.
- 부하 확장성:분산형 시스템이 더 무겁거나 더 가벼운 부하에 대응할 수 있도록 확장 및 축소할 수 있는 기능(시스템 또는 컴포넌트를 변경, 추가 또는 분리하여 부하 변화에 대응할 수 있는 용이성 등).
- 세대 확장성:차세대 컴포넌트를 채택하여 시스템을 확장할 수 있습니다.
- 이기종 확장성은 다양한 벤더의 컴포넌트를 채택할 수 있는 기능입니다.
도메인
- 라우팅 프로토콜은 각 노드의 필요한 라우팅 테이블의 크기가 O(log N)로 증가하면 네트워크 크기에 관해 확장 가능한 것으로 간주됩니다.여기서 N은 네트워크 내의 노드 수입니다.Gnutella의 초기 P2P(Peer-to-peer) 구현에는 확장 문제가 있었습니다.각 노드 쿼리는 요청을 모든 노드에 플래딩했습니다.각 피어(peer)의 수요는 피어(peer)의 총수에 비례하여 증가하여 용량을 빠르게 초과했습니다.BitTorrent와 같은 다른 P2P 시스템은 각 피어(peer)의 요구가 피어(peer)의 수에 의존하지 않습니다.아무것도 일원화되어 있지 않기 때문에, 시스템은 피어 이외의 자원 없이 무한히 확장할 수 있습니다.
- 확장 가능한 온라인 트랜잭션 처리 시스템 또는 데이터베이스 관리 시스템은 새로운 프로세서, 디바이스, 스토리지를 추가하여 트랜잭션을 더 많이 처리하도록 업그레이드 할 수 있으며, 이를 종료하지 않고 쉽고 투명하게 업그레이드할 수 있는 시스템입니다.
- Domain Name System(DNS; 도메인네임 시스템)의 분산 특성은 전세계 인터넷에서 수십억 개의 호스트를 처리하면서 효율적으로 작동할 수 있도록 합니다.
수평(스케일아웃) 및 수직 스케일업(스케일업
리소스는 크게 수평과 [7]수직의 두 가지 범주로 나뉩니다.
수평 또는 스케일아웃
수평 확장(아웃/인)이란 분산 소프트웨어 애플리케이션에 새 컴퓨터를 추가하는 등 시스템에 노드를 추가하거나 시스템에서 노드를 제거하는 것을 의미합니다.예를 들어 1대의 웹 서버에서3대의 웹 서버로 스케일아웃하는 경우가 있습니다.지진 분석이나 생명공학 등의 고성능 컴퓨팅 애플리케이션은 워크로드를 수평으로 확장하여 이전에는 값비싼 슈퍼컴퓨터가 필요했던 작업을 지원합니다.대규모 소셜 네트워크와 같은 다른 워크로드는 가장 큰 슈퍼컴퓨터의 용량을 초과하여 확장 가능한 시스템에서만 처리할 수 있습니다.이 확장성을 이용하려면 효율적인 자원 관리 및 [6]유지보수를 위한 소프트웨어가 필요합니다.
수직 또는 스케일업
수직 확장(업/다운)이란 단일 노드에 리소스를 추가(또는 제거)하는 것을 의미합니다.일반적으로 단일 [6]컴퓨터에 CPU, 메모리 또는 스토리지를 추가하는 것입니다.
요소의 수가 많을수록 관리가 복잡해지고 리소스 간에 작업을 할당하고 노드 간 throughput 및 지연 시간 등의 문제를 처리하는 정교한 프로그래밍이 수행되지만 일부 애플리케이션은 수평으로 확장되지 않습니다.
네트워크 확장성
네트워크 기능 가상화에서는 이러한 용어가 다르게 정의됩니다.scaling out/in은 리소스 인스턴스(예: 가상 머신)를 추가/제거하여 확장할 수 있는 기능이며, scaling up/down은 할당된 리소스(예: 메모리/CPU/스토리지 용량)[8]를 변경하여 확장할 수 있는 기능입니다.
데이터베이스 확장성
데이터베이스의 확장성을 확보하려면 서버, 프로세서, 메모리, 스토리지 등의 하드웨어 리소스가 증가했을 때 데이터베이스 시스템이 추가 작업을 수행할 수 있어야 합니다.워크로드가 계속 증가하고 데이터베이스에 대한 수요도 증가하고 있습니다.
알고리즘의 혁신에는 행 수준의 잠금과 테이블 및 인덱스 파티셔닝이 포함됩니다.아키텍처 혁신에는 멀티 서버 구성을 관리하기 위한 공유 아키텍처와 공유된 모든 아키텍처가 포함됩니다.
강력한 일관성과 궁극적인 일관성(스토리지)
스케일아웃 데이터 스토리지에서 scalability는 완전한 데이터 일관성을 보장하는 최대 스토리지 클러스터 크기로 정의됩니다. 즉, 다중 물리적 데이터 복사본의 수와 관계없이 전체 클러스터에 저장된 데이터의 유효한 버전이 하나만 있음을 의미합니다.비동기 방식으로 복사본을 업데이트하여 "허술한" 이중화를 제공하는 클러스터를 '결국 일관성'이라고 합니다.이러한 유형의 스케일아웃 설계는 가용성 및 응답성이 일관성보다 높게 평가될 때 적합합니다. 이는 많은 웹 파일 호스팅 서비스 또는 웹 캐시에 해당됩니다(최신 버전을 원하는 경우 몇 초간 기다려 전파하십시오).모든 기존 트랜잭션 지향 애플리케이션에서는 이 설계를 [9]피해야 합니다.
많은 오픈 소스 및 상용 스케일아웃 스토리지 클러스터, 특히 표준 PC 하드웨어와 네트워크를 기반으로 구축된 클러스터는 궁극적인 일관성만 제공합니다.CouchDB와 같은 일부 NoSQL 데이터베이스와 위에서 언급한 다른 데이터베이스를 식별합니다.쓰기 작업은 다른 복사본을 무효화하지만 종종 해당 복사본의 승인을 기다리지 않습니다.일반적으로 읽기 작업은 응답하기 전에 모든 중복 복사본을 검사하지 않으므로 이전 쓰기 작업이 누락될 수 있습니다.메타데이터 신호 트래픽의 양이 많으면 허용 가능한 성능(즉, 비클러스터형 스토리지 디바이스 또는 데이터베이스)으로 처리하려면 전문 하드웨어와 짧은 거리가 필요합니다.
강력한 데이터 일관성이 예상되는 경우 항상 다음 지표를 확인하십시오.
- InfiniBand, 파이버 채널 또는 이와 유사한 저지연 네트워크를 사용하여 클러스터 크기와 중복 복사본 수가 증가함에 따라 성능 저하를 방지할 수 있습니다.
- 짧은 케이블 길이와 제한된 물리 범위로 신호 런타임 성능 저하를 방지합니다.
- 클러스터의 일부에 액세스할 수 없게 될 때마다 데이터 일관성을 보장하는 과반수/쿼럼 메커니즘입니다.
최종적으로 일관된 설계(트랜잭션 애플리케이션에 적합하지 않음)의 지표는 다음과 같습니다.
- 쓰기 성능은 클러스터 내의 연결된 디바이스 수에 따라 선형적으로 증가합니다.
- 스토리지 클러스터가 파티셔닝되어 있는 동안 모든 부분이 응답성을 유지합니다.업데이트가 충돌할 위험이 있습니다.
퍼포먼스 튜닝과 하드웨어 확장성 비교
시스템 설계는 용량보다는 하드웨어 확장성에 중점을 두는 것이 좋습니다.퍼포먼스 튜닝에 참가하여 각 노드가 처리할 수 있는 용량을 향상시키는 것보다 퍼포먼스를 향상시키기 위해 시스템에 새로운 노드를 추가하는 것이 일반적으로 더 저렴합니다.그러나 이 접근방식은 (퍼포먼스 엔지니어링에서 설명한 바와 같이) 수익률이 낮아질 수 있습니다.예를 들어, 프로그램의 70%를 병렬화하여 하나의 CPU가 아닌 여러 CPU에서 실행할 수 있다고 가정합니다.α가 순차 계산의 이고가 병렬화할 수 있는 분수인 , P 프로세서를 사용하여 얻을 수 있는 최대 속도 향상은 Amdahl의 법칙에 따라 결정됩니다.
이 예에 값을 대입하면 4개의 프로세서를 사용하면
컴퓨팅 파워를 8프로세서로 2배로 늘리면
처리 능력을 2배로 높이면 처리 속도가 약 5분의 1밖에 빨라지지 않습니다.모든 문제를 병렬화할 수 있다면 속도도 두 배로 빨라질 것입니다.따라서 하드웨어를 추가하는 것이 반드시 최적의 방법은 아닙니다.
약한 확장과 강한 확장
하이 퍼포먼스 컴퓨팅에는 scalability에 관한 두 가지 공통 개념이 있습니다.
- 강력한 확장이란 고정된 총 문제 크기에 대한 프로세서 수에 따라 솔루션 시간이 어떻게 달라지는지를 의미합니다.
- 확장성이 약하다는 것은 프로세서당 [10]고정된 문제 크기에 대해 프로세서 수에 따라 솔루션 시간이 달라지는 것을 의미합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Bondi, André B. (2000). Characteristics of scalability and their impact on performance. Proceedings of the second international workshop on Software and performance – WOSP '00. p. 195. doi:10.1145/350391.350432. ISBN 158113195X.
- ^ Hill, Mark D. (1990). "What is scalability?". ACM SIGARCH Computer Architecture News. 18 (4): 18. doi:10.1145/121973.121975. S2CID 1232925. 그리고
Duboc, Leticia; Rosenblum, David S.; Wicks, Tony (2006). A framework for modelling and analysis of software systems scalability (PDF). Proceedings of the 28th international conference on Software engineering – ICSE '06. p. 949. doi:10.1145/1134285.1134460. ISBN 1595933751. - ^ Laudon, Kenneth Craig; Traver, Carol Guercio (2008). E-commerce: Business, Technology, Society. Pearson Prentice Hall/Pearson Education. ISBN 9780136006459.
- ^ "Why web-scale is the future". Network World. 2020-02-13. Retrieved 2017-06-01.
- ^ Bigley, Gregory A.; Roberts, Karlene H. (2001-12-01). "The Incident Command System: High-Reliability Organizing for Complex and Volatile Task Environments". Academy of Management Journal. 44 (6): 1281–1299. doi:10.5465/3069401. ISSN 0001-4273.
- ^ a b c Hesham El-Rewini and Mostafa Abd-El-Barr (April 2005). Advanced Computer Architecture and Parallel Processing. John Wiley & Sons. p. 66. ISBN 978-0-471-47839-3.
- ^ Michael, Maged; Moreira, Jose E.; Shiloach, Doron; Wisniewski, Robert W. (March 26, 2007). Scale-up x Scale-out: A Case Study using Nutch/Lucene. 2007 IEEE International Parallel and Distributed Processing Symposium. p. 1. doi:10.1109/IPDPS.2007.370631. ISBN 978-1-4244-0909-9.
- ^ "Network Functions Virtualisation (NFV); Terminology for Main Concepts in NFV". Archived from the original (PDF) on 2020-05-11. Retrieved 2016-01-12.
- ^ Sadek Drobi (January 11, 2008). "Eventual consistency by Werner Vogels". InfoQ. Retrieved April 8, 2017.
- ^ "The Weak Scaling of DL_POLY 3". STFC Computational Science and Engineering Department. Archived from the original on March 7, 2014. Retrieved March 8, 2014.
외부 링크
