IIS 애플리케이션 풀 복호화

IIS의 응용 프로그램 풀은 좀 신비로울 수 있습니다.그것들은 당신을 위해 자동으로 만들어졌기 때문에 관리자와 개발자는 여러 번 그것들을 고려하지 않을 것입니다.
그러나 응용 프로그램 풀에 문제가 생기면 혼란스러워질 수 있습니다.응용 프로그램 풀을 최적화하는 데도 현저한 성능 향상이 있다.응용 프로그램 풀을 이해하는 것은 IIS 서버를 잘 실행하고 응용 프로그램을 더욱 잘 실행하는 데 매우 중요하다.

애플리케이션 풀이란 무엇입니까?


응용 프로그램 풀을 이해하려면 IIS로 말하자면, 우리는 먼저 응용 프로그램을 이해해야 한다.
응용 프로그램은 제공 내용의 파일과 폴더 그룹입니다.모든 웹 사이트는 HTML과 이미지일지라도 기본 프로그램을 할당합니다.다음 그림은 웹 서버/웹 사이트/응용 프로그램의 관계를 보여 줍니다.

응용 프로그램 탱크는 응용 프로그램의 용기다.이것은 응용 프로그램을 서버의 다른 응용 프로그램과 분리하는 데 사용됩니다.응용 프로그램 풀의 모든 응용 프로그램은 작업 프로세스 (w3wp.exe) 를 공유합니다.여러 응용 프로그램이 같은 작업 프로세스를 공유하거나 모든 응용 프로그램에 하나의 작업 프로세스를 공유할 수 있습니다.

응용 프로그램 풀을 설정할 때 몇 가지 옵션이 있습니다.우리 두 가지 모델을 비교합시다.

단일 풀의 여러 애플리케이션



