나는 RoR에 대해 항상 논점을 가지고있다.하지만 실제로 적절한 의미의 응답을 얻지는 못한다. 초심자는 묻습니다. "scaling"과 측정 방법은 무엇입니까?스케일링이란 무엇입니까?
답변
, scalability 수요의 다른 종류의 프로젝트의 응답을 의미한다. 확장 성이 좋은 프로젝트는 더 많은 서비스 요청을 처리하는 데 아무런 문제가 없으며 최소한 프로젝트를 처리 할 수 없기 때문에 요청을 취소하지 않아도됩니다.이 "스케일링"은 무엇입니까 ...일반적인 용어로
문제의 크기를 단순히 2 배 이상으로 늘리면 문제를 해결하는 데 사용 된 전략의 약점이 드러나는 경우가 종종 있습니다. 그러한 약점이 드러나면, 문제의 해결책이 "확장 성"이 없다고 말할 수 있습니다.
예를 들어, bogo sort은 쉽게 구현할 수 있지만 몇 가지를 정렬하는 즉시 원하는 답변을 얻는 데 오랜 시간이 걸리기 시작합니다. bogo 정렬이 잘 확장되지 않는다고 말하는 것이 공평합니다.
... 어떻게 측정합니까?
답변하기가 더 힘듭니다. 일반적으로 확장 성과 관련된 단위는 없습니다. "이 시스템은이 시스템이 N 배 확장 될 수있다"는 말은 사과와 오렌지의 비교 일뿐입니다.
확장 성은 테스트 조건에서 시스템이 다양한 종류의 수요를 견디는 것을 보면서 가장 자주 측정됩니다. 사람들은 다양한 종류의 다양한 요구에 따라 시스템을 계속 확장 할 수 있다면 시스템이 잘 확장된다고 말할 수 있습니다. 이것은 현재 경험하지 못하도록 요구하는 경우에 특히 그렇지만 급격한 인기가있을 것으로 예상 될 수 있습니다. Slashdot/Digg/Reddit effects을 생각해보십시오.
확장 성은 시스템이 변화하는 사용자 수를 수용 할 수있는 능력을 나타냅니다. 이는 클라우드 컴퓨팅 및 임대 시간 계산에 대한 시스템 계획을 세우므로 사용자 수가 증가하거나 감소 할 수 있습니다.
100,000 담당자를 위해 1000 회 담당자 용으로 설계된 주문 입력 시스템을 만들기 위해 무엇이 관련되어 있는지 생각해보십시오. 어떤 하드웨어를 추가해야합니까? 데이터베이스는 어떻습니까? 간단히 말해서 이것은 확장 성입니다. 응용 프로그램의
반드시 많은 사용자를 지칭하는 것은 아닙니다. 예를 들어 도로에서 자동차를 추적하는 단일 사용자 시스템을 상상해보십시오. 인구 10,000 명의 도시에서 테스트되었을 수도 있지만 수백만 명의 인구가있는 도시로 확장 될 수 있습니까? –
사실 그렇지만 나는 SO에 관한 누구나가 – DenaliHardtail
의 크기를 조절하거나 확장 프로젝트가 성장 또는 수요에 대응하기 위해 확장 할 수있는 방법을 의미 . 이는 종종 등 데이터베이스 내의 데이터 접속 사용자 수, 양에 의해 영향을 받는다
확장 성이 응용 프로그램 변경에 대한 부하로 수행 할 수있는 방법을 의미한다 :
확장은 위키하여 광범위한 용도 나타내면 같이
확장은 다음과 같은 다양한 치수를 측정 할 수:
- 로드 확장 성 : 쉽게 에 분산 시스템의 기능을 확장하고 무거운 또는 가벼운 로드를 수용하기 위해 리소스 풀 계약. 또는 시스템 또는 구성 요소가 일 수있는 의 변경, 추가 또는 제거 용이성이 변경로드를 수용하기 위해 으로 변경됩니다.
- 지리적 확장 성보다 지리적 분포 패턴에 관계없이 근거리 농도에서 팽창 성능 유용성 또는 유용성을 유지하는 능력.
- 관리 확장 성 : 조직의 수가 증가하면 단일 분산 시스템을 쉽게 공유 할 수 있습니다.
- 기능 확장 성 : 최소한 노력으로 새로운 기능을 추가하여 시스템을 향상시키는 기능. I는 프로세서의 수가 증가함에 따라, 우리는 높은 처리량과 병렬 연산의 성능과 관련되어 작동 한 영역에서는
.
더 일반적으로 자주 (말) 하나 또는 2 차의 크기에 쉽게 작은 시스템에서 예측할 수없는 도전의 완전히 새로운 세트를 던졌습니다하여 문제를 증가 시키면
과 관련이 있다고 생각한다는 모범을 보였습니다. 그래서 우리는 얼마나 많은 사람들이 1 초 안에 터널을 통과하는지에 대해 말할 수 있습니까? – itsaboutcode
더 많은 사람들이 10 배나 더 많으면 대답은 터널을 9 개 더 건설하는 것이 아니라 산을 가로 질러 다른 길을 찾는 것입니다. –
그것은 수있는 기능입니다 발견 원래의 디자인이나 시스템에 영향을 미치지 않으면 서 증가 된 작업량, 더 많은 기능, 데이터베이스 변경을 수용하는 시스템.
시스템 성능이 시간이 지남에 따라 계속 유지되도록하는 기능을 표현하기위한 용어입니다.
이상적으로 원하는 시스템은 선형 확장 성에 도달하는 시스템입니다. 이는 새로운 자원 단위를 추가함으로써 시스템이 동등하게 능력을 발휘한다는 것을 의미합니다.
예를 들면 :는 더 세 웹 애플리케이션 서버는 세 더 서버를 추가함으로써, 이러한 경우 와의 에게 두 배 이천 동시 사용자를 처리 할 수있는, 수천 명의 동시 사용자를 처리 할 때, 의미 less.
시스템에 선형 확장 성이 없다면 더 많은 리소스를 추가하는 것이 좋습니다. 하드웨어, 추가 이점을 가져 오지 않을 것입니다. 예를 들어, 성능은 0으로 수렴됩니다. 점점 더 많은 서버가 작업에 투입됩니다. 위의 예에서 새 서버의 추가 이점은 0에 도달 할 때까지 점점 더 작아집니다.
따라서 확장 성은 지정된 입력에서 출력으로 얻는 것을 알려주는 요소입니다. 가치 범위는 이론상 0과 양의 무한대 사이에 있습니다. 실제로, 1과 동등한 것이 가장 바람직합니다 ...
저는 Scala가 Scala에서 프로그래밍 할 때 여러분이하고있는 것을 생각합니다. :-) –
약간의 컨텍스트를 제공 할 수 있습니까? 더 많은 사용자/데이터를 처리 할 수있는 웹 사이트 및/또는 응용 프로그램의 확장에 대해 묻고 있습니까? – ChrisF
@ChrisF 더 구체적으로 말하자면 웹 사이트와이 용어가 실제로 의미하는 바를 말하고 있습니다. – itsaboutcode