Forum

Windows server 2022...
 
Bildirimler
Hepsini Temizle

Windows server 2022 IIS

8 Yazılar
3 Üyeler
1 Reactions
208 Görüntüleme
(@mertkibar)
Gönderiler: 860
Noble Member
Konu başlatıcı
 

İyi günler, bir çözemediğim bir sorunu sizinle paylaşmak istiyorum. IIS web server üzerinde asp.net ve php tabanlı web siteleri yayınlamaktayım. Websitelerim daha önce windows server 2019 üzerinde çalışıyordu, windows server 2022'e taşındı. Taşıma sonrasında web sitelerin ilk açılışları çok uzun sürüyor, iis pool de 5dk boş kalırsa havuzu kapat ayarladım. Tekrar web sitesi açıldığında ilk açılış uzun sürüyor.. IIS Pool Managed Pipeline Modu integrated ayarlıydı. Bugün siteleri classic moda çekince, sitelerin ilk açılış hızları inanılmaz hızlandı. 

Sorunun Pipeline Modu integrated seçiliyken neden yavaş açılıyor. Bilgisi olanlar cevaplarsa sevinirim.

 
Gönderildi : 24/04/2025 23:07

ibrahim yildiz
(@ibrahimyildiz)
Gönderiler: 4778
Co-Helper
 

Bilgim yok, ilgilendiğim bir alan değil ama 2022 dokümantasyonunda değişenleri yüzeysel okumuştum. Bence OS ve IIS doc.una odaklanın core temelinde değişiklikler olabilir, yazdıklarınız da bunu canlandırıyor kafada, uzun vade de OS güncellemelerinde bu tür şeyler oluyor.
Kodlayıcı siz değilseniz aslında sizin işiniz değil, onların okuyup bulması varsa güncellemesi gerekli ama öyle insan az bazen bulup bakın değişiklikler şurada yazıyor ona göre analiz edin diye zorlamak gerekiyor dünyalıyı.
Mesela yeni, temiz yazılmış bir php de sorun yoksa, sorun sizin sisteminiz kaynaklı değildir, malumunuz.
Umarım konuya odaklı deneyim etmiş biri çıkar. 

'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 25/04/2025 13:56

(@mertkibar)
Gönderiler: 860
Noble Member
Konu başlatıcı
 

İbrahim bey verdiğiniz cevap için teşekkür ederim. Denemek için sıfırdan wordpress son sürümünü kurdum.. Web sitesinin çalıştığı IIS Poolde Managed Pipeline Modu integrated da iken web sitesinin ilk açılış süreleri uzun sürüyor web site açıldıktan sonra hızlanıyor. belli bir süre tekrar web sitene girmeye çalışınca tekrar ilk açılış yavaşlıyor. integrated modu classic yapınca, ilk açılış da daha sonradan girişlerde hızlı bir şekilde açılıyor.  Sormak istediğim konu server 2019 de web siteleri integrated modunda çalışıyordu sorun yoktu, siteleri server 2022 ye taşıdım ve orada da integrated modunu aktif ettim, böyle sorunlar yaşanıyor.  Belki bu konuda bilgisi olan arkadaşlar olur diye danışmak istedim.

 
Gönderildi : 25/04/2025 14:14

ibrahim yildiz
(@ibrahimyildiz)
Gönderiler: 4778
Co-Helper
 

Integrated vs Classic Pipeline Mode

