문제

내 게시 비슷한 질문 는 방법에 대한 확장 가능한 linq.그래서 많은 사람들이 있었 다른 뷰에 어떤 확장성이 실제로 의미에서 일부는 최근 대화,그래서 그것을 촉발 저에게 이 질문을 뿐입니다.무엇을 확장하십니까?

도움이 되었습니까?

해결책

나는 두 가지 관점에서 확장 성을 봅니다.

확장

무언가가 실행중인 상자에 더 많은 RAM을 추가하면 추가 성능과 용량을 얼마나 많이 얻을 수 있습니까? 하나의 응용 프로그램이 서버에 2GB의 RAM을 추가하면 300 개의 연결을 처리하고 15% 더 빨리 실행할 수 있고 다른 응용 프로그램은 100 개 더 연결을 처리하고 5% 더 빠르게 실행할 수 있습니다. 응용 프로그램 A는 분명히 확장 가능합니다.

스케일링

이제 설정에 더 많은 상자를 추가하면 추가 성능과 용량을 얼마나 많이 얻을 수 있습니까? 더 많은 클라이언트 트래픽을 처리하기 위해 웹 프론트 엔드를 설정할 수 있습니까? 그렇다면 선형 증가가 있습니까? 3 개의 상자를 추가하면 내 사이트에 3 배 더 많은 사용자가 액세스 할 수 있습니까? 데이터로드를 배포하기 위해 더 많은 데이터베이스를 추가 할 수 있습니까? 멀티 스레딩을 확장 할 수 있습니까? 내 네트워크에 컴퓨터를 쉽게 추가하여 응용 프로그램에 용량을 추가 할 수 있다면 확장 가능합니다.

그건 그렇고, 이것은 N-Tier의 주요 드라이브 중 하나입니다.

다른 팁

확장 성은이 두 가지 영역 중 하나에서 성장을 처리하는 능력을 의미합니다.

1) 새로운 기능을 추가하고 버그 수정하기 쉽습니다. 코드를 만들기 위해이 새로운 일을하는 것이 얼마나 어려운가? 이것은 어떤면에서 유지 가능성 일 수 있지만, 더 큰 규모를 쉽게 처리 할 수있는 코드를 구축 할 수 있는지에 대한 질문이기도합니다.

2) 단순한 데이터베이스 중심 웹 사이트를 위해 웹 개발 또는 더 큰 데이터 세트에서 동시에 여러 요청이 될 수있는 더 큰 부하를 처리하는 기능을 수행 할 수 있습니다. 빠른"?

일반적으로 확장 성은 성장 능력을 의미합니다.

나는 확장 성이 맥락없이 Iota의 의미가 있다고 생각하지 않습니다.

시스템의 확장성에 대해 물었을 때 가장 먼저 알아야 할 것은 활용이 성장할 것으로 예상되는 방법입니다. 더 많은 사용자를 얻을 수 있습니까? 기존 사용자가 더 무거운 사용을 할 것인가? 기능 세트가 성장합니까? 현재 변경을 지원하고있는 트랜잭션의 혼합이 있습니까? 사용자 경험이 변경되어야합니까?

(좋아요, 그러한 모든 질문에 대한 답은 일반적으로 "예"입니다. 그런 다음 그 질문에 "어떻게"라는 단어를 전제하십시오.)

완전히 가상의 예제를 선택하려면 : 현재 매우 적은 사용자를 지원하고 사용자 기반이 빠르게 성장할 것으로 예상되는 시스템은 DBA가 이메일 메시지에서 선택한 정보에서 수동으로 쿼리를 실행하는 경우 2 시간을 보내야하는 경우 심각한 스케일링 문제가 있습니다. 그는 새 계정을 설정해야합니다. 추가 할 리소스 목록에 DBA를 포함하지 않는 한 더 많은 리소스를 추가하여 해결할 수있는 문제는 아닙니다 (확장되지 않는 많은 이유가 있습니다).

