오래전, S**사에서 .NET Framework를 도입하기 위한 근거 자료를 만들기 위해 직접 테스트한 자료입니다.
1. 기본 테스트 (부하툴 --> ASP/ASPX)
Server : Compaq ProLiant 8500, 700MHz CPU * 8, 4GB RAM
OS : Windows 2000 Advanced Server SP3, IIS 5.0, .NET Framework SP2
OS : Windows 2000 Advanced Server SP3, IIS 5.0, .NET Framework SP2
1 Thread 50 Threads 120 Threads
reqs/sec reqs/sec reqs/sec
------------------------------------------------------------
ASPX/GET : 178.56 543.26 1394.68 (socket error : 1323, HTTP N/A : 42)
ASPX/POST : 4.57 183.36 1411.01
reqs/sec reqs/sec reqs/sec
------------------------------------------------------------
ASPX/GET : 178.56 543.26 1394.68 (socket error : 1323, HTTP N/A : 42)
ASPX/POST : 4.57 183.36 1411.01
ASP/GET : 167.02 448.08 654.23
ASP/POST : 151.74 436.85 583.97
ASP/POST : 151.74 436.85 583.97
(각각 20분간 측정 후 평균값 산출)
(측정도구 : WAS (Microsoft Web Application Stress Tool) 및 ACT (Microsoft Application Center Test))
2. 실제 데이터 테스트(JSP --> ASP/ASPX/ASMX --> JSP)
1 Thread 120 Threads
reqs/sec reqs/sec
---------------------------------------
ASPX/POST : 4.56 315.5
reqs/sec reqs/sec
---------------------------------------
ASPX/POST : 4.56 315.5
ASMX/SOAP : 8.37 204.0
ASP/POST : 17.38 134.2
(각각 3분간 측정 후 평균값 산출)
(측정도구 : WAS (Microsoft Web Application Stress Tool) 및 ACT (Microsoft Application Center Test))
이와 같이 서버에 가해지는 부하가 커질수록 ASPX의 성능이 ASP에 비해 월등하게 좋아진다는 점은 쉽게 알 수 있습니다. 의심의 여지가 없지요.
다만, 단일 테스트 환경, 즉 1개의 클라이언트에서 1개의 브라우저(thread)를 통해 몇 차례 혹은 연속해서 호출되는 경우, 즉, 페이지를 1회 호출하는 경우에 POST방식으로 호출을 하면 똑같이 Response.Write 한 줄만 포함된 페이지라도 ASP는 최대 15ms 이하(IIS Log 분석, 위 151.74 reqs/sec 부분)의 시간이 걸리는 반면, ASPX 페이지는 최소 200ms 이상(IIS Log 분석, 위 4.57 reqs/sec 부분) 시간이 걸립니다. 물론 부하가 커짐에 따라 ASP는 상대적으로 훨씬 더 시간이 길어지게 되지만... 부하가 없는 단일 호출상황에서는 언제나 위와 같습니다.
ASP를 성능상의 이유로 ASP.NET으로 마이그레이션해야 하는 입장에서라면 작은 부분이지만 꽤 심각한 일이 아닐 수는 없습니다. 납득할만한 설명이 뒤따르지 않는다면요. ^^;
.NET Framework에서 외부로부터 POST로 호출을 받으면 GET으로 받을 때와 달리 "내부적으로 뭔가 하는 것이 더 있을 것이다" 라는 막연한 추측만 할 뿐, 어디에서도 납득할 만한 자료를 찾을 수가 없어서 현재 이리저리 자료수집 및 수소문 중입니다.
일단 위 실제 테스트 결과를 참고하시라고...
ps 1. 위와 같은 현상은 로컬(localhost)에서 테스트하면 발생하지 않습니다.
ps 2. .NET에서 POST 호출시 단위 호출당 걸리는 시간이 200ms가 넘어가는 이유를 알아내는대로 다시 덧글을 달도록 하겠습니다.
'Tech: > .NET·C#' 카테고리의 다른 글
ASP.NET 2.0 machine key (1) | 2008.06.26 |
---|---|
웹 팜(Web Farm)에서 machineKey 설정 (1) | 2008.06.26 |
참고 : ASP.NET 성능 저하 원인 (0) | 2008.06.26 |
Oracle .NET Data Provider (0) | 2008.06.26 |
.NET Framework을 복구할 때 (0) | 2008.06.26 |