IIS/응용 프로그램 풀/ASP.NET 운영 모범 사례를 확인하고 확인하는 PowerShell 명령
모든 개선 노력에서 첫 번째 권장 단계는 우리가 어디에 서 있는지(현재 상태를 탐색하고 분석하기 위해) 탐색하고 대답하는 것입니다. 단, 각 모범 사례는 수동으로 확인하고 적용할 수 있습니다. , 이 프로젝트는 발견 과정에서 도움을 주기 위해 첫 번째 범위에서 시작되었습니다. 첫 번째 출력으로 두 개의 CSV 파일이 생성될 예정이며, 여기에는 다루어야 할 권장 작업 항목과 현재 시스템에 대한 일반 정보가 포함됩니다.
이러한 명령은 시스템 읽기 전용 작업을 수행하며 관련된 수정 작업은 없습니다. 유일한 예외는 최종 결과를 포함하기 위해 생성된 두 개의 csv 파일입니다.
로 인해 애플리케이션이 종료되지 않습니다. 기본 재활용 시간은 1740분입니다. 그러면 앱 풀 재활용이 업무 시간 중에 어느 시점에 발생합니다. 이로 인해 성능 저하가 발생하고 사용자 세션이 완료될 수 있습니다. (ASP.NET이 세션 상태를 유지하면 사용자 세션 완료 문제가 완화될 수 있습니다.) out-proc(예: SqlServer)), 정규 시간 재활용에 권장되는 값은 0입니다(0으로 설정하면 경과 시간으로 인해 재활용이 발생하지 않음을 의미). 또한 특정 시간(예: 3)을 지정합니다. :오전 00시
기본 재활용 유휴 시간 제한은 20분입니다. 즉, IIS는 20분 동안 활동이 없으면 자동으로 작업자 프로세스를 종료한 다음 새 요청이 응용 프로그램에 도착하면 전체 활성화 프로세스가 다시 시작됩니다(새 작업자 생성). 프로세스, ASP.NET 페이지 및 Dlls 컴파일 등) 이로 인해 성능이 저하되고 사용자 세션이 완료될 수 있습니다. 서버 메모리 사용량이 허용하는 경우 유휴 시간 제한에 대한 권장 값은 0입니다(0으로 설정, 즉, IIS는 절대로 종료되지 않습니다. 비활성 시간으로 인해 이미 실행 중인 작업자 프로세스는 다른 재활용 조건이 충족되는 경우에만 재활용됩니다.
작업자 프로세스에서 사용하는 기본 ID는 ApplicationPoolIdentity이며 거의 모든 웹 애플리케이션을 실행하는 데 필요한 권한이 있습니다. 이 계정을 변경해야 하는 경우 선택한 계정에 최소 필요한 권한보다 더 많은 권한이 없는지 확인해야 합니다. , 어떠한 경우에도 프로덕션에서 작업자 프로세스를 실행하기 위해 LocalService 또는 관리자 계정을 남겨두는 것은 권장되지 않습니다. 이렇게 하면 애플리케이션 보안뿐만 아니라 운영 체제 보안도 과도하게 노출될 수 있습니다.
각 응용 프로그램 풀은 서로 다른 작업자 프로세스를 시작하므로 이는 IIS의 궁극적인 격리 계층입니다. 따라서 어떤 이유로 응용 프로그램에 성능 문제, 처리되지 않은 예외, 스레드 경합 및/또는 리소스 관리 문제가 있는 경우 다른 응용 프로그램은 이러한 잘못된 동작의 영향을 받을 수 있으며 이는 사실이지만 각 응용 프로그램이 자체 응용 프로그램 풀에 격리된 경우에만 해당됩니다.
로 인해 애플리케이션이 종료되지 않습니다. 실수로(또는 고의로) 응용 프로그램의 web.config 파일에서
스위치를 떠나지 마십시오. 그렇게 하면 다음을 포함하여 최적이 아닌 여러 가지 일이 발생하게 됩니다.
PS > build.ps1
프로젝트를 빌드하면 output
폴더가 생성됩니다.output
폴더 내용을 대상 서버에 복사하여 분석합니다.PS > Run.ps1
HostName-Findings.csv
IIS/ASP.NET 작업 모범 사례와 관련된 모든 작업 항목이 포함되어 있습니다.HostName-BaseLineInfo.csv
시스템의 현재 상태에 대한 일반 정보가 포함되어 있습니다.관리자 권한으로 이 명령을 실행해야 합니다.
어떤 디자인 개선이라도 환영합니다. 새로운 아이디어도 환영합니다 :)
Powerops의 거의 모든 코드는 TDD를 통해 설계되고 작성되었으므로 이 좋은 습관을 계속 유지하시기 바랍니다.
단위 테스트를 실행하려면 관리자 권한으로 powershell을 열고 PS projectPath/test/> Invoke-Pester
실행하세요.