Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

제니퍼: 9. 성능 관리 퀴즈 세 번째 문제 (닷넷 개발자 컨퍼런스)


제니퍼: 7. 성능 관리 퀴즈 첫 번째 문제 (닷넷 개발자 컨퍼런스)
; https://www.sysnet.pe.kr/2/0/875

제니퍼: 8. 성능 관리 퀴즈 두 번째 문제 (닷넷 개발자 컨퍼런스)
; https://www.sysnet.pe.kr/2/0/876

위의 문제에 이어서!




[퀴즈 3] 왜 100개까지만 요청이 제한되는가?


ASP.NET으로 웹 페이지를 하나 만들고, 코드는 단지 "Thread.Sleep(20 * 1000);"만 넣은 상태입니다. 클라이언트 응용 프로그램에서는 스레드 120개를 만들어서 해당 웹 페이지에 요청을 동시에 보냅니다.

이때 ASP.NET을 호스팅하는 환경은 "Windows 서버 + IIS 6/7/7.5 + CLR 2.0"입니다.

정상적이라면 120개 정도의 동시 요청이 처리되고 있어야 하는데, 확인해 보면 100까지만 동시 요청이 처리됩니다. 그 이유는? (환경만 일치한다면, 직접 확인해 보실 수 있습니다.)




위의 문제들에서 알 수 있는 점은, 기본 상태의 윈도우 서버 시스템에서 처리가 긴 작업(Long-running process)이 일시에 몰리는 경우 해당 시스템이 그 이상의 작업을 할 수 있는데도 불구하고 서비스가 제한된다는 것을 보여주고 있습니다.

물론, 스레드가 100개 이상이 될 수 있도록 시스템을 만드느냐에 대해서는 고려 사항이 있을 수 있습니다. 단지 여기서 중요한 점은, 서버가 적절하게 모니터링 되고 있어야 그에 대한 적절한 판단을 할 수 있다는 점입니다.

모니터링하고 있는 시스템이 공유 리소스에 대한 접근을 하는 aspx들에 대한 요청이 몰리게 되고 잠금으로 인해 시간이 걸리는 상황에서는 100개까지의 제한을 둘 필요는 없습니다. 왜냐하면, 공유 리소스를 접근하지 않는 다른 aspx 페이지들까지도 요청을 못 받아들이기 때문입니다. (혹은, 제니퍼의 PLC(Peak Load Control) 기능같은 방법도 해결책이 될 수 있습니다.)

혹시, 지금 여러분들의 웹 서버를 한 대 더 늘려야겠다고 판단하고 계시지 않은가요?
그렇다면, 정말 그 웹 서버를 늘려야 할 이유가 어떤 것인지 정확하게 모니터링이 된 걸까요?







[최초 등록일: ]
[최종 수정일: 6/12/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 151  152  153  154  155  156  157  158  159  160  161  162  163  [164]  165  ...
NoWriterDateCnt.TitleFile(s)
1012정성태4/6/201136513.NET Framework: 208. WCF - 접속된 클라이언트의 IP 주소 알아내는 방법 [1]
1011정성태3/31/201138735오류 유형: 114. 인증서 갱신 오류 - The request contains no certificate template information.
1010정성태3/30/201129597개발 환경 구성: 113. 응용 프로그램 디자인 스케치 도구 - SketchFlow [4]
1009정성태3/29/201141732개발 환경 구성: 112. Visual Studio 2010 - .NET Framework 소스 코드 디버깅 [4]
1008정성태3/27/201133981.NET Framework: 207. C# - Right operand가 음수인 Shift 연산 결과 [2]
1007정성태3/16/201134913개발 환경 구성: 111. Excel - XML 파일 연동 [5]파일 다운로드1
1006정성태3/15/201128585.NET Framework: 206. XML/XSD - 외래키처럼 참조 제한 거는 방법파일 다운로드1
1005정성태3/11/201138548개발 환경 구성: 110. 엑셀 매크로 함수 관련 오류 [2]
1004정성태3/3/201127653개발 환경 구성: 109. SharePoint Health Analyzer 디스크 부족 경고 제어
1003정성태3/3/201128713오류 유형: 113. SQL Server - DB Attach 시 Parameter name: nColIndex 오류 발생
1002정성태3/2/201126919Team Foundation Server: 44. TFS 설치 후, Team Portal의 Dashboard를 빠르게 확인하는 방법
1001정성태3/2/201131327Team Foundation Server: 43. TFS 2010 + SharePoint 2010 설치
1000정성태3/1/201136309오류 유형: 112. Remote FX RDP 연결 시 오류 유형 2가지 [5]
999정성태2/28/201149474개발 환경 구성: 108. RemoteFX - Windows 7 가상 머신에서 DirectX 9c 환경을 제공 [5]
998정성태2/27/201123227Team Foundation Server: 42. TFS Application-Tier만 재설치
996정성태2/12/201140760디버깅 기술: 35. windbg - 분석 예: 시작하자마자 비정상 종료하는 프로세스 - NullReferenceException
995정성태2/11/201159240.NET Framework: 205. 코드(C#)를 통한 풀 덤프 만드는 방법 [4]
994정성태2/10/201139079디버깅 기술: 34. Windbg - ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.4200.dll, Win32 error 0n2 [1]
993정성태2/10/201131352개발 환경 구성: 107. 하나의 WPF 프로젝트를 WinExe / Library로 빌드하는 방법
992정성태10/15/201132309개발 환경 구성: 106. VSS(Volume Shadow Service)를 이용한 Hyper-V VM 백업/복원 [2]
991정성태2/6/201151976개발 환경 구성: 105. 풀 덤프 파일을 남기는 방법 [4]
990정성태2/2/201136873개발 환경 구성: 104. Visual C++ Custom Build Tool 사용예 [1]파일 다운로드1
989정성태2/1/201133102개발 환경 구성: 103. DOS batch - 동기 방식으로 원격 서비스 제어
988정성태1/30/201129041개발 환경 구성: 102. MSBuild - DefineConstants에 다중 전처리 값 설정
987정성태1/29/201142378디버깅 기술: 33. PDB Symbol 로드 오류 - Cannot find or open the PDB file. [2]
986정성태1/26/201133950.NET Framework: 204. 분리된 ThreadPool 사용 - Smart Thread Pool
... 151  152  153  154  155  156  157  158  159  160  161  162  163  [164]  165  ...