이 설정을 통해 각 응용 프로그램은 같은 풀/프로세스를 공유합니다.다음과 같은 몇 가지 이유를 원하실 수 있습니다.
  • 더 단순한 디자인
  • 변경할 때 한 번만 수행할 수 있습니다.
  • 애플리케이션 간 공유 및 캐시 코드 공유를 위한 캐시 기능 향상
  • 다음과 같은 몇 가지 이유로 원하지 않을 수 있습니다.
  • 한 번의 충돌로 애플리케이션당 종료
  • 고부하 어플리케이션이 다른 어플리케이션
  • 감소
  • 모든 어플리케이션에서 동일한 보안 프로필 공유
  • 한 응용 프로그램에 필요한 설정은 다른 응용 프로그램을 파괴할 수 있습니다.
  • 모든 응용 프로그램은 자신의 응용 프로그램 탱크를 가지고 있다



    이런 설정을 통해 모든 응용 프로그램은 자신만의 독특한 과정을 가지고 있다.
    다음과 같은 몇 가지 이유를 원하실 수 있습니다.
  • 독립 실행형 작업 - 어플리케이션이 실패하면 다른 어플리케이션에 영향을 주지 않습니다.
  • 격리 성능 - 더 많은 부하를 가진 어플리케이션은 다른 어플리케이션의 속도를 늦추지 않습니다.
  • 각 애플리케이션에 대해 보안을 개별적으로 구성할 수 있습니다.
  • 다음과 같은 몇 가지 이유로 원하지 않을 수 있습니다.
  • 설정은 전체적으로 변경할 수 없으며 하나씩 변경해야 합니다.
  • 일반적인 코드 캐시 이점은 없습니다.
  • 단일 풀보다 더 많은 비용이 발생할 수 있습니다.
  • '마탄'이 없다면, 이것은 당신의 사이트와 조직의 수요에 달려 있을 것이다.이것은 틀림없이 네가 최상의 결과를 얻기 위해 시도하고 싶은 것이다.

    응용 프로그램 풀 설정


    응용 프로그램 탱크에는 고려해야 할 중요한 설정이 있습니다.기본 설정을 선택하면 다음을 많이 얻을 수 없습니다.

    CLR 버전 및 관리 파이핑 모드만 변경할 수 있습니다.그러나 고급 설정을 선택하면 더 많은 옵션을 얻을 수 있습니다.

    다음은 내가 자주 보는 변화들이다.
  • .Net CLR - 낮은 버전을 실행할 이유가 없음에도 불구하고넷, 그게 일어났어.보통 기본 응용 프로그램 풀 프레임워크가 2.0일 때 이것을 설정합니다.
  • 32비트 응용 프로그램 활성화 - 나중에 호환되는 일반적인 응용 프로그램입니다.예를 들어 제가 개발한 마지막 프로그램은 C++로 작성된 32비트 DLL을 사용해야 합니다. 이 설정이 없으면 프로그램이 실행될 수 없습니다.
  • 파이프 관리 모드 - 뒤로 호환되는 또 다른 모드입니다.일부 오래된 ASP 응용 프로그램의 경우 클래식 모드가 필요할 수 있습니다.
  • 대기열 길이 - 이것은 제한된 설정으로 매우 대략적이지만 유용합니다.여기서 우리가 말하고자 하는 것은 우리가 대기열에 1000개의 요청을 할 수 있다는 것이다. 이 수량을 초과하면 방문자는 503개의 오류를 얻게 될 것이다.
  • 제한 - 이 응용 프로그램 풀에서 사용할 CPU 시간의 최대 비율을 제어하는 또 다른 제한 조치입니다.
  • 제한 동작은 이 제한에 도달했을 때 실행할 동작을 지정합니다.너는 프로세스를 중지하고 그것을 제한하거나 아무것도 하지 않을 수 있다.
  • 극한 간격은 미조절 절류에 사용된다.위의 제한에 도달하면 이 설정은 회수하기 전에 이 상태를 유지할 수 있는 분을 제어합니다.만약 시간이 너무 길다면, 더 이상 필요하지 않은 후에 밸브를 열 수도 있다.시간 간격이 너무 짧으면 흐름을 줄일 뿐이다.
  • 표지 - 이것은 매우 중요합니다. 이것은 응용 프로그램 풀이 시뮬레이션하고 있는 사용자이기 때문입니다.대부분의 경우, 응용 프로그램 풀 표지는 최선의 선택이지만, 때로는 특정 사용자가 프로세스를 실행해야 합니다.이 경우 이 응용 프로그램 풀을 사용자의 계정에서 실행하고 권한을 부여할 수 있습니다.네가 절대적으로 필요로 하지 않으면, 그렇지 않으면 이렇게 하지 마라.이것은 내가 이 분야에서 본 많은 것들이다. 특히 높은 안전성 응용 프로그램에서.
  • 내가 전에 말했듯이 조정의 묘약도 없다.이것은 사실상 당신의 조직과 사이트의 사용 방식에 달려 있다.한 사이트의 좋은 노래 한 곡이 다른 사이트에 불리할 수도 있다.

    애플리케이션 풀 생성 방법


    IIS에서 응용 프로그램 풀을 만드는 것은 매우 쉽다.응용 프로그램 풀 기능 창의 IIS 관리자에 들어가서 마우스 오른쪽 버튼을 클릭하고 새 것을 만들 수 있습니다.

    또는 PowerShell을 사용하여 다음을 생성할 수 있습니다.
    $appPoolName = 'jeremyscoolapp'
    
    if(!(Test-Path IIS:\AppPools\$appPoolName))
    {
        $appPool = New-Item $appPoolName
        $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value 'v4.0'
    }
    
    Set-ItemProperty iis:\Sites\WebsiteName -Name applicationpool -Value $appPoolName
    
    이 스크립트에서, 응용 프로그램 탱크에 이름을 정의한 것을 볼 수 있습니다.그리고 나는 그것이 이미 존재하는지 테스트했다.만약 없다면, 나는 새로운 응용 프로그램 탱크를 만들 것이다.그런 다음 Set-ItemProperty를 사용하여 런타임 버전을 4.0으로 변경했습니다.이러한 방식으로 모든 응용 프로그램 풀 설정을 설정할 수 있습니다.
    옵션을 보려면 PowerShell 프롬프트에서 다음을 입력합니다.
    Get-Item IIS:\AppPools\DefaultAppPool  | Select-Object *
    
    응용 프로그램 풀의 이름이 다르면 Default AppPool로 대체합니다.

    결론


    IIS의 응용 프로그램 풀을 소개해 드렸으면 합니다.이 파일들은 일반적으로 자동으로 만들어지기 때문에, 관리자는 보통 그것들을 설정하는 데 많은 신경을 쓰지 않는다.많은 사이트들이 기본 설정에서 잘 운영되고 있다.사용자 정의 설정이 필요하거나 부하 문제가 있는 것을 발견하면, 응용 프로그램 풀과 어디서 변경해야 하는지 잘 알고 있습니다.
    나는 새로운 Pluralsight 과정IIS Administration Fundamentals에서 이것과 더 많은 IIS 주제를 소개했다.IIS 관리에 대한 자세한 내용은 를 참조하십시오.

    좋은 웹페이지 즐겨찾기