모두가 어떻게 다음 성격의 질문에 접근하는지 궁금합니다.X 사용자/트랜잭션을 지원하는 데 필요한 하드웨어를 추정하는 방법은 무엇입니까?
'응용 프로그램 A (예 : 전자 상거래 사이트)를 만들어야합니다. 기술 B (예 : java)를 사용합니다. C (예 : 200) 동시 사용자 수를 지원해야합니다. 어떤 종류의 하드웨어가 필요합니까? '
하드웨어 사양에는 필요한 CPU 수와 기본 응답을위한 메모리 양이 포함됩니다.
예제를 단순화하기 위해 Java 기술을 제 질문에 사용 하겠지만 실제로 기술 중립적 인 조언이 필요합니다.
이러한 질문에는 많은 추가 요소가 포함된다는 사실을 알고 있습니다. 예를 들어 Wicket vs Struts vs Spring, pure EJB J2EE 아키텍처, 분산 티어 수 (하나의 상자 설정 또는 3 단계 설정).
그러나 주어진 기술에 대한 사전 경험이 없거나 (요구 된 하드웨어가 무엇인지 찾아내는로드 테스트를 수행 할 수있는 기회가 없을 수도 있음), 이러한 질문은 초기 프로젝트 토론 중에 항상 발생합니다 (그리고 대답은 앞으로 나아 가기위한 기초로서 필수적입니다.) 어떻게 대답을 주시겠습니까?
나는 각 사용자 세션이 취할 수있는 메모리의 양을 예측함으로써 메모리 요구 문제를 해결할 생각을했지만 프레임 워크/가상 머신 오버 헤드가 분명히있을 것입니다.
하지만 일반적으로 나는 항상 튀어 오르는듯한이 질문에 대한 좋은 해결책을 추론하는 것처럼 보이지 않습니다. 로드 테스트를 통해 문제를 해결할 수는 있지만 그 시점까지는 프로젝트가 이미 준비되어 있으며 클라이언트가 프로젝트에 커밋하기 전에 답을 얻고 자하는 질문입니다.
지역 사회가이 문제에 대한 좋은 접근 방법을 조언 할 수 있기를 바랍니다.
감사합니다.