IIS alt işlemi neden her 24 saatte bir değil, her 29 saatte bir geri dönüşüm yapıyor?


24

IIS'de bir site kurduğunuzda, çalışan işlemlerin her 1740 dakikada bir (29 saatte) geri dönüştürülmesi varsayılandır. Neden 24 saat gibi bir rakam, örneğin 24 saat veya 48 saat değil?

Yanıtlar:


27

Tech Ed 2003'te, sunum yapan kişiye bu soru soruldu ve cevap, günlük sınırda (örneğin sunucuda / alanda planlanan diğer günlük görevlerden ayırt etmek için) oluşmasını engellemek için düzensiz bir döngü istemeleriydi.

Buradaki site (Link dead) spekülasyonu:

... (29) 24'ten sonraki ilk asal sayıdır, başka bir sunucu işleminde düzenli bir şekilde meydana gelebilecek en az şansı elde etmesine izin verir; sorunların araştırılmasını kolaylaştırmak

Bunu onaylamak için başka bir site görünüyor:

( Wade Hilmo ) basit bir nedenden dolayı 29 saat önerdi. Bu, 24 yaşın üzerindeki en küçük asal sayı.


İlginç. Şahsen, her gün aynı saatte bir şeyin tekrarlanmasının, çalışan işlem geri dönüşümünün başka sorunlara neden olup olmadığını izlemeyi kolaylaştıracağını düşünüyorum. Örneğin, yaklaşık olarak her gün olan bir sorunun izini sürmek zordur, ancak her gün saat 19: 00'da gerçekleşmesi daha kolaydır, çünkü sistemi o anda gerçekleşen olaylar için arayabilirsiniz. IIS'yi istediğiniz zaman veya hiç olmasa da geri dönüşecek şekilde ayarlayabileceğinizi biliyorum, ancak çoğu varsayılan olarak bırakıyor. Cevap için teşekkürler!
Guy

18

Tamam, bu beni rahatsız ediyordu, bu yüzden etrafa baktım ve sonunda bu yazıyı IIS ekibinde olan bir adamdan buldum :

IIS6'nın varsayılan olarak her 29 saatte bir geri dönüşüm nedeni (ve bir nedenimiz vardı)

IIS6'nın varsayılan olarak her 29 saatte bir geri dönüşüm yapmasının nedeni (ve varsayılan değer olarak 29 saat seçmek için bir nedenimiz vardı), olduğundan daha büyük olasılıkla, üzerinde çalışan web uygulamasının güvenilmez olması ve kelimenin tam anlamıyla yeniden başlatılması gerektiğinden kaynaklanmaktadır.

Böylece, IIS6, kullanıcının web uygulamasının 24 bitişik saatten daha fazla çalışmayacağı, özelliklerin uygun şekilde planlandığı ve varsayılanların seçilmediği öncülünde (kuşkusuzca alaycı) inşa edilmiştir. İşçi işlemleri her 29 saatte bir geri dönüşüm yapar, işlem başlatma ve kapatma izlenir, işlemin çalıştığından emin olmak için işlem sürekli olarak devam eder, işlem işleyicisi izlenir ve beklenmedik bir şekilde sona erdiğinde vb.

Geri dönüşümün işlemlerin normal bir parçası olduğunun farkına varan IIS6, aynı zamanda geri dönüşümün son kullanıcıdan izole edilmesini de sağlar - son kullanıcının TCP bağlantısı, bir çekirdek modu sihri nedeniyle bir geri dönüşüm sırasında asla sonlanmaz. Oturum dışı işlemlerin depolandığı kullanıcı modu uygulamasıyla (ASP.Net Session State Service gibi) birlikte kullanıldığında, web uygulaması her biri işledikten sonra çökse bile, kullanıcı tarafından görülebilen hiçbir veri kaybı olmadan güvenilir çalışma süresi neredeyse garanti edilir Kullanıcı isteği.

Bu, IIS6'nın yapabileceği kadar iyidir - güvenilir olmayan bir web uygulaması verildiğinde, son kullanıcıya güvenilir görünmesini sağlar ve güvenilir olmayan web uygulamasında herhangi bir düzeltme gerektirmeden bunu gerçekleştirir.

Tabii ki, güvenilir olmayan tüm uygulamalar güvenilir görünmek için yapılamaz - eğer öyleyse, işimiz bitti! - ama IIS6 kesinlikle dirençli olmak için daha fazlasını deniyor.

Sizin durumunuzda, direncin kalıcı olmayan kullanıcı durumu üzerinde yan bir etkisi olduğu ortaya çıkar, ancak kolayca ayarlanabilir.

Web uygulamanızın hiçbir zaman bir problemi olmadığını ve süreç içi oturumda kaldığını varsayarsak, bu varsayılanları değiştirmek isteyeceksiniz: 1. 29 saatlik periyodik geri dönüşümü kapatın 2. 20 dakikalık boşta kalma zaman aşımını kapatın

Bu, beklenmeyen oturum durumu kaybını önleyecektir.

Elbette, işlem dışı oturum durumu olan bir uygulamayı kullanırsanız, her şeyi varsayılan olarak bırakabilir ve işlevsellikte ya da güvenilirlikte bir fark görmezsiniz.


1
Bunu sormakta sakınca hissediyorum ama eğer IIS web uygulamasının 24 saate yetmediğini varsayarsa, 29 nasıl iyi bir seçim oldu? 24'ün altında bir rakam seçmemişler miydi? Bu açıklamayı yorumlamada nerede yanlışım?
Alpha

Belki de varsayılan değer için "en iyi" bir cevap yoktur ve web sitesini yöneten kişi uygulamaya ve sisteme göre bilinçli bir karar vermelidir.
DOK

@ Alfa - Katılıyorum - Bu mantıklı değil - varsayılan 22 veya 23 saat veya en azından 24'ten düşük bir şey olmalıdır
Guy

[kaynak belirtilmeli]
piers7

Her sabah web sitesinin bazı bölümlerinde garip bir derleme hatası alıyorum, ancak geri dönüşümle düzeltilebiliyor. Tahminime göre, Boşta Kalma Zaman Aşımı, düşük yük nedeniyle bir gecede tetikleniyor ve bazı nedenlerden dolayı tekrar başlatıldığında derleme hatası geri dönüyor.
Lideriniz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.