2016-07-05 3 views
2

하늘색 서비스 패브릭 상태 보존 형 액터 시스템의 올바른 액터 크기를 결정하는 데 어떤 방법론을 적용해야합니까? Azure 서비스 패브릭 액터 및 네트워크의 크기 조정 방법

이론적으로이 모든 상태 또는 반대의 사용을 정확히 한 문자열을 저장하는 배우가 정확히 한 배우가 내가 을 할 수있는 극단으로 촬영. 분명히 둘 다 틀리다. 하나의 배우에 대한

는 바이트 작은 간주되는 어떤 킬로 양의 데이터의 직렬화 크기를 측정하고 얼마나 많은 메가 바이트 경우 큰 간주됩니다? 예를 들어 10KB는 작고 10MB는 큽니다.

위의 답변을 바탕으로 배우 네트워크가 "작은"액터로 손상되었다고 가정합니다. 소규모 네트워크와 대형 네트워크는 무엇이 구성되어 있습니까? 예를 들어, 다시 1 백만 작고 10 억 큰가요?

나는 이러한 측정에 적용된 인용문을 선호합니다. 그러나 나는 Azure 문서에서 구체적인 것을 얻을 수 없었다. 아직 구체적인 정보가 게시되어 있지 않은 경우 ASF 이외의 다른 행위자 네트워크 구현을 다루는 출처를 수락합니다.

+0

"올바른 크기"는이 문맥에서 무엇을 의미합니까? 액터의 실제 크기는 킬로바이트 단위입니까? – cassandrad

+0

@cassandrad 예를 들어, 10KB 작고 10MB가 큰가? 예를 들어, 다시 예를 들어 1 백만개가 작고 10 억 대입니까? –

+0

당신이 묻는 것처럼 보입니다. 배우의 데이터 저장량에 대한 "우수 사례"에 대해 설명하고 특정 답변을 제공하는 것은 매우 광범위합니다. 환경에 저장된 데이터의 양이 다른 많은 액터를 사용하여 측정 할 수없는 이유는 무엇입니까? – cassandrad

답변

2

일반적으로 액터의 상태의 원시 크기는 범위 및 액세스 패턴보다 흥미 롭습니다. 액터를 다른 구성 요소가 다양한 부분에 액세스해야하는 많은 양의 상태의 "관리자"로 사용하는 경우 여러 발신자가 시도 할 때 액터 모델의 단일 스레드 속성에 의해 트립 될 가능성이 매우 높습니다 요청을 병렬로 처리합니다. 반면 자연스럽게 캡슐화 된 액터가 작업을 수행하기 위해 많은 양의 상태를 필요로하는 경우 네트워크 요청 집합을 작성하는 대신 해당 상태를 모두 로컬로 저장하는 것이 좋습니다.

매우 거친 규칙을 찾고 있다면 대부분의 액터 상태가 킬로바이트 단위로 측정됩니다. 메가 바이트 임계 값을 초과하는 경우 디자인을 다시 검토하고 배우가 관리자 또는 미니 데이터베이스 역할을하지 못하게하는 것이 좋습니다. 신뢰할 수있는 서비스/신뢰할 수있는 사전을 사용하면 훨씬 효율적입니다.

+0

당신은 직렬화 된 데이터 크기에 대한 나의 가정을 확인했고, 킬로바이트 (계속)가 가장 좋은 자리라고 생각했습니다. 시스템의 액터 수는 어떻습니까? 어쩌면 액터 당 5KB에서 25KB로 가정합니다 (하나의 트랜잭션 경계에서 업데이트 될 꽤 가까운 연속 데이터 블록). –

+0

액터 서비스가 분할되어 번호에 달콤한 자리가 없습니다. 하드웨어의 한계에 맞춰 실행중인 액터 수가 많으면 클러스터에 더 많은 시스템을 추가하기 만하면 서비스 패브릭이 다시 균형을 조정합니다. –

+0

"이 시점에서 우리는 서버를 증가시켜야한다고 생각합니다."(표준 셋잇단 서버 세트보다 많게하는 경우)라고 말하는 데 메트릭을 적용 할 수있는 방법을 어떻게 처리 할 수 ​​있습니까? 반동과 달리 클러스터는 과부하/용량 부족 상태이므로 지금 지금 업그레이드해야합니다. 나는 항상 지금 지금의 반응을 없애려는 계획을 세우려고 노력합니다. –

관련 문제