2013-02-12 3 views
2

큰 전자 상거래 사이트가 세션 캐시를 공유 캐시에서 전용 캐시로 전환하려고합니다.사용할 전용 캐시 구성은 무엇입니까?

보통 중간 크기 서버 (5-6)에서 실행 중입니다 ... 사용량이 많은 시간에는 20 개의 중간 서버에서 실행됩니다. 매우 바쁜 시간에 사이트에 초당 2000 회 이상의 요청을하는 것이 무리가 아닙니다.

여기에 공동 위치 캐시가 충분한 지 또는 캐시 전용 직원 역할에 있어야합니까?

또한 세션 데이터에 고 가용성을 사용할 수 있어야합니까? 사이트는 훌륭한 사용자 환경을 위해 세션 데이터를 사용합니다. 그러나 캐시는 Azure 블롭 저장소에 저장되므로 고가용 옵션을 완전히 얻지 못했습니다.

답변

9

전용 역할의 사용은 실행할 역할의 수와 메모리 사용 여부에 따라 달라집니다 귀하의 웹 역할 중 규모에 따라 확장 여부가 결정됩니다. 예를 들어, 웹 역할이 항상 메모리 사용을 밀고 있고 스케일링을위한 트리거가 아닌 메모리이고 메모리 인 경우 - 웹 역할이로드를 더 오랫동안 처리 할 수 ​​있으므로 캐시에 전용 역할을 사용하는 것을 고려하십시오. 웹 역할이 CPU 사용량이 많은 경우 각 역할의 메모리를 캐시에 전용으로 사용하는 것이 좋습니다. 또한 전용 역할로 실행하는 경우로드 및 가용성을 처리하는 데 하나 이상의 역할이 필요하므로 바쁜 시간이 아니더라도 캐시를 실행하는 역할이 적어도 3 개는됩니다 (그러나 가능한 적은 웹 역할) . 역할이 의도적으로 그리고 자주 중단되는 많은 배치 또는 축소 작업을 수행하는 경우 전용 캐시를 사용할 수도 있습니다.

동일한 위치에 역할 캐싱을 고려할 때 고려해야 할 점은 끈끈한 세션이있는 경우 항목이 동일한 컴퓨터에 있으므로 지연 시간이 줄어들 것입니다. 안타깝게도 Azure로드 밸런서는 라운드 로빈이며 전혀 끈적하지 않으므로 세션이 동일한 시스템으로 돌아갈 확률은 낮습니다 (5 가지 역할에 대해 1/5). 즉, 대부분의 경우 캐시 항목이 클러스터의 다른 역할에서 가져 오므로 동일한 위치에 대기 시간 이점이 없어집니다.

캐시가 분산되어 있고 메모리가 있음 - 내가 아는 BLOB 저장소가 없습니다 ('클러스터의 런타임 상태'제외). 캐시에로드 된 항목을 클러스터의 다른 컴퓨터에서 사용할 수있게합니다. 메모리에 저장되어있는 컴퓨터에서 가져옵니다 (컴퓨터 B에서 컴퓨터 A 로의 읽기는 컴퓨터 A에 저장되지 않습니다 - 아래 주석 참조). 캐시 된 항목은 항상 메모리에만 저장되며 캐시 크기는

고 가용성 옵션은 항목을 별도의 컴퓨터 (저장소가 아님)에 복사하므로 하나의 컴퓨터에서 오류가 발생해도 여전히 복사본이 있습니다. 고 가용성은 항목이 메모리를 사용하므로 더 많은 메모리를 사용합니다. 오류가 발생할 확률이 전자 상거래 앱에 충분할 정도로 낮을 수도 있습니다. 항목이 캐시되지 않거나 (실패 또는 만기를 통해) 지속 된 데이터에서 재구성 될 수 있습니다. 예를 들어 바구니를 캐시에 보관하고 저장소에 보관하지 않는 경우 역할이 재활용되면 손실되지 않도록하십시오.이 경우 가용성이 가장 좋은 옵션 일 수 있습니다.

+0

멋진 사이먼. "컴퓨터 B에서 컴퓨터 A 로의 읽기가 컴퓨터 A에 저장되어 있는지 확실하지 않습니다."- 캐시 서버 측 구현에서 사용법에 따라 객체를 이동시키는 방법이 없다고 생각합니다. . 구현에 따라 클라이언트 쪽에서 로컬 캐시를 사용하려는 경우가 있습니다.하지만 캐시 클라이언트가 종종 일시적이기는하지만 웹 응용 프로그램의 경우이 방법이 도움이되지 않을 수도 있습니다. - http://msdn.microsoft.com/en-us/library/ ee790983.aspx –

+0

Yossi를 지워 줘서 고마워. 그에 따라 편집 됨. –

2

위대한 답변 @ SimonMunro 그러나 내 경험에 Azure Co-located 캐시는 생산을 위해 적합하지 않습니다. 우리의 부하 테스트에 따르면 서버를 재활용 할 때 캐시가 복구되는 데 오랜 시간이 걸리는 것으로 나타났습니다. 데이터베이스에서 데이터를 가져 와서 코드를 작성했지만 데이터베이스 스트레스로 인해 사이트가 중단됩니다. 이것은 노드가 재활용 될 때 발생합니다. 또한 클라우드 서비스를 위아래로 확장하는 경우에도 유용합니다. 심지어 VIP 스왑을 수행 할 때도 마찬가지입니다.

우리는 Azure 전용 캐시를 사용하여 동일한 테스트를 수행했으며 사이트 성능에 거의 영향을 미치지 않고 캐시 작업자 역할 재활용의 상황을 처리하는 것으로 확인했습니다.귀하의 사이트를 수행하려면 모든 경우 Azure 전용 캐시을 사용하는 것이 좋습니다.

관련 문제