Integrated Mode (Server 2022'de)

  • ASP.NET ve IIS bileşenlerini tek bir işlem hattında birleştirir.

  • Modern .NET uygulamaları için idealdir.

  • Ancak: PHP uygulamaları bu modda beklenmedik davranışlar sergileyebilir çünkü PHP, ASP.NET pipeline’ına tam entegre değildir.

Classic Mode

  • ASP.NET requestlerini ayrı bir işlem hattında işler.

  • PHP gibi non-.NET uygulamalarla daha uyumlu çalışır.

  • Bu nedenle ilk açılış süresi ve response time daha iyi olabilir.


🎯 Sorunun Temel Sebebi

  • Integrated mode altında, iisexpress veya FastCGI aracılığıyla çalışan PHP, request pipeline’ın ilk yüklenmesinde bekleme yaratabiliyor.

  • Özellikle IIS üzerinde çalışan PHP (örneğin WordPress) için:

    • First request (ilk istek) sırasında PHP engine ve PHP modül ilk defa ayağa kalkıyor.

    • Bu işlem memory'den temizlendiyse veya pool idle timeout’a düştüyse, tekrar yükleniyor → yavaş açılış.


🧪 Neden Server 2019’da Sorun Yoktu?

Server 2019 üzerindeki FastCGI modül veya PHP sürümü konfigürasyonu muhtemelen daha farklıydı:

  • Idle timeout, pool recycling gibi ayarlar farklı olabilir.

  • 2022’de gelen FastCGI veya IIS update'leri bu davranışı etkiliyor olabilir.


🔧 Çözüm Önerileri

1. Application Pool Idle Timeout Ayarı

  • Varsayılan: 20 dakika

  • Eğer pool kendini kapatıyorsa her açılışta yüklenme yavaş olur.

    • IIS Manager > Application Pools > Pool’a sağ tık > Advanced Settings:

      • Idle Time-out (minutes)0 yaparak kapanmayı engelleyin.

      • Veya 30-60 dakikaya çıkarın.

2. AlwaysRunning & Auto-Start Ayarları

  • Application Pool:

    • Start ModeAlwaysRunning

  • Application Settings:

    • Preload EnabledTrue

Bu ayarlar ile Application Pool durmaz ve ısınmış halde bekler.

3. FastCGI Ayarlarını Kontrol Edin

IIS Manager > FastCGI Settings > PHP versiyonuna sağ tık > Edit:

  • InstanceMaxRequests10000

  • Activity Timeout / Request Timeout600 gibi yüksek değer verin

  • IdleTimeout300 veya daha fazla yapın

4. PHP OPcache Ayarları

php.ini içinde OPcache aktif mi?

ini
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

OPcache yoksa her sayfa tekrar derlenir ve açılış yavaşlar.


🔁 Classic Mode'da Daha İyi Performans Almanızın Nedeni

Classic Mode, ASP.NET pipeline’ına PHP’yi sokmadan, daha doğrudan işlem yapar. Bu nedenle özellikle PHP tabanlı web uygulamaları (WordPress gibi) için genellikle daha stabildir.


✅ Öneri

Eğer sadece WordPress gibi PHP tabanlı siteler barındırıyorsanız, Classic modunu kullanmak daha sağlıklı ve performanslı olacaktır.
ASP.NET uygulamaları için ayrı pool’larda Integrated modunu yine kullanabilirsiniz.

'balık vermez, nasıl tutulabildiğine yönlendirir'
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız. Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz. Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 25/04/2025 18:14

(@mertkibar)
Gönderiler: 860
Noble Member
Konu başlatıcı
 

İbrahim bey yardımlarınız için teşekkür ederim, aydınlatıcı bir yazı olmuş...

 
Gönderildi : 25/04/2025 20:06

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33584
Illustrious Member Yönetici
 

Merhaba, IIS üzerinde kullanılan pipeline mode temel olarak aslında sizin yazılımınız ile ilgili bir durumdur. Yani yazılımı geliştiren dev arkadaşlara biz bunu sorarız, ona göre site tanımlar ve teslim ederiz (Büyük kurumlarda yetki ayrılığı olduğu için IIS' i full managed edemezler veya etmezler, infra ekibinden isterler). Özetle infra ekibi aslında pipeline mode için yorum yapmaz. Ancak anladığım kadarı ile burada hem yazılımı siz yapmadınız hem de böyle bir ayrım yok. O zaman öncelikle kullandığınız yazılım için en uygun pipeline mode' hangisi onu öğrenmeniz gerekli.

Ama bilenen fark şu, classic mode, eski nesil yazılımlar içindir, integrated mode ise yeni nesil yazılımlar içindir. Özetle eğer eski sistem integrated mode' da çalışıyor ise onu bir daha classic mode' a çevirmeniz tavsiye edilen bir yöntem değildir.

Bu sorunu anlamak için biraz yazılım bilmek ve debug log açmak veya yazılım bilmiyorsanız örnek fiddler gibi bir ürün ile gecikmenin nedenini kontrol edebilirsiniz. Sonuçta OS versiyonunda da TLS başta güncellemeler olduğu için konu bir güvenlik sorgulaması da olabilir. Ayrıca sizin uygulama örnek .net 4.5 için uygun ancak güncel OS 4.8 ve üstü çalışıyor ise, burada ek güvenlik özellikleri var, bu nedenle aslında integrated olarak çalışan bu uygulama yeni OS ve .net sürümü ile gelen "security tightening" başlığına takılıyor olabilir. Bu nedenle klasik pipeline' a çekince desteği olduğu için yine çalışıyordur ve daha hızlı çalışması klasik pipeline' ın daha basit, korumasız bir mekanizma olmasından kaynaklıdır.

Özetle bu işin çözümü yazılımcıda bitiyor, her bir soru için debug açtırır ise örneğin kod' un memory random işlemine mi takıldığına kadar detay görebilir. Eğer yazılımcınız yok veya bu yazılımı geliştiren ortada değil ise bir uzmana danışabilir veya uzman da yok ise Azure Appin veya dynatrace ve benzeri APM ürünlerinin demoları ile bu bilgiyi alabilirsiniz.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 27/04/2025 14:27

(@mertkibar)
Gönderiler: 860
Noble Member
Konu başlatıcı
 

Hakan bey, verdiğiniz bilgiler için teşekkür ederim. Anlattıklarınızdan bazı fikirler oluştu.

 
Gönderildi : 29/04/2025 21:59

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33584
Illustrious Member Yönetici
 

Rica ederim, iyi çalışmalar.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 30/04/2025 00:35

Paylaş: