2013-08-19 3 views
2

Apache Tomcat 7에서 실행되는 Spring Application을 보유하고 있으며 REST 기반 서비스를 완벽하게 제공합니다. 전 세계적으로 1 백만 명이 사용할 것입니다. 내 질문은 그곳에 필요한 프로세서의 수를 계산하는 표준 방법이 있다는 것입니다. 내가 가장 마음에 들었으므로 제품을 현명하게 주문하고 싶습니다. 나는 진지하게 내가 그러한 견적을하도록 할 수있는 공식이나 무언가를 기대하고있다. 나를 가리켜주세요.필요한 코어 및 RAM 수를 확인하는 방법?

또는 이러한 인프라를 가동하기 위해 고려해야 할 다양한 제약 사항을 지적하십시오. 난 당신이 레디 스, 포스트 그레스와 MongoDB를 실행에

  • 데이터베이스 서버를 실행하는 톰캣과
  • 애플리케이션 서버를 실행 아파치와

    1. 웹 서버에 대한 요구 사항을 지적하고 싶습니다.

    감사합니다.

  • +0

    봐 당신이 얼마나 많은 동시 사용자를 기대 있나요? 세션 당 메모리 요구 사항을 프로파일 링 했습니까? – Thomas

    +0

    @Thomas 약 5000-10000 명의 동시 사용자가있을 수 있습니다. 세션 당 메모리 요구량 ... 아니요. 나는 프로파일을 보았습니다. ( –

    +0

    @ 토마스 나는 약간의 질문을 수정했습니다.이게 내 경우에 도움이되기를 바랍니다. 몇 가지를 나열 해 주시겠습니까 :) .. –

    답변

    3

    내가 노력하고 내가 생각할 수있는 몇 가지 제약 조건을 나열하지만 더있을 수 있습니다 것 :있는 파일 핸들의 수에 봐 아파치를 실행

    웹 서버 (apache가 CSS, 자바 스크립트 또는 이미지와 같은 정적 인 컨텐츠를 제공하는 경우).

    또한 HTTP 연결 수는 제약 조건 일 수 있습니다 (일반적으로 동시 사용자 당 하나).

    또 다른 제한 조건은 요청을 tomcat에 전달하는 숫자 ajp worker 스레드 일 수 있습니다.

    메모리 제약 조건은 그다지 크지 않을 수도 있지만 아파치가하는 일에 달려 있습니다. Tomcat이 다음 세션의 크기를

    을 실행하는

    응용 프로그램 서버는 제한 될 것입니다. 세션 시간 제한에 따라 동시 세션 수가 동시 사용자 수 (동시 요청을 모두 수행 할 필요는 없지만 세션에 메모리가 필요함)보다 훨씬 높을 수 있습니다.

    또한 서비스 실행에 사용할 수있는 스레드 수는 제한 사항입니다. 서비스가 더 빨리 응답할수록 차단되는 스레드 수가 줄어들므로 필요한 수는 적습니다.

    Redis, postgres 및 mongodb가 실행중인 데이터베이스 서버.

    데이터베이스의 경우 최소한 두 가지 제약 조건이 있습니다. 연결 수 (db 액세스로 요청 당 최소 하나 필요)와 쿼리 캐싱을위한 메모리 (메모리가 많을수록 더 많은 쿼리 결과가 캐시 될 수 있으며, 응답 속도가 빠름).

    5000 예상하는 시스템의 경우

    전체 - 클러스터링 및로드 밸런싱을 조사 할 수 있습니다 만 명의 동시 사용자를.이렇게하면 온 디맨드 기준으로 조정할 수 있습니다 (리소스를 많이 사용하는 경우 다른 노드를 추가 할 수 있습니다. 대부분의 리소스가 절대로 필요하지 않으면 노드를 제거 할 수 있고 한 노드가 다운 된 경우 더 높은 안정성을 얻을 수 있습니다) 시스템이 느려질 수는 있지만 여전히 실행 중일 수 있습니다).

    시스템을 프로파일 링하려면 여러 개의 동시 액세스를 원하거나 시뮬레이션하고 키 매개 변수 (파일 핸들, 메모리 사용, 사용 된 스레드, 데이터베이스 연결, http 연결 등)를 모니터하십시오. 적은 수의 사용자 (예 : 10)로 시작한 다음 꾸준히 늘리십시오 (예 : 100, 1000 등). 액세스 시간이 특정 (자체 정의 된) 한계 이하로 떨어지면 병목 현상을 찾아 더 많은 자원을 제공하고 다시 시도하십시오. 궁극적으로 더 많은 동시 사용자 수를 대략적으로 예측할 수있는 추세 (예 : 500 명의 사용자 당 누적 세션 크기로 1GB)를 발견하게됩니다. 동시 사용자를 시뮬레이션

    Apache JMeter

    +0

    위대한 @ 토마스 :) 당신이 말한 것을 좋아했습니다. 나는 견고한 시스템을 계획 할 수 있도록 더 많이 추가하려고 노력할 것입니다. 고마워요 :) –

    관련 문제