2009-10-20 28 views

Trả lời

169

Có, đặt giá trị thời gian chờ không hoạt động về 0 sẽ tắt thời gian chờ không hoạt động.

Nhưng kỳ lạ này không được ghi nhận trong các tài liệu MS nhưng bằng chứng của tôi cho điều này phát sinh từ:

  • IIS Cài đặt Schema

    Nếu bạn có một cái nhìn tại các schema thiết lập IIS trong:

    C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml

    định nghĩa schema cho idleTimeout dưới

    <sectionSchema name="system.applicationHost/applicationPools">

    nó trông giống như:

    <attribute name="idleTimeout" 
         type="timeSpan" 
         defaultValue="00:20:00" 
         validationType="timeSpanRange" 
         validationParameter="0,2592000,60"/> 
    

    Nếu bạn nhìn vào các thuộc tính validationParameter chúng ta thấy một loạt các 0-2.592.000 giây (các ,60 quy định cụ thể chi tiết của các thiết lập, trong trường hợp này giá trị phải chia hết cho 60 [một phút]).

    Nếu bạn thấy giá trị cho phép bắt đầu là 0 thì điều đó thường cho biết bạn có thể tắt cài đặt này.

  • IIS7 Application Pool Idle Time-out Settings

    Brad Kingsley là người sáng lập kiêm CEO của OrcsWeb là ai một khá nổi tiếng, tôn trọng và tin cậy Microsoft hoster và Đối tác Vàng.

  • Sau đó, cũng có bằng chứng thực nghiệm về thực tế là "chỉ hoạt động".

+1

@pure - vui lòng xem câu trả lời cập nhật của tôi. – Kev

+3

một headup cho người khác - sau khi đọc này, tôi đặt thời gian chờ nhàn rỗi của tôi là 0 trên IIS7 và nó bắt đầu thời gian ra ngay lập tức - mỗi lần tải trang mất 15 giây hoặc lâu hơn. Bây giờ tôi đã nâng nó lên 600 và mọi thứ lại nhanh chóng trở lại. – nailitdown

+1

@nailitdown: Bạn có thể muốn kiểm tra lại điều đó. Tôi chỉ cần thiết lập thời gian chờ của ứng dụng IIS6 là 0 và nó hoạt động tốt. Có một cơ hội khác nhau giữa IIS7/IIS6, mà sẽ là tốt để biết. –

8

Câu trả lời hay! cảm ơn Kev!

Một bản cập nhật nhỏ: URL mà bạn gửi đã chuyển và nó bây giờ là: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

Tôi đã tự hỏi nếu có một lý do tại sao điều này không phải là mặc định, và nếu có thể có một tác động hiệu quả để giữ hồ bơi ứng dụng mở quá lâu. Vâng, giữ nó lên khi nó nhàn rỗi sẽ không gây ra cho bạn nhiều rắc rối hơn không tái chế nó khi có giao thông và không có thời gian nhàn rỗi. Nếu bạn lo lắng về rò rỉ bộ nhớ hoặc rò rỉ tài nguyên khác, có một cài đặt cho việc buộc tái chế dựa trên thời gian/số lượng yêu cầu kể từ lần tái sử dụng/bộ nhớ cuối cùng. Dưới đây là tài liệu cho nó:

http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx

tôi sẽ thiết lập máy chủ của tôi không có rác trên nhàn rỗi (idleTimeout = 0), và tái chế mỗi 24 giờ: Tái chế> Regular Time Interval = 1440

+13

Có thể bạn nên đặt chế độ tái chế của mình thành thời gian cố định (ví dụ: 0100) thay vì 24 giờ vì điều đó sẽ dẫn đến 24 giờ kể từ lần khởi động lại máy chủ/iis cuối cùng. – Neal

0
Import-Module WebAdministration 

$pools = Get-ChildItem iis:\apppools 

foreach ($pool in $pools) 
{ 
$poolname = $pool.Name 

Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeout="20"} 
Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeoutaction="Suspend"} 
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart -Value @{time="0"} 
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart.schedule -Value @{value="02:00:00"} 
Set-ItemProperty IIS:\AppPools\$poolname -name Recycling -value @{logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"} 

Write-Host "Updated $poolname settings" 
} 
+1

Giải thích về mã được dán này sẽ hữu ích. –

Các vấn đề liên quan