고성능 ASP.NET 설정
-
06-07-2019 - |
문제
다음 응용 프로그램에 가장 적합한 설정이 무엇인지 묻고 싶습니다.
ASP.NET 3.5 웹 사이트 - 프리젠 테이션 계층, 많은 Ajax 및 JS로 사용됩니다. 서버에 많이 부딪치지 않습니다.
ASP.NET WCF- 모든 데이터를 애플리케이션에 제공하는 Sevice. 유효성 검사, 데이터 모델링 / 준비 및 DB 서버와의 통신을 담당합니다.
데이터베이스 -SQL Server 2005 STD, 일부 논리는 저장 프로 시저로 서버 측에 코딩됩니다. 논리 중 일부는 약간의 시간이 걸릴 수 있습니다. 제 생각에는 앱에서 가장 자원을 소비하는 부분입니다.
웹 사이트는 분당 최대 1000 명의 사용자를 가질 수 있습니다. 다음 구성에는 최대 4 개의 서버를 가질 수 있습니다. Intel Bi Xeon Quad 8x 2.00+ GHz, 16GB RAM, SSD 또는 RAID 드라이브.
응용 프로그램의 일부를 실제 서버에 배치하는 가장 좋은 방법은 무엇입니까? 그들은 이런 종류의 부하를 처리할까요?
해결책
당신이 설명하는 응용 프로그램에서, 나는 스레드 관리가 큰 문제가 될 것이라고 생각합니다. 문제에 하드웨어를 던지는 것이 최선의 방법이 아닐 수 있습니다.
분할 측면에서, 캐싱 및 캐시 알림과 같은 것들을 활용할 수 있는지 여부에 따라 다릅니다. 앱에 대한 모든 호출이 DB를 치고 긴 저장 프로 시저를 실행 해야하는 경우 더 많은 DB 머신과 프론트 엔드 웹 서버가 적을 수 있습니다.
이것은 큰 주제입니다. 정확히 이런 종류의 질문에 대한 합리적으로 포괄적 인 답변을 제공하려는 시도에서 나는 그것에 관한 책을 썼습니다. 초고속 ASP.NET : ASP.NET 및 SQL Server를 사용하여 초고속 및 초 규모 웹 사이트 구축.
다른 팁
모든 응용 프로그램에서 덜 확장 가능한 위치는 데이터베이스 서버입니다. 더 많은 웹 및 응용 프로그램 서버를 추가 할 수 있지만 동일한 편의로 DB를 복제 할 수 없으므로 DB가 논리를 포함하지 않으면 장기적으로 이익을 얻을 수 있습니다. . 많은 애플리케이션에서 제한 요소는 CPU가 아니지만 메모리 사용자 세션에 대한 메모리를 생각해보십시오. 사용자 당 1MB의 데이터를 저장하는 경우 응용 프로그램은 충분한 경우에 64,000 Silmantanius 사용자 세션을 지원할 수 있습니다. 애플리케이션 레벨 캐싱을 사용하여 두 문제를 모두 완화 할 수 있지만 이제는 오래된 데이터에 직면했기 때문에 자체 문제가 발생할 수 있습니다. 세션 기반 사이트를 확장하려면 스티커 세션을 지원하는 스마트로드 밸런서 솔루션을 사용해야합니다. 하드웨어로드 밸런서가 필요할 가능성이 높습니다.