Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

โ€œInvest in yourself โ€” your confidence is always worth it.โ€

Explore Cosmetic Hospitals

Start your journey today โ€” compare options in one place.

DOTNET: IIS Performance Checklist


โœ… IIS-Only Performance Optimization Settings (Complete List)


1. Application Pool Settings (IIS Core)

โœ” Start Mode

  • AlwaysRunning
    โ†’ Avoid cold starts.

โœ” Idle Time-out

  • Increase or disable (0) if you want warm apps.
    Default (20 min) causes unexpected pool shutdown.

โœ” Worker Process Settings

  • Maximum Worker Processes
    • Keep 1 (no web garden) for ASP.NET/Core.
    • Web gardens only for stateless apps.
  • Queue Length
    • Increase from default 1000 to 5000โ€“20000 depending on load.
      Prevents 503 (Queue full) errors.

โœ” Recycling Settings

  • Disable Regular Time-Based Recycling
    Stops unnecessary restarts.
  • Enable Overlapped Recycling
    Zero-downtime recycling.
  • Disable application pool recycling at idle
    (set Idle Time-out to 0).

2. Site-Level Performance Settings

โœ” Connection Limits

  • connectionTimeout
  • maxConnections
  • Keep-alive enabled.

โœ” HTTP/2 & HTTP/3

  • Enable HTTP/2 (and HTTP/3 on Windows Server 2022+) for higher throughput.

โœ” Compression

(IIS โ†’ Compression feature)

  • Enable Static Compression
  • Enable Dynamic Compression
  • Ensure compression for:
    • text/html
    • text/css
    • application/javascript
    • application/json

โœ” Caching (Output Caching / Kernel Caching)

(IIS โ†’ Output Caching)

  • Enable Kernel Caching (huge perf win for static files)
  • Enable Output Caching for dynamic pages (if safe)
  • Configure:
    • Cache duration
    • Vary-by rules

3. Static File Handling Settings

โœ” Static Content

  • Enable staticContent module
  • Set cache-control headers (long max-age)
  • Enable ETags or Last-Modified
  • Make sure static file module is above ASP.NET modules.

4. IIS Modules Management (Pipeline)

โœ” Disable/Remove Unused Modules

Huge performance improvement because every module executes per request.

Disable modules like:

  • WebDAV
  • ASP
  • PHP (if not used)
  • CGI
  • ISAPI Filters
  • Session State
  • Windows Authentication (if not needed)
  • Request Filtering (if handled by reverse proxy)

Goal: Lightest possible request pipeline.


5. Request Filtering (Limits)

โœ” Max Request Size

  • Tune maxAllowedContentLength
  • Tune maxRequestLength

โœ” URL Length Limits

  • Prevent long-URL attacks.

โœ” Header Limits

  • Tune header size limits.

All these reduce bad requests hitting Kestrel or app layer.


6. Logging Settings

โœ” W3C Logging

  • Disable unnecessary fields
  • Keep logs on separate fast disk
  • Avoid logging ALL headers (expensive)

โœ” Failed Request Tracing (FREB)

  • Only enable for targeted diagnostics
  • Turn off afterward

7. Application Initialization (Warm-Up)

(IIS โ†’ Configuration Editor โ†’ system.webServer/applicationInitialization)

  • DoAppInitAfterRestart = True
  • PreloadEnabled = True

This ensures app is warm and ready before first user hit.


8. Dynamic IP Restrictions (DoS protection)

Not directly performance but prevents IIS from being overwhelmed.

  • Enable Dynamic Deny based on:
    • Request rate
    • Concurrent requests
    • Bad requests

9. WebSockets / Long-Running Connections Settings

  • Enable only if needed.
  • Disable WebSockets for performance if app does not use them.

10. Client Keep-Alive Settings

  • Keep-alive enabled
  • Keep-alive timeout tuned (15โ€“120 seconds depending on use)

11. Centralized Configuration That Impacts Performance

โœ” applicationHost.config

Key performance elements:

  • <system.webServer/serverRuntime uploadReadAheadSize="โ€ฆ">
  • <system.webServer/security/requestFiltering>
  • <system.webServer/httpCompression>
  • <system.webServer/webSocket>
  • <system.webServer/cache>

