วิธีการปิดการใช้งานการหมดเวลาใช้งานพูลโปรแกรมประยุกต์ใน IIS7


146

มันจะถูกปิดใช้งานหรือไม่หากฉันตั้งค่าการหมดเวลาที่ไม่ได้ใช้งานเป็น 0

คำตอบ:


184

ใช่การตั้งค่าการหมดเวลาที่ไม่ใช้งานเป็นศูนย์จะปิดใช้งานการหมดเวลาที่ไม่ได้ใช้งาน

นี่ไม่ใช่เอกสารในเอกสาร MS แต่หลักฐานของฉันเกี่ยวกับสิ่งนี้เกิดขึ้นจาก:

  • โครงสร้างการตั้งค่า IIS

    หากคุณดูที่สกีมาการตั้งค่า IIS ใน:

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

    คำจำกัดความสคีมาสำหรับidleTimeoutภายใต้

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

    ดูเหมือนว่า:

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

    หากคุณดูที่แอvalidationParameterททริบิวเราจะเห็นช่วง 0 ถึง 2592000 วินาที (การ,60ระบุความละเอียดของการตั้งค่าในกรณีนี้ค่าจะต้องหารด้วย 60 [หนึ่งนาที])

    หากคุณเห็นค่าเริ่มต้นที่อนุญาตจาก0นั้นมักจะแสดงว่าการตั้งค่าสามารถปิดการใช้งาน

  • การตั้งค่าการหมดเวลา Idle แอปพลิเคชัน IIS7

    แบรดคิงสลีย์เป็นผู้ก่อตั้งและซีอีโอของ OrcsWeb ซึ่งเป็น Microsoft hoster และ Gold Partner ที่รู้จักกันดีเป็นที่รู้จักและน่าเชื่อถือ

  • จากนั้นก็มีหลักฐานเชิงประจักษ์เกี่ยวกับความจริงที่ว่า "ใช้งานได้"


3
headsup ให้ผู้อื่น - หลังจากอ่านสิ่งนี้ฉันตั้งค่าการหมดเวลาใช้งานของฉันเป็น 0 ใน IIS7 และมันเริ่มหมดเวลาทันที - การโหลดหน้าเว็บทุกครั้งใช้เวลา 15 วินาทีหรือมากกว่านั้น ตอนนี้ฉันเพิ่มไปที่ 600 และทุกอย่างเร็วขึ้นอย่างเห็นได้ชัด
nailitdown

1
@ thumbnailitdown: คุณอาจต้องการตรวจสอบอีกครั้ง ฉันเพิ่งตั้งค่าการหมดเวลาแอพ IIS6 เป็น 0 และใช้งานได้ มีโอกาสแตกต่างกันระหว่าง IIS7 / IIS6 ซึ่งน่าจะดี
Doug S

3
เนื่องจากฉันโพสต์ว่าเรามีปัญหาหลายอย่างกับ VPS ที่ฉันทำงานด้วย ... มีโอกาสมากที่มันถูกกำหนดค่าผิดพลาดอย่างใด ฉันพยายามทำซ้ำใน VPS ใหม่และทำงานได้อย่างถูกต้องตามที่อธิบายไว้
nailitdown

3
@ Zero3 - ดี .... ก่อนที่จะเปลี่ยนการตั้งค่าใด ๆบนไซต์ที่มีปริมาณการใช้งานสูงคุณควรทดสอบผลข้างเคียงและอื่น ๆ บนสภาพแวดล้อม staging / QA ของคุณเสมอ นอกจากนี้ในช่วงเวลาที่คุณใช้การเปลี่ยนแปลงกับสภาพแวดล้อมการผลิตของคุณคุณควรจะสร้างหน้าการบำรุงรักษาสำหรับผู้ใช้ที่ต้องเผชิญกับสาธารณะจนกว่าจะถึงเวลาที่การเปลี่ยนแปลงจะมีผล คุณต้องจัดการการเปลี่ยนแปลงเหล่านี้เพื่อไม่ให้ประหลาดใจ
Kev

2
@ Zero3 - ใช่การเปลี่ยนการตั้งค่าแอพพูมากมายต้องเริ่มต้นกระบวนการใหม่เพื่อให้มีผลซึ่งโดยค่าเริ่มต้นจะเกิดขึ้นทันที คุณสามารถเปลี่ยนแปลงสิ่งนี้ได้ด้วย DisallowRotationOnConfigChange - ดูserverfault.com/questions/333907/…สำหรับข้อมูลเพิ่มเติม
TristanK

11

คำตอบที่ดี! ขอบคุณ Kev!

อัปเดตขนาดเล็ก: URL ที่คุณโพสต์ได้ย้ายไปแล้วและตอนนี้: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

ฉันสงสัยว่ามีสาเหตุว่าทำไมนี่ไม่ใช่ค่าเริ่มต้นและหากอาจมีผลกระทบต่อประสิทธิภาพในการเปิดพูลแอพพลิเคชั่นนานเกินไป การรักษาเมื่อไม่ได้ใช้งานจะไม่ทำให้คุณมีปัญหามากกว่าการรีไซเคิลเมื่อมีการใช้งานและไม่มีเวลาว่าง หากคุณกังวลเกี่ยวกับการรั่วไหลของหน่วยความจำหรือการรั่วไหลของทรัพยากรอื่น ๆ มีการตั้งค่าสำหรับการบังคับให้รีไซเคิลตามเวลา / จำนวนการร้องขอตั้งแต่การรีไซเคิล / การใช้หน่วยความจำครั้งล่าสุด นี่คือเอกสารสำหรับมัน:

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

ฉันจะตั้งเซิร์ฟเวอร์ของฉันให้ไม่มีการรีไซเคิลบน idle (idleTimeout = 0) และรีไซเคิลทุก 24 ชั่วโมง: การรีไซเคิล> ช่วงเวลาปกติ = 1440


15
คุณควรแนะนำให้ตั้งค่าการรีไซเคิลเป็นเวลาที่กำหนด (เช่น 0100) มากกว่า 24 ชั่วโมงซึ่งจะส่งผลใน 24 ชั่วโมงนับตั้งแต่การรีสตาร์ทเซิร์ฟเวอร์ครั้งล่าสุด / การรีเซ็ต iis
Neal

1
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" 
}

6
คำอธิบายของรหัสที่วางนี้จะเป็นประโยชน์
Luke Alderton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.