또는 친구가 온라인 상태인지 확인하고 멋진 Ajax-Y UI를 통해 그들과 채팅 할 수있는 흥미 진진한 새로운 기능을 발전시키는 소셜 네트워크 사이트를 상상해보십시오. 갑자기 사용자 기반이 증가하지 않으면 서 서버가 하루에 처리하는 HTTP 요청 수가 21 배로 증가하고 데이터베이스의 확장성에 대한 걱정이 백그라운드로 물러납니다. (물론, 채팅 응용 프로그램에 데이터베이스를 참여시키지 않는 한. 좋은 생각!)

물론 웹 서버를 추가하여 웹 서버를 추가 할 수 있도록 웹 앱을 만들고 웹 페이지를 edempotent로 만들 수 있도록 웹 페이지를 추가하여 응용 프로그램을 설계하여 서버를 통해 데이터베이스를 분할 할 수 있도록 웹 페이지를 추가 할 수 있도록 웹 페이지를 IDempotent로 만들 수 있습니다. 치수. 그 물건에 대해 생각할 가치가 있습니다. 그러나 싸움을 시작하기 전에 진짜 적이 무엇인지 알아내는 것이 훨씬 더 중요합니다.

나는 당신이 빠르게 의미하는 것처럼 그 질문에 대답했지만, 그것은 바보가되고 싶지 않았기 때문입니다 :) - 의미, 나는 확장 가능한 수단에 대한 토론을 시작하고 싶지 않았습니다. 시스템에 리소스를 추가하면 성능이 향상됩니다.

그런 의미에서 Plinq는 확장 가능합니다. 더 많은 코어를 추가하면 더 빨리 실행되기 때문입니다.

@lou Franco의 게시물에 추가합니다.

Plinq는 일부 시나리오에서 (일부 데모에 따라) 일부 시나리오에서 "슈퍼 선형"성능을 가지고 있습니다. 시도해보십시오.

C ++ 가이 인 경우 Microsoft는 또한 그들과 관련된 런타임 비용과 더 나은 전화를 돕는 추가 작업 기반 동시성 도구가없는 동시 기능을 출시하려고합니다.

확장 성은 비용 성능 곡선의 부드러움의 척도로 생각합니다.

즉, 리소스 컴퓨팅에 약간의 비용을 지출하고 성능이 낮은 시스템을 얻을 수 있고 점차적으로 리소스를 추가하면 비례 적으로 더 나은 시스템을 얻을 수 있습니다. 확장 가능합니다. 값 비싼 청크에 리소스를 추가해야한다면 선형 개선보다 적은 개선을 얻으려면 확장 할 수 없습니다.

확장 성 - 시스템이 추가 리소스를 사용하여 용량 또는 처리량 증가를 달성 할 수있는 능력. 드라이브, 메모리, 네트워크 카드, 프로세서 또는 기계와 같은 추가 리소스.

스케일 제한으로 시스템에 기능을 추가하는 것은 불가능할 수 있지만 확장 성을 기능 성장과 직접 연관 시키지는 않습니다.

이러한 일을 위해 특별히 웹 어플리케이션이지만,어떤 경우에도 엔터프라이즈 애플리케이션을 위한 수평 확장성은 당신이 원하는 무엇을,

수상 처리(트래픽,데이터 처리)추가하여 더 많은 상품을까?심지어"를 사용하여 클라우드 서버에"amazon ec2,구글 앱 엔진과 비슷한가요?

확장 가능한 것은 자원을 시스템으로 만들 수 있으며 O (log (n))과 O (n log n) 사이의 공간과 시간 모두에서 성장할 것입니다. 그것은 다소 비현실적이지만 그것이 내가 "확장 가능한"을 생각하는 방식입니다.

Woh!, 큰 단어 ....

클라이언트가 원하는 것에 달려 있기 때문에 모든 프로젝트를 좋아합니다.

확장 성은 항상 처리/저장 용량을 추가하는 것이 아니라 많은 입력 및 많은 출력의 지원을 포함 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top