1740 Dakika Kaç Saattir?

Application pool, IIS 6.0 ile birlikte gelen bir kavramdır. IIS 6.0 içinde yarattığınız web siteleri için ayrı application pool’lar tanımlayabilir ya da birden fazla web sitesini aynı application pool içinde çalıştırabilirsiniz. Çok kabaca, eğer iki web siteniz ayrı application pool’lar içinde çalışıyorsa, sitelerden bir tanesinde yaşayacağınız bir problemden, application pool’lar ayrı olduğu için diğer site etkilenmeyecektir. Bu tanımlamaya göre, application pool’ları, web sitelerini birbirlerinden izole çalışmak için kullanabilirsiniz.

Application pool ayarlarına baktığınız zaman, bazı özellikler göreceksiniz. Bunlardan bir tanesi de application pool’un “recycle” özelliğidir.

“Recycle”, yine çok kabaca, application pool’un yeniden başlatılması gibi düşünülebilinir. Eğer uygulamanızda bir takım problemler yaşıyorsanız ve bu application pool’un memory kullanımı çok yüksek ise, application pool’u recycle ettirmek, application pool’un kullandığı memory miktarının düşürülmesini sağlayacaktır. Tabi ki böyle bir sorun varsa, uygulanızı debug etmek ve sorunun neden kaynaklandığını bulmak çok daha doğru bir yaklaşım olacaktır.

Application pool ayarlarına baktığımız zaman karşımıza gelen ilk ekran “recycling” ekranıdır. Burada, yazıma konu olan “Recycle worker process (in minutes)” ayarından kısaca bahsetmek istiyorum. Default olarak IIS 6.0 içinde burada göreceğiniz değer 1740 dakika olacaktır. Yani, bu application pool, her 1740 dakikada bir recycle edilecektir. Bunun anlamı, 1740 dakikada bir bu application pool’un ilgili olduğu worker process kapatılacak ve yeni bir worker process başlatılacaktır. Ancak, bunun yan etkileri de olacaktır. Örneğin, eğer session’ları inproc, yani application pool memory’sinde tutuyorsanız, bu recycle işlemi sonucunda kullanıcılarınız, session’ları kaybedecektir.

1740 dakika, 29 saattir. Yani default ayar tutulduğu zaman her 29 saatte bir application pool recycle edilecektir. Basit bir hesap yaparsak, gece 00:00’da recylce eden application pool, bir sonraki seferde sabah 05:00’te recyle edecektir. Bir sonraki recycle, sabah 10:00’da olacaktır. Bir sonraki recycle ise 15:00’a denk gelecektir. Göreceğiniz gibi, bu default ayarla, recycle eden saatleri, uygulamanızın az kullanıldığı saatler olarak belirleyememiş oluyorsunuz.

Bunu engellemek için, bu seçeneği kaldırıp, bunun yerine application pool’un daha spesifik bir saatte recycle edecek şekilde ayarlayabilirsiniz. Örneğin, “Recycle worker process at the following times” seçeneğini aktif hale getirip, uygulamanızın en az kullanıldığı bir saatte recycle edilmesini sağlayabilirsiniz. Bu ufak değişiklik, size gelen şikayetleri azaltacaktır.

Geçerli olduğu platformlar:

IIS 6.0
IIS 7.0
IIS 7.5

Kaynaklar:

Configure Application Pool Recycling (IIS 6.0)https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/1eee28e2-b319-4b4e-8267-a8c0aa0dcf36.mspx?mfr=true

How Worker Process Recycling Works (IIS 6.0)
https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/24e3c22e-79a9-4f07-a407-dbd0e7f35432.mspx?mfr=true

--
AMB