2011-12-21 3 views
0

나는 fastcgi-mono-server4 (우분투 서버 11.04) 및 네이티브 .net 프레임 워크 (windows server 2008)에서 asie.net을 Siege로 테스트하고 있습니다.모노 : 소켓 선택 시간이 초과되었습니다

protected void Page_Load(object sender, EventArgs args) 
{ 
    var url = "http://some_host/location"; 

    var request = WebRequest.Create(url) as HttpWebRequest; 

    using (var response = request.GetResponse() as HttpWebResponse) 
     using (var reader = new StreamReader(response.GetResponseStream())) 
      Content.InnerText = reader.ReadToEnd(); 
    Console.WriteLine ("Mono"); 
} 

내가 요청이 윈도우 서버 모두에 .aspx 페이지 수 있도록 확인입니다 :

siege -d0.1 -c200 -r10 windowsserver/TestPage.aspx 
Transactions:     2000 hits 
Availability:     100.00 % 
Elapsed time:     1.10 secs 
Response time:     0.07 secs 
Transaction rate:   1815.60 trans/sec 

내에서 .aspx 페이지는이 같은 요청을 (내가 JSON을받을) 수 내가 요청이 우분투 서버에 .aspx 페이지 수 있도록이 이상한 일이다

siege -d0.1 -c200 -r10 ubuntuserver/TestPage.aspx 
Transactions:     1472 hits 
Availability:     73.60 % 
Elapsed time:     91.22 secs 
Response time:     1.10 secs 
Transaction rate:    16.14 trans/sec 

그리고 알이 이런 메시지는 다음과 같습니다.

[alert] socket: 675498112 select timed out: Operation timed out 

우분투의 하드웨어는 Windows보다 강력합니다 (Windows는 가상 컴퓨터에 탑재되어 있습니다).

다른 호스트 (페이지가 우분투에 있음)에 대한 요청없이 .aspx 페이지에 요청하면 모든 것이 정상입니다. 모노는이 상황에서 빠릅니다.

그래서 문제가 될 수 있습니까? Ubuntu 또는 fastcgi-mono-server4

답변

0

Windows/IIS/ASP.NET에서 ASP.NET 전용 스레드 풀은 스레드가 제한되어 있으므로 페이지 풀이 부족할 경우 스레드 풀이 쉽게 소모 될 수 있습니다. 다른 호스트에 대한 요청이 느립니다. 다행히도 테스트에서 경합이 표시되지 않습니다. http://support.microsoft.com/kb/821268

모노/ASP.NET이 동일한 스레드 풀 방식을 사용하는 경우 오류 메시지가 고갈 된 스레드 풀 또는 사용자 포트로 인해 발생한 것인지 확인해야합니다. 나는 Linux/Mono에 익숙하지 않지만 탐색 할 수있는 비슷한 설정이 있어야합니다.

관련 문제