2011-01-21 102 views
2

我想知道是否修改machine.config中的processModel將對IIS快速集成模式應用程序有任何影響?machine.config和processmodel與IIS快遞

我試圖將maxWorkerThreads修改爲至少100,因爲我使用WCAT比較了正常的IIS與IIS Express在Windows 7上的對比情況,看看scott是否正確,他說IIS express沒有連接限制。

儘管IIS express顯示30個以上的請求在正常的IIS限制10的同時執行,但兩者之間每秒的實際總請求數相差無幾,IIS Express有更高的CPU使用率,平均70個請求排隊與0請求正在等待正常的IIS!在四核i7上,CPU只有70%左右。當然還有優化的空間嗎?

額外的細節

我已經上傳在Windows 7上,同一個腳本運行WCAT成果, http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zip

  1. IIS Express有輕微每秒更高的要求,而且比正常的IIS服務的交易總額。
  2. IIS Express一次最多可執行50個請求,而Windows 7上的正常IIS限制爲10個。
  3. IIS express使用的CPU高出30%,可能是因爲它一次處理額外的請求。
  4. 但平均而言,快遞請求需要花費很多需要更長時間才能完成。請參閱請求執行時間性能計數器和時間分析(第一個字節和最後一個字節)。 Express在所有服務請求中只能擊敗IIS,因爲它一次可以處理更多請求!

理論

  1. 能的事實,IIS快車正在打印的每個請求命令行窗口即使跟蹤設置無被減緩下來。

  2. 我還注意到在IIS express application.config中沒有註冊的IIS express applicationhost.config中註冊了很多附加模塊。那麼額外的調試/追蹤模塊會導致問題。

  3. 我注意到IIS Express沒有FileCache和HTTPCache模塊。那可能是爲什麼?

我希望asp.net專家可以澄清如何這些結果是可能的,如果IIS快遞不受限制。

回答

4

Machine.config設置適用於在IISExpress中運行的asp.net應用程序。只要確保你匹配的.NET版本和位數(iisexpress僅在32位模式運行,這樣的

  • %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
  • %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config 是正確的基礎上,CLR版本的文件。不要編輯一個在Framework64目錄中

IIS Express不會限制連接,但可能會受到操作系統本身的某些限制。表現不是iis express的重中之重。 IIS Express不會故意抑制執行,但不會完全利用CPU。 您的性能開銷觀察很有趣。我將探討可能導致它的原因。您是否嘗試在循環中運行單線程客戶端應用程序以查看IIS與IIS Express進行比較的方式。

+0

非常感謝您的回覆。我看到你是一名IIS專家,請查看其他詳細信息。我想你會發現WCAT的結果非常有趣。應用程序使用.NET 2.0集成應用程序池在IIS和Express上運行。也許IIS express會增加額外的模塊或額外的調試開銷。但基於上述結果表明,個人網絡服務器實際上可能比windows 7下的IIS差得多,尤其是對於少數客戶端。 – Tuviah

+0

需要特別說明的是,IIS 8/10 Express具有32和64兩種版本,並且它們使用.NET 4的machine.config。 –