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

Ruby on Rails vs Node.js: Performance, Speed, and Scalability Compared

Choosing between Ruby on Rails and Node.js is a common decision when building modern web applications. Both frameworks power large-scale products, but they approach performance, concurrency, and…

Read More

How Zero-Knowledge Coprocessors Are Reshaping Web3 Computation

Developers often hit a brick wall when building decentralized apps. Standard infrastructure just fails to keep up. Clogging a main network with heavy workloads leads to slow…

Read More

5 Top Developer Experience (DevEx) Insight Tools for 2026

Developer experience has evolved from an internal engineering concern into a measurable operational discipline. As software organizations scale across distributed cloud environments, platform engineering initiatives, AI-assisted development…

Read More

Top 10 AI Tools to Automate Repetitive Documents For DevOps Teamsย 

DevOps teams have automated deployingโ€š testingโ€š monitoringโ€š and rolling back changesโ€š but documentation layer automation is a gap that still incurs time costโ€ค Gartner predicts by 2026…

Read More

Customer Loyalty Strategy for SaaS and eCommerce: How to Pick the Right Software

Customer Loyalty Strategy for SaaS and eCommerce: How to Pick the Right Software TL;DR Retaining a customer costs 5 to 25 times less than acquiring a new…

Read More

Top 10 Sales Enablement Tools: Features, Pros, Cons & Comparison

Introduction Sales Enablement Tools are platforms designed to equip sales teams with the right content, insights, training, and data at the right timeโ€”so they can sell more…

Read More
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Skylar Bennett
Skylar Bennett
5 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
5 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