ASP.NET 성능 모범 사례
저자:Eve Cole
업데이트 시간:2009-06-30 16:04:02
MSDN 웹캐스트를 기반으로 논리적/물리적 설계 실무 권장 사항 구성: 논리적 3계층 모델 페이지(.aspx) 및 사용자 컨트롤(.ascs) 사용
재사용 가능한 유형(구성 요소)은 bin 디렉터리에 저장됩니다. 데이터는 SQL 데이터베이스에 저장됩니다. 권장: 웹 팜을 위한 설계 방문자가 항상 동일한 서버로 돌아올 것이라고 가정하지 마세요.
웹 팜 세션 상태 권장 사항: 동일한 프로세스를 사용하면 다음을 피해야 합니다(가능한 경우).
DCOM을 통한 원격 호출을 통해 XML Web services를 사용하여 XML Web services에 대한 동기 호출:
인터넷상의 응용 프로그램 간 통신은 응용 프로그램 내 통신에 사용되어서는 안 됩니다. 권장 사항: DMZ 보안 영역이 필요한 경우 ISA Server를 사용하십시오.
ISA를 통해서만 액세스 허용
DMZ를 통해 ASP.NET으로 ISA 터널
후기 바인딩 사용을 피하기 위해 프로세스 전환 언어/코드 권장 사항을 줄입니다.
<%@ Page Language = "VB" Explicit = "true" %>는 모든 변수 유형을 선언해야 하며 여전히 지연 바인딩을 허용합니다.
<%@ Page Language = "VB" strict = "true" %>지연 바인딩 사용을 금지합니다.
COM 상호작용에는 COM 사용을 최소화하는 것이 좋으며, 관리되는 구성 요소 데이터를 사용하려면 해당 데이터를 SQL Server에 저장하고 적절한 데이터 액세스 방법을 선택하는 것이 좋습니다: OLEDB/SQL 클라이언트/ODBC
데이터 액세스 상태 관리를 위해 DataSet 및 DataReader를 합리적으로 선택하고 세션을 저장하는 적절한 방법을 선택하십시오: Inproc/StateServer/database
세션에 STA의 COM 개체를 저장하지 않으려면 간단한 데이터 유형을 사용하십시오. 세션이 필요하지 않으면 비활성화하십시오. EnableSessionState = "false"
가능하다면 읽기 전용 속성을 사용하십시오: EnableSessionState = "Readonly"
ViewState가 필요하지 않으면 비활성화합니다. EnableViewState = false
ViewState의 데이터 최소화 ViewState의 크기 보기 HTML 출력 소스 코드 보기 또는 Trace 활성화
캐시 페이지 캐시 사용 부분 페이지 캐시
캐시 객체 데이터 캐시
WEB 성능을 정량화하는 WebService 캐시 방법: 시스템 처리량 응답 시간 서버를 로드하여 테스트됨 여러 클라이언트 시스템을 사용하여 무료 Microsoft 웹 애플리케이션 스트레스 로드
여러 시나리오를 테스트하여 사이트의 엔드투엔드 시나리오 탐색을 테스트합니다. 다양한 로드(100, 250, 500, 750, 1000 등)에서 계산해야 하는 값입니다. 동시에 방문하는 고객)
허용 가능한 TTFB/TTLB 응답 시간 내에서 최대 클라이언트 로드를 식별합니다. 중요한 성능 카운터 프로세서, CPU % 사용률 || 낮은 값 = 노출 또는 잠금 경합
ASP.NET, 대기열에 추가된 요청 수 || 선형 증가는 서버가 완전히 로드되었음을 의미합니다.
ASP.NET 애플리케이션, 초당 요청||동적 처리량(일관되어야 함)
ASP.NET 응용 프로그램, 총 오류 수 || 기능 오류를 나타냅니다(0이어야 함)
ASP.NET 응용 프로그램, 작업자 프로세스 다시 시작 || 심각한 기능 오류를 나타냅니다.