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 a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at <a href="https://www.cotocus.com/">Cotocus</a>. I share tech blog at <a href="https://www.devopsschool.com/">DevOps School</a>, travel stories at <a href="https://www.holidaylandmark.com/">Holiday Landmark</a>, stock market tips at <a href="https://www.stocksmantra.in/">Stocks Mantra</a>, health and fitness guidance at <a href="https://www.mymedicplus.com/">My Medic Plus</a>, product reviews at <a href="https://www.truereviewnow.com/">TrueReviewNow</a> , and SEO strategies at <a href="https://www.wizbrand.com/">Wizbrand.</a> Do you want to learn <a href="https://www.quantumuting.com/">Quantum Computing</a>? <strong>Please find my social handles as below;</strong> <a href="https://www.rajeshkumar.xyz/">Rajesh Kumar Personal Website</a> <a href="https://www.youtube.com/TheDevOpsSchool">Rajesh Kumar at YOUTUBE</a> <a href="https://www.instagram.com/rajeshkumarin">Rajesh Kumar at INSTAGRAM</a> <a href="https://x.com/RajeshKumarIn">Rajesh Kumar at X</a> <a href="https://www.facebook.com/RajeshKumarLog">Rajesh Kumar at FACEBOOK</a> <a href="https://www.linkedin.com/in/rajeshkumarin/">Rajesh Kumar at LINKEDIN</a> <a href="https://www.wizbrand.com/rajeshkumar">Rajesh Kumar at WIZBRAND</a> <a href="https://www.rajeshkumar.xyz/dailylogs">Rajesh Kumar DailyLogs</a>

Related Posts

What Technologies Empower AI Wearables, Wearable AI Devices, Personal AI Devices, AI Companion Devices?

What Technologies Empower AI Wearables, Wearable AI Devices, Personal AI Devices, AI Companion Devices, Ambient Computing Devices, Lifelogging Devices, and Memory Augmentation Devices? Introduction AI-powered devices are…

Read More

AI-Assisted Observability: Turning Logs into Actionable Insights

Introduction There is a specific kind of dread that every on-call engineer knows. It is 2:47 AM. Your phone is screaming. Latency on the checkout service has…

Read More

Medical Tourism Made Simple: A Complete Guide to Finding Global Healthcare

When you or a loved one faces a health challenge, the world suddenly feels very small and very complicated. You are often left with urgent questions: Which…

Read More

Take Control of Your Health: The Ultimate Guide to Transparent Healthcare

The journey to finding the right medical treatment can often feel overwhelming. Whether you are dealing with a sudden illness or planning a complex elective surgery, the…

Read More

Top 10 Construction Estimating Software: Features, Pros, Cons & Comparison

Introduction Construction estimating software is a specialized digital solution designed to help contractors, builders, and construction professionals accurately calculate project costs before work begins. These tools bring…

Read More

Top 10 IT Financial Management Tools: Features, Pros, Cons & Comparison

Introduction IT Financial Management (ITFM) tools help organizations plan, track, optimize, and govern IT spending with the same rigor used in core finance operations. As IT environments…

Read More
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Skylar Bennett
Skylar Bennett
6 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
6 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