Internet Information Services Process Model

download Internet Information Services Process Model

of 19

Transcript of Internet Information Services Process Model

  • 8/14/2019 Internet Information Services Process Model

    1/19

    Internet InformationInternet Information

    Services Process ModelServices Process Model

    Chris AdamsChris AdamsIIS Technical Lead WAIIS Technical Lead WA

    Microsoft CorporationMicrosoft Corporation

  • 8/14/2019 Internet Information Services Process Model

    2/19

    2

    WebCast TopicsWebCast TopicsProcess ModelProcess Model

    IIS 4.0IIS 4.0In-ProcessIn-Process

    BenefitsBenefits

    DrawbacksDrawbacks

    Isolation (Separate Memory Space)Isolation (Separate Memory Space)

    BenefitsBenefits

    Transaction ServerTransaction Server

    IntegrationIntegration Advanced SecurityAdvanced Security

    DrawbacksDrawbacks

    PerformancePerformance

    Hardware ConsiderationsHardware Considerations

    IIS 5.0IIS 5.0In-Process (inetinfo)In-Process (inetinfo)

    Medium (Pooled)Medium (Pooled)

    BenefitsBenefits

    Application IsolationApplication Isolation

    StabilityStability

    Isolation (Separate MemoryIsolation (Separate MemorySpace)Space)

    ASP.NET and IIS 5.0ASP.NET and IIS 5.0

    Service Accounts and IISService Accounts and IIS

    In-ProcessIn-Process

    System AccountSystem AccountConfigurable?Configurable?

    Out of ProcessOut of Process

    Component ServicesComponent ServicesIntegrationIntegration

    Configurable IdentityConfigurable Identity

    Performance LossPerformance Loss

    Considerations: InProc vs. OOPConsiderations: InProc vs. OOP

  • 8/14/2019 Internet Information Services Process Model

    3/19

    3

    IIS 4.0 Process Model: ModesIIS 4.0 Process Model: Modes

    Microsoft IIS 4.0Microsoft IIS 4.0

    (Windows NT(Windows NTOption Pack)Option Pack) Two modesTwo modes

    In-processIn-p

    rocess

    (Inetinfo.exe)(Inetinfo.exe) Out-of-processOut-of-p

    rocess(Mtx.exe)(Mtx.exe)

    The example showsa site running in-process. If selected,the site or virtualdirectory would bechecked.

  • 8/14/2019 Internet Information Services Process Model

    4/19

    4

    IIS 4.0 Process Model: In-ProcessIIS 4.0 Process Model: In-Process

    BenefitsBenefits Performance is fastPerformance is fast

    Less variables to breakLess variables to break

    DrawbacksDrawbacks

    InetInfo service isInetInfo service isvulnerable tovulnerable tounexpected shutdownunexpected shutdown

    Example shows a siterunning out of process ina process named "MTX".

  • 8/14/2019 Internet Information Services Process Model

    5/19

    5

    In-Process ModelIn-Process Model

    Internetclients

    Internetclients

    IIS 4.0 Server

    One process: InetInfo

    1

    23

    InetInfo: W3SVC MSFTPSVC SMTPSVC NNTPSVC

    Metabase: Loaded here

    ISAPI Filters: Loaded here

    In-proc ISAPI handling

    InetInfo: W3SVC MSFTPSVC SMTPSVC NNTPSVC

    Metabase: Loaded here

    ISAPI Filters: Loaded here

    In-proc ISAPI handling

  • 8/14/2019 Internet Information Services Process Model

    6/19

    6

    IIS 4.0 Process Model: IsolationIIS 4.0 Process Model: Isolation

    Integration with MTSIntegration with MTS BenefitsBenefits

    Permits granular isolation from the site to thePermits granular isolation from the site to thevirtual directory levelvirtual directory level

    Runs as isolated individual process called MTXRuns as isolated individual process called MTX

    DrawbacksDrawbacks

    PerformancePerformance

    Process delays between InetInfo and MTXProcess delays between InetInfo and MTX WAMWAM

    Maps requests to low or high isolationMaps requests to low or high isolation

  • 8/14/2019 Internet Information Services Process Model

    7/19

    7

    Out-of-Process CostsOut-of-Process Costs

    Internetclients

    Internetclients

    IIS 4.0/5.0 Server

    Get

    Default.asp

    Metabase lookupISAPI processing

    Note: Both InetInfo and MTX are running on the same machine, and costs come in

    the form of CPU cycles needed to switch from the InetInfo context to the MTX

    context and back.

    1

    2

    3

    4

    5

    InetInfoprocess

    InetInfoprocess

    MTXprocess

    MTXprocess

  • 8/14/2019 Internet Information Services Process Model

    8/19

    8

    Out-of-Process Entire CostsOut-of-Process Entire Costs

    Internetclients

    Internetclients

    IIS 4.0/5.0 Server

    Get

    Default.asp

    Metabase lookupISAPI processing

    Inter-

    ProcessCall whichisexpensiveon CPU

    Note: Both InetInfo and MTX are running on the same computer, and costs come in

    the form of CPU cycles needed to switch from the InetInfo context to the MTX

    context and back.

    MTXprocess

    MTXprocess

    InetInfoprocess

    InetInfoprocess

  • 8/14/2019 Internet Information Services Process Model

    9/19

    9

    Process Model IIS 5.0Process Model IIS 5.0 Three modes:Three modes:

    Low (IIS process)Low (IIS process) Medium (pooled)Medium (pooled)

    High (isolated)High (isolated)

    Low:Low: Process runs totallyProcess runs totally

    under identity ofunder identity ofsystem accountsystem account

    Excellent forExcellent for

    troubleshooting IIS totroubleshooting IIS toCOM errorsCOM errors

    Isolated processes:Isolated processes:uses COMuses COM

    Out of sync problemsOut of sync problems

  • 8/14/2019 Internet Information Services Process Model

    10/19

    10

    COM+ IntegrationCOM+ Integration

    InternalsInternals ASP thread pool (uses COM+ STA thread pool)ASP thread pool (uses COM+ STA thread pool)

    ASP transactions (IIS utilities COM+ application)ASP transactions (IIS utilities COM+ application)

    Out-of-process (medium or high):Out-of-process (medium or high): Process isolation for ISAPIProcess isolation for ISAPI

    By default, during installation, IIS creates threeBy default, during installation, IIS creates three

    packagespackages By default, processes created by IIS are run underBy default, processes created by IIS are run under

    the identity of IWAM_MachineNamethe identity of IWAM_MachineName

    User identity is configurableUser identity is configurable

  • 8/14/2019 Internet Information Services Process Model

    11/19

    11

    This is a screen shot of the

    component services. With alldefault installations of IIS 5.0,three applications are created:

    IIS InProc AppsIIS Out-of-process PooledIIS Utilities

    Component Services DefaultComponent Services DefaultScreen ShotScreen Shot

  • 8/14/2019 Internet Information Services Process Model

    12/19

    12

    Clicking identityexposes the useraccount being usedto run the process

    To run without error,the user identifiedhere needs thefollowing minimiummachinepermissions: Log on locallyLog on locally Access thisAccess this

    computer fromcomputer fromthe networkthe network

    Log on as aLog on as abatch obbatch ob

    Out-of-Process ApplicationOut-of-Process ApplicationProperties Default Screen ShotProperties Default Screen Shot

  • 8/14/2019 Internet Information Services Process Model

    13/19

    13

    The configuration forthe IIS out-of-processpooled process isobtained by right-

    clicking and selectingproperties from thecontext menu

    The Identity tab iswhere the process(dllhost) serviceaccount is configuredto run; in the case ofIIS, this is the IWAM

    account

    Is stored in the metabase

    Identity Configuration ScreenIdentity Configuration ScreenShotShot

  • 8/14/2019 Internet Information Services Process Model

    14/19

    14

    IIS stores the identity information that is to be used in themetabase

    This information can be obtained using the ADSUtil or MetaEditutilities

    By default, the password is secured by the ADSUtil utility and

    MetaEdit

    Metabase Stored Data Screen ShotMetabase Stored Data Screen Shot

    Metabase Information Stored onCOM+ Identity

  • 8/14/2019 Internet Information Services Process Model

    15/19

    15

    ASP.NET and IIS 5.0ASP.NET and IIS 5.0

    IIS in-process ISAPI applicationsIIS in-process ISAPI applications Handled directly by InetInfoHandled directly by InetInfo How does this differ from default handling?How does this differ from default handling?

    Inetinfo routes directly to ASPNET_WP.exeInetinfo routes directly to ASPNET_WP.exe

    Is ASP.NET an in-process or out-of-proc ISAPI?Is ASP.NET an in-process or out-of-proc ISAPI? An In-Proc ISAPI ApplicationAn In-Proc ISAPI Application

    Is classic ASP an in-process ISAPI?Is classic ASP an in-process ISAPI? ASP ISAPI can run either InProc or OOPASP ISAPI can run either InProc or OOP

    If it is an in-process account, what account is the ISAPIIf it is an in-process account, what account is the ISAPI

    running under?running under? ASPNET User created during ASP.NET FrameworkASPNET User created during ASP.NET FrameworkInstallInstall

    Why is this important?Why is this important? To understand what is loaded and running in the InetInfoTo understand what is loaded and running in the InetInfo

    processprocess

    Default in-process ISAPIsDefault in-process ISAPIs

  • 8/14/2019 Internet Information Services Process Model

    16/19

    16

    ASP.NET and IIS 5.0ASP.NET and IIS 5.0 (2)(2)

  • 8/14/2019 Internet Information Services Process Model

    17/19

    17

    Process ConsiderationsProcess Considerations

    In-process is sufficient to use:In-process is sufficient to use: When hardware limitations restrict the system from havingWhen hardware limitations restrict the system from having

    good performance running out-of-processgood performance running out-of-process

    On IIS 4.0, only when application code or third-party codeOn IIS 4.0, only when application code or third-party codehas been thoroughly tested!has been thoroughly tested!

    On IIS 5.0On IIS 5.0 With enough power, most applications should stay in theWith enough power, most applications should stay in the

    medium-pooled processmedium-pooled process

    Keep in mind that making one call to one DLLHost isKeep in mind that making one call to one DLLHost isbetter than one DLLHost calling another, and anotherbetter than one DLLHost calling another, and another

    When errors are occurring on the serverWhen errors are occurring on the server It is frequently a good idea to isolate the problem to IISIt is frequently a good idea to isolate the problem to IIS

    or COM by moving the site/virtual directory in- or out-of-or COM by moving the site/virtual directory in- or out-of-processprocess

    If breaking while InProc, take out-of-processIf breaking while InProc, take out-of-process

    If breaking while out-of-process, move InProcIf breaking while out-of-process, move InProc

  • 8/14/2019 Internet Information Services Process Model

    18/19

    18

    Process ConsiderationsProcess Considerations (2)(2)

    Out-of-process should be used:Out-of-process should be used: To isolate known problematic codeTo isolate known problematic code

    On IIS 5.0On IIS 5.0

    Only isolate high volume using high isolatedOnly isolate high volume using high isolated Leave most sites running in pooled memory spaceLeave most sites running in pooled memory space

    On IIS 4.0On IIS 4.0

    Troubleshooting or high volume sites are typically theTroubleshooting or high volume sites are typically theonly reason to run in high isolationonly reason to run in high isolation

  • 8/14/2019 Internet Information Services Process Model

    19/19

    Thank you for joining us for todays Microsoft SupportThank you for joining us for todays Microsoft Support

    WebCast.WebCast.

    For information about all upcoming Support WebCastsFor information about all upcoming Support WebCasts

    and access to the archived content (streaming mediaand access to the archived content (streaming media

    files, PowerPointfiles, PowerPointslides, and transcripts), please visit:slides, and transcripts), please visit:

    http://http://support.microsoft.com/webcastssupport.microsoft.com/webcasts//

    We sincerely appreciate your feedback. Please send anyWe sincerely appreciate your feedback. Please send any

    comments or suggestions regarding the Supportcomments or suggestions regarding the Support

    WebCasts toWebCasts to [email protected]@microsoft.com..

    http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/mailto:[email protected]:[email protected]:[email protected]://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/http://support.microsoft.com/webcasts/