Son doğrulama: Ekim 2026 · Windows Server 2022 test sunucusunda denendi
Hızlı çözüm
IIS app pool recycling ayarı, uygulama havuzunun çalışan işlemini ne zaman yeniden başlatacağını belirler. Varsayılan değer 29 saatte bir olduğu için yeniden başlatma her gün farklı bir saate, çoğu zaman mesai saatine denk gelir. Çözüm, geri dönüşümü trafiğin en az olduğu sabit bir saate almaktır:
03:00 yazın.| Panel | IIS Yöneticisi ya da PowerShell |
|---|---|
| Sistem | Windows Server 2019 ve 2022 (IIS 10) |
| Yetki | Yönetici (Administrator) |
| Narhost ürünü | VDS Sunucu |
Başlamadan önce
IIS her uygulama havuzu için bir çalışan işlem (w3wp.exe) başlatır. Geri dönüşüm, bu işlemin yerine yenisinin başlatılmasıdır; bellek sızıntılarının birikmesini önler. Microsoft’un IIS yapılandırma belgesine göre periyodik geri dönüşümün varsayılan değeri 29 saattir. Test sunucumuzda da varsayılan havuzun değeri 1.05:00:00, yani 1 gün 5 saat olarak okundu.
29 saatlik döngü her gün beş saat kayar: bir gün gece 03:00’te olan geri dönüşüm ertesi gün sabah 08:00’de, bir sonraki gün öğlen olur. Geri dönüşümden sonraki ilk istek uygulamanın yeniden yüklenmesini bekler ve yavaş açılır; bellekte tutulan oturumlar da kaybolur. Kullanıcılar bunu “site arada bir yavaşlıyor, oturum düşüyor” diye anlatır.

Import-Module WebAdministration
(Get-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name recycling.periodicRestart.time).Value
(Get-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name processModel.idleTimeout).Value
Beklenen sonuç: varsayılan kurulumda 1.05:00:00 ve 00:20:00 döner. İkinci değer, istek gelmeyen havuzun 20 dakika sonra kapatılacağını gösterir.
Set-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name recycling.periodicRestart.time -Value "00:00:00"
Set-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name recycling.periodicRestart.schedule -Value @{value="03:00:00"}
Beklenen sonuç: komutlar çıktı vermez. DefaultAppPool yerine kendi havuzunuzun adını yazın.
(Get-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name recycling.periodicRestart.schedule.collection).value
Beklenen sonuç: 03:00:00. Test sunucumuzda değişiklikten sonra periyodik değer 00:00:00, zamanlama 03:00:00 olarak okundu.
Restart-WebAppPool -Name "DefaultAppPool"
Beklenen sonuç: Get-WebAppPoolState -Name "DefaultAppPool" komutu Started döndürür.
Dikkat
Geri dönüşümü tamamen kapatmayın. Sabit bir saat tanımlamadan periyodik değeri sıfırlamak, havuzun hiç yenilenmemesine ve bellek sızıntısı olan uygulamalarda zamanla yavaşlamaya yol açar. Geri dönüşümün ayarları ve diğer tetikleyicileri (bellek sınırı gibi) IIS geri dönüşüm belgesinde anlatılır.
Sonuç
Ertesi gün Olay Görüntüleyicisi → Windows Günlükleri → Sistem altında WAS kaynaklı geri dönüşüm kaydının yalnız tanımladığınız saatte görüldüğünü kontrol edin. Gün içinde geri dönüşüm kaydı yoksa ve kullanıcılar ara ara yavaşlama bildirmiyorsa IIS app pool recycling ayarı doğru çalışıyordur.
Narhost desteği
VDS sunucular yönetimsizdir; IIS ayarları sizin sorumluluğunuzdadır. Sunucu erişiminde sorun yaşıyorsanız talebe sunucu adını, hata iletisini ve yaptığınız son değişikliği ekleyin.
Sonraki adımlar
Varsayılan ayarlarda IIS, eski işlem kapanmadan önce yeni işlemi başlatır; bu yüzden site kesintisiz yanıt vermeye devam eder. Ancak yeni işlem ilk istekte uygulamayı yüklediği için o istek yavaştır ve bellekte tutulan oturumlar kaybolur.
Evet. Belirli zamanlar listesine birden fazla saat ekleyebilirsiniz. Çoğu site için gece tek bir geri dönüşüm yeterlidir; bellek tüketimi hızlı artan uygulamalarda ikinci bir saat eklemek düşünülebilir.
Havuz istek gelmese de bellekte kalır. Az sayıda sitesi olan bir sunucuda bu fark önemsizdir; çok sayıda havuz barındıran sunucuda bellek kullanımını artırır. Kararı sitenin trafiğine ve sunucunun belleğine göre verin.
Bu makale sorununuzu çözdü mü?
Geri bildiriminiz için teşekkürler.
Çözemediniz mi?
Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.