오래전, 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
 
                      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
 
ASP/GET   :    167.02        448.08           654.23
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
 
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


Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]