12. Kernel-Mode Optimizations (HTTP.sys)

(These are still considered IIS-level because IIS sits on top of HTTP.sys)

โœ” Enable Kernel Caching

โ†’ Boosts static file performance massively.

โœ” Set MaxBandwidth & MinFileBytesPrSec

โ†’ Prevents slow clients from consuming server I/O.

โœ” Enable URL ACL Tuning

โ†’ Helps reduce request overhead.


๐ŸŽฏ FINAL OUTPUT

Exact list of IIS settings that impact performance:

App Pool

  • AlwaysRunning
  • Idle Timeout
  • Recycling settings
  • Maximum Worker Processes
  • Queue Length

Compression

  • Static compression
  • Dynamic compression

Caching

  • Kernel caching
  • Output caching
  • Static file caching

Modules

  • Disable unused modules
  • Optimize pipeline

Request filtering

  • maxRequestLength
  • maxAllowedContentLength
  • URL/header limits

Connection settings

  • connectionTimeout
  • maxConnections
  • Keep-alive

HTTP/2 / HTTP/3

  • Enable

Logging

  • Trim fields
  • Optimize log location

Application Initialization

  • PreloadEnabled
  • DoAppInitAfterRestart

Static file handling

  • cache-control headers
  • ETags
  • Last-Modified

Dynamic IP Restrictions

  • Enable rate limiting

HTTP.sys kernel settings

  • uploadReadAheadSize
  • MinFileBytesPerSec
  • MaxBandwidth


Here is the exact location of every IIS performance optimization setting โ€” which GUI blade, which config file, or which PowerShell command you must use.


โœ… 1. Application Pool Settings (All performance-critical)

1.1 Start Mode โ†’ โ€œAlwaysRunningโ€

Where to configure:

  • IIS Manager โ†’ Application Pools
  • Select your App Pool โ†’ Advanced Settings
  • Start Mode = AlwaysRunning

Config file:

applicationHost.config

<applicationPoolDefaults ... startMode="AlwaysRunning" />
Code language: HTML, XML (xml)

1.2 Idle Timeout

Where:

  • IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings
  • Idle Time-out (minutes) โ†’ Set to 0 for performance-sensitive apps

Config:

<processModel idleTimeout="00:00:00"/>
Code language: HTML, XML (xml)

1.3 Recycling Settings

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Recyclingโ€ฆ

Disable:

  • Regular Time Interval
  • Specific Time
  • Memory-based recycling unless required

Config:

<recycling periodicRestart>
    <schedule />
</recycling>
Code language: HTML, XML (xml)

1.4 Queue Length

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings

  • Queue Length = 5000โ€“20000

Config:

<applicationPoolDefaults queueLength="20000" />
Code language: HTML, XML (xml)

1.5 Maximum Worker Processes

Where:

IIS Manager โ†’ Application Pools โ†’ Your Pool โ†’ Advanced Settings

  • Maximum Worker Processes = 1 (no web garden)

Config:

<processModel maxProcesses="1" />
Code language: HTML, XML (xml)

โœ… 2. Site-Level Settings

2.1 connectionTimeout + Keep-Alive

Where:

IIS Manager โ†’ Sites โ†’ Select Site โ†’ Limitsโ€ฆ

You can configure:

  • Connection timeout
  • Max connections

Config:

<limits connectionTimeout="00:02:00" maxConnections="100000" />
Code language: HTML, XML (xml)

2.2 Enable HTTP/2 / HTTP/3

Where:

  • Windows Features โ†’ HTTP/2 is enabled automatically if:
    • Server 2016+: HTTP/2 TLS
    • Server 2022+: HTTP/3 optional feature

Config:

<system.webServer>
  <httpProtocol allowKeepAlive="true" />
</system.webServer>
Code language: HTML, XML (xml)

โœ… 3. Compression

3.1 Static Compression

3.2 Dynamic Compression

Where:

IIS Manager โ†’ Server or Site โ†’ Compression

  • Enable:
    โœ” Static compression
    โœ” Dynamic compression

Config:

<urlCompression doStaticCompression="true" doDynamicCompression="true" />
Code language: HTML, XML (xml)

โœ… 4. Caching

4.1 Output Caching

Where:

IIS Manager โ†’ Site โ†’ Output Caching

  • Enable Cache
  • Add caching rules

Config:

<caching enabled="true">
    <profiles>
        <add extension=".aspx" policy="CacheUntilChange" duration="3600"/>
    </profiles>
</caching>
Code language: HTML, XML (xml)

4.2 Kernel Caching

Where:

IIS Manager โ†’ Server โ†’ Feature Delegation
Ensure:

  • Output Caching = Read/Write

Config:

<caching enableKernelCache="true" />
Code language: HTML, XML (xml)

โœ… 5. Static File Handling

5.1 Cache-Control headers

Where:

IIS Manager โ†’ Site โ†’ HTTP Response Headers

  • Add โ†’ Cache-Control: public, max-age=31536000

Config:

<httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="public, max-age=31536000" />
    </customHeaders>
</httpProtocol>
Code language: HTML, XML (xml)

โœ… 6. Modules Optimization (DISABLING unused modules)

Where:

IIS Manager โ†’ Site โ†’ Modules

  • Remove:
    • WebDAV
    • ASP
    • ISAPI Filters
    • CGI
    • Windows Authentication (if unused)

Config:

<modules>
   <remove name="WebDAV" />
   <remove name="ISAPI-filter" />
</modules>
Code language: HTML, XML (xml)

โœ… 7. Request Filtering

7.1 Max Request Body Size

Where:

IIS Manager โ†’ Site โ†’ Request Filtering โ†’ Rules โ†’ Request Limits

  • maxAllowedContentLength
  • maxUrl
  • maxQueryString

Config:

<requestFiltering>
  <requestLimits maxAllowedContentLength="52428800" />
</requestFiltering>
Code language: HTML, XML (xml)

โœ… 8. Logging Settings

Where:

IIS Manager โ†’ Site โ†’ Logging

  • Choose fields
  • Directory location
  • Format

Config:

<logFile enabled="true" directory="D:\IISLogs" logExtFileFlags="Date,Time,ClientIP,..." />
Code language: HTML, XML (xml)

โœ… 9. Application Initialization (Warm-Up)

Where:

IIS Manager โ†’ Site โ†’ Configuration Editor
Section:
system.webServer/applicationInitialization

Set:

  • doAppInitAfterRestart = true
  • remapManagedRequestsTo = “true”
  • preloadEnabled = true (in site โ†’ Advanced Settings)

Config:

<applicationInitialization doAppInitAfterRestart="true">
    <add initializationPage="/"/>
</applicationInitialization>
Code language: HTML, XML (xml)

โœ… 10. Dynamic IP Restrictions

Where:

IIS Manager โ†’ Site โ†’ IP Address and Domain Restrictions

  • Enable:
    • Deny By Concurrent Requests
    • Deny By Request Rate

Config:

<dynamicIpSecurity enableRateLimiting="true" maxRequests="200" requestIntervalInMilliseconds="500" />
Code language: HTML, XML (xml)

โœ… 11. WebSocket Settings

Where:

IIS Manager โ†’ Site โ†’ WebSocket Protocol

  • Disable if unused

Config:

<webSocket enabled="false" />
Code language: HTML, XML (xml)

โœ… 12. HTTP.sys Kernel Settings

Where:

Registry or appcmd, but can be done via Configuration Editor under:
system.webServer/serverRuntime

uploadReadAheadSize

<serverRuntime uploadReadAheadSize="49152" />
Code language: HTML, XML (xml)

MinFileBytesPerSec

<serverRuntime minFileBytesPerSec="240" />
Code language: HTML, XML (xml)

๐ŸŽฏ FINAL SUMMARY (Mapped)

#SettingWhere in IIS ManagerConfig Path
1Start ModeApp Pool โ†’ AdvancedstartMode
2Idle TimeoutApp Pool โ†’ AdvancedidleTimeout
3RecyclingApp Pool โ†’ Recycling<recycling>
4Queue LengthApp Pool โ†’ AdvancedqueueLength
5Max Worker ProcessesApp Pool โ†’ AdvancedmaxProcesses
6Connection TimeoutSite โ†’ Limits<limits>
7HTTP/2System FeatureHTTP.sys
8CompressionServer/Site โ†’ Compression<urlCompression>
9Output CacheSite โ†’ Output Caching<caching>
10Kernel CacheSite โ†’ Output Caching<caching>
11Static HeadersSite โ†’ HTTP Response Headers<customHeaders>
12Modules RemoveSite โ†’ Modules<modules>
13Request Size LimitsSite โ†’ Request Filtering<requestFiltering>
14LoggingSite โ†’ Logging<logFile>
15App InitializationSite โ†’ Config Editor<applicationInitialization>
16IP RestrictionsSite โ†’ IP Restrictions<dynamicIpSecurity>
17WebSocketsSite โ†’ WebSocket<webSocket>
18uploadReadAheadSizeConfig Editor<serverRuntime>

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services โ€” all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

How eLearning Platforms Help Businesses Keep DevOps Skills Up to Date

As a DevOps team, youโ€™re expected to keep moving, but sometimes your technology ends up moving faster than you can.  There are constant updates and new things…

Read More

The Cultural Travelerโ€™s Guide to Bhopal: Heritage, Arts, and Local Events

Planning a trip to central India often brings travelers face-to-face with a rich tapestry of heritage, natural beauty, and vibrant community life. Bhopal, the capital of Madhya…

Read More

Understanding Patient Evaluation Methods for Spinal Care Options

Spine-related discomfort can profoundly impact daily life, altering everything from basic mobility to overall well-being. Because the spine is a complex network of vertebrae, discs, nerves, and…

Read More

Top 10 Corporate Card Management Tools: Features, Pros, Cons & Comparison

Introduction Corporate Card Management Tools are modern financial platforms designed to help businesses issue, control, track, and reconcile company spending through physical and virtual corporate cards. Unlike…

Read More

Top 10 Product Feed Management Tools: Features, Pros, Cons & Comparison

Introduction Product Feed Management Tools are specialized software platforms that help businesses organize, optimize, transform, and distribute product data across multiple online channels such as marketplaces, comparison…

Read More

Top 10 SLA Management Tools: Features, Pros, Cons & Comparison

Introduction Service Level Agreements (SLAs) define the expectations, responsibilities, and performance benchmarks between service providers and customers. SLA Management Tools help organizations track, monitor, measure, and enforce…

Read More
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Skylar Bennett
Skylar Bennett
8 months ago

this is a really useful reference for anyone running .NET on IIS. Youโ€™ve covered all the crucial configuration points: setting the application pool to AlwaysRunning and disabling idle timeโ€‘outs to avoid coldโ€‘starts; tuning queue length and worker processes to handle traffic surges; enabling compression, static/dynamic caching, and HTTP/2/3 to speed up response times; disabling unnecessary IIS modules to minimize overhead; and even configuring request limits, logging, and HTTP.sys kernelโ€‘level optimizations to make the server lean and efficient. By combining these IISโ€‘level tweaks with proper appโ€‘level practices (like asynchronous calls, caching, and efficient routing in .NET), you can significantly reduce latency and improve throughput in production. This kind of holistic approach โ€” infrastructure + platform + code โ€” is exactly what separates a โ€œgood enoughโ€ deployment from a truly highโ€‘performance one. Keep sharing such wellโ€‘structured guidelines!

devopsschool
devopsschool
8 months ago

This checklist makes it clear how much the hosting configuration of Internet Information Services (IIS) matters for a .NET applicationโ€™s real-world performance. By adjusting settings like keeping the application pool โ€œAlwaysRunning,โ€ disabling unnecessary module overhead, enabling HTTP compression and static file caching, and using proper output/kernel caching, one can reduce server load, speed up response times, and avoid common issues like startup delays or 503 errors. The emphasis on fine-tuning connection limits, request filtering, and logging also shows that performance isnโ€™t just about code โ€” server-side tuning plays a huge role. Overall, this is a practical and comprehensive guide worth bookmarking for any ASP.NET/IIS deployment.

2
0
Would love your thoughts, please comment.x
()
x