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

비밀번호

댓글 작성자
 




... 46  47  48  49  50  51  [52]  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12673정성태6/15/202117911Java: 19. IntelliJ - 자바(Java)로 만드는 Web App을 Tomcat에서 실행하는 방법
12672정성태6/15/202120158오류 유형: 725. IntelliJ에서 Java webapp 실행 시 "Address localhost:1099 is already in use" 오류
12671정성태6/15/202129079오류 유형: 724. Tomcat 실행 시 Failed to initialize connector [Connector[HTTP/1.1-8080]] 오류
12670정성태6/13/202118921.NET Framework: 1071. DLL Surrogate를 이용한 Out-of-process COM 개체에서의 CoInitializeSecurity 문제파일 다운로드1
12669정성태6/11/202118857.NET Framework: 1070. 사용자 정의 GetHashCode 메서드 구현은 C# 9.0의 record 또는 리팩터링에 맡기세요.
12668정성태6/11/202121452.NET Framework: 1069. C# - DLL Surrogate를 이용한 Out-of-process COM 개체 제작파일 다운로드2
12667정성태6/10/202119360.NET Framework: 1068. COM+ 서버 응용 프로그램을 이용해 CoInitializeSecurity 제약 해결파일 다운로드1
12666정성태6/10/202116888.NET Framework: 1067. 별도 DLL에 포함된 타입을 STAThread Main 메서드에서 사용하는 경우 CoInitializeSecurity 자동 호출파일 다운로드1
12665정성태6/9/202119108.NET Framework: 1066. Wslhub.Sdk 사용으로 알아보는 CoInitializeSecurity 사용 제약파일 다운로드1
12664정성태6/9/202116777오류 유형: 723. COM+ PIA 참조 시 "This operation failed because the QueryInterface call on the COM component" 오류
12663정성태6/9/202119384.NET Framework: 1065. Windows Forms - 속성 창의 디자인 설정 지원: 문자열 목록 내에서 항목을 선택하는 TypeConverter 제작파일 다운로드1
12662정성태6/8/202116301.NET Framework: 1064. C# COM 개체를 PIA(Primary Interop Assembly)로써 "Embed Interop Types" 참조하는 방법파일 다운로드1
12661정성태6/4/202128555.NET Framework: 1063. C# - MQTT를 이용한 클라이언트/서버(Broker) 통신 예제 [4]파일 다운로드1
12660정성태6/3/202119440.NET Framework: 1062. Windows Forms - 폼 내에서 발생하는 마우스 이벤트를 자식 컨트롤 영역에 상관없이 수신하는 방법 [1]파일 다운로드1
12659정성태6/2/202119778Linux: 40. 우분투 설치 후 MBR 디스크 드라이브 여유 공간이 인식되지 않은 경우 - Logical Volume Management
12658정성태6/2/202118426Windows: 194. Microsoft Store에 있는 구글의 공식 Youtube App
12657정성태6/2/202118516Windows: 193. 윈도우 패키지 관리자 - winget 설치
12656정성태6/1/202117583.NET Framework: 1061. 서버 유형의 COM+에 적용할 수 없는 Server GC
12655정성태6/1/202115609오류 유형: 722. windbg/sos - savemodule - Fail to read memory
12654정성태5/31/202116809오류 유형: 721. Hyper-V - Saved 상태의 VM을 시작 시 오류 발생
12653정성태5/31/202119818.NET Framework: 1060. 닷넷 GC에 새롭게 구현되는 DPAD(Dynamic Promotion And Demotion for GC)
12652정성태5/31/202117350VS.NET IDE: 164. Visual Studio - Web Deploy로 Publish 시 암호창이 매번 뜨는 문제
12651정성태5/31/202117674오류 유형: 720. PostgreSQL - ERROR: 22P02: malformed array literal: "..."
12650정성태5/17/202117090기타: 82. OpenTabletDriver의 버튼에 더블 클릭을 매핑 및 게임에서의 지원 방법
12649정성태5/16/202119163.NET Framework: 1059. 세대 별 GC(Garbage Collection) 방식에서 Card table의 사용 의미 [1]
12648정성태5/16/202118265사물인터넷: 66. PC -> FTDI -> NodeMCU v1 ESP8266 기기를 UART 핀을 연결해 직렬 통신하는 방법파일 다운로드1
... 46  47  48  49  50  51  [52]  53  54  55  56  57  58  59  60  ...