{"id":249,"date":"2025-12-14T22:17:53","date_gmt":"2025-12-14T22:17:53","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/windows-sunucu-ve-iis-ile-yuksek-trafikli-site-rehberi\/"},"modified":"2026-09-10T09:13:16","modified_gmt":"2026-09-10T09:13:16","slug":"windows-sunucu-ve-iis-ile-yuksek-trafikli-site-rehberi","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/windows-sunucu-ve-iis-ile-yuksek-trafikli-site-rehberi\/","title":{"rendered":"Windows Sunucu ve IIS ile Y\u00fcksek Trafikli Site Rehberi"},"content":{"rendered":"<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\"><strong>\u0130\u00e7indekiler<\/strong><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#windows-sunucu-ile-yogun-trafik-altinda-istikrarli-yayin\">Windows sunucu ile yo\u011fun trafik alt\u0131nda istikrarl\u0131 yay\u0131n<\/a><\/li>\n<li><a href=\"#mimariyi-tasarlamak-tek-sunucudan-dagitik-yapiya\">Mimariyi tasarlamak: Tek sunucudan da\u011f\u0131t\u0131k yap\u0131ya<\/a><\/li>\n<li><a href=\"#yuksek-trafikli-senaryolar-icin-temel-iis-yapilandirma-adimlari\">Y\u00fcksek trafikli senaryolar i\u00e7in temel IIS yap\u0131land\u0131rma ad\u0131mlar\u0131<\/a><\/li>\n<li><a href=\"#web-config-ve-makine-duzeyi-ayarlarda-dikkat-edilmesi-gerekenler\">web.config ve makine d\u00fczeyi ayarlarda dikkat edilmesi gerekenler<\/a><\/li>\n<li><a href=\"#windows-hosting-ortaminda-olceklenebilirlik-ve-yuk-dengeleme-stratejileri\">Windows hosting ortam\u0131nda \u00f6l\u00e7eklenebilirlik ve y\u00fck dengeleme stratejileri<\/a><\/li>\n<li><a href=\"#kaynak-kullanimi-izleme-ve-performans-testleri\">Kaynak kullan\u0131m\u0131 izleme ve performans testleri<\/a><\/li>\n<li><a href=\"#guvenlik-patch-yonetimi-ve-felaket-senaryolari\">G\u00fcvenlik, patch y\u00f6netimi ve felaket senaryolar\u0131<\/a><\/li>\n<li><a href=\"#iis-uzerinde-tipik-sorunlar-ve-pratik-cozum-yollari\">IIS \u00fczerinde tipik sorunlar ve pratik \u00e7\u00f6z\u00fcm yollar\u0131<\/a><\/li>\n<li><a href=\"#ornek-konfigurasyon-profilleri\">\u00d6rnek konfig\u00fcrasyon profilleri<\/a><\/li>\n<li><a href=\"#yuksek-trafikli-iis-altyapisini-uzun-vadede-saglikli-tutmak\">Y\u00fcksek trafikli IIS altyap\u0131s\u0131n\u0131 uzun vadede sa\u011fl\u0131kl\u0131 tutmak<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"windows-sunucu-ile-yogun-trafik-altinda-istikrarli-yayin\">Windows sunucu ile yo\u011fun trafik alt\u0131nda istikrarl\u0131 yay\u0131n<\/h2>\n<p>Ger\u00e7ek hayatta y\u00fcksek trafikli site y\u00f6neten herkes bilir; sorun \u00e7o\u011fu zaman koddan de\u011fil altyap\u0131dan patlar. \u00d6zellikle Windows Server 2022 veya Windows Server 2025 \u00fczerinde IIS 10 ile yay\u0131n yap\u0131yorsan\u0131z, birka\u00e7 yanl\u0131\u015f varsay\u0131mla dakikalar i\u00e7inde CPU tavan\u0131, bellek bask\u0131s\u0131, kuyruk dolmas\u0131 ve zaman a\u015f\u0131m\u0131 hatalar\u0131yla u\u011fra\u015fabilirsiniz. Do\u011fru planlanm\u0131\u015f bir IIS yap\u0131land\u0131rmas\u0131 ise ayn\u0131 donan\u0131mda daha fazla iste\u011fi daha \u00f6ng\u00f6r\u00fclebilir bi\u00e7imde kar\u015f\u0131layabilir.<\/p>\n<p>Ben bunu bir kampanya gecesinde ya\u015fayarak \u00f6\u011frendim. Trafik art\u0131nca ilk bakt\u0131\u011f\u0131m\u0131z g\u00f6sterge CPU oldu; as\u0131l sorun ise uygulaman\u0131n veritaban\u0131 ba\u011flant\u0131lar\u0131 serbest b\u0131rak\u0131lmad\u0131\u011f\u0131 i\u00e7in IIS worker process&#8217;lerinin beklemesiydi. CPU&#8217;yu art\u0131rmak yerine ba\u011flant\u0131 havuzunu, istek s\u00fcrelerini ve uygulama loglar\u0131n\u0131 birlikte inceledik. O g\u00fcnden beri tek bir grafi\u011fe bakarak kapasite karar\u0131 vermiyorum.<\/p>\n<p>Burada odak noktas\u0131, \u00fcretim ortam\u0131nda \u00e7al\u0131\u015fan y\u00fcksek trafikli site senaryolar\u0131 olacak. Tek bir blog de\u011fil; kampanya d\u00f6neminde saniyede y\u00fczlerce iste\u011fe \u00e7\u0131kan e-ticaret, yo\u011fun API \u00e7a\u011fr\u0131lar\u0131 veya y\u00fcksek say\u0131da e\u015fzamanl\u0131 oturuma sahip kurumsal uygulamalar gibi bask\u0131 alt\u0131nda kalan sistemlerden bahsediyoruz. T\u00fcm \u00f6rnekler Windows hosting altyap\u0131s\u0131nda, Windows Server + IIS 10 kombinasyonu \u00fczerinden ilerleyecek.<\/p>\n<p>Buradaki ad\u0131mlar\u0131n her biri, g\u00fcn\u00fcn birinde &#8220;neden yava\u015flad\u0131k?&#8221; sorusunu daha az sorman\u0131z\u0131 sa\u011flamak i\u00e7in tasarland\u0131. Ayarlar\u0131 k\u00f6rlemesine uygulamak yerine \u00f6l\u00e7erek ilerleyin.<\/p>\n<h2 id=\"mimariyi-tasarlamak-tek-sunucudan-dagitik-yapiya\">Mimariyi tasarlamak: Tek sunucudan da\u011f\u0131t\u0131k yap\u0131ya<\/h2>\n<p>Performans ayarlar\u0131na girmeden \u00f6nce mimariyi netle\u015ftirmek gerekiyor. Y\u00fcksek trafikli site kavram\u0131, tek bir Windows sunucuyla \u00e7\u00f6z\u00fclemeyecek kadar yo\u011fun olabilir. Bu y\u00fczden \u00f6ncelikle dikey ve yatay \u00f6l\u00e7ekleme se\u00e7eneklerini masaya koymal\u0131s\u0131n\u0131z.<\/p>\n<h3>Donan\u0131m ve kapasite planlama<\/h3>\n<p>\u0130lk soru genelde \u015fu olur: &#8220;Ka\u00e7 CPU, ne kadar RAM yeter?&#8221; Cevap uygulaman\u0131n do\u011fas\u0131na, isteklerin ne kadar\u0131n\u0131n dinamik oldu\u011funa ve veritaban\u0131n\u0131n nerede \u00e7al\u0131\u015ft\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r. IIS taraf\u0131nda CPU \u00e7ekirdek say\u0131s\u0131 e\u015fzamanl\u0131 i\u015f kapasitesini etkiler; RAM ise .NET runtime, dosya \u00f6nbelle\u011fi ve uygulama cache&#8217;i i\u00e7in kritiktir. Ba\u015flang\u0131\u00e7 i\u00e7in kabaca \u015fu yakla\u015f\u0131m kullan\u0131labilir:<\/p>\n<ul>\n<li>Orta trafik, a\u011f\u0131rl\u0131kl\u0131 olarak kurumsal site: 4 vCPU, 8-16 GB RAM<\/li>\n<li>Yo\u011fun e-ticaret veya API: 8 vCPU, 16-32 GB RAM<\/li>\n<li>Dalgal\u0131 kampanya trafi\u011fi veya y\u00fcksek e\u015fzamanl\u0131 API kullan\u0131m\u0131: 16 veya daha fazla vCPU, 32 GB ve \u00fczeri RAM, tercihen birden fazla d\u00fc\u011f\u00fcm<\/li>\n<\/ul>\n<p>Bunlar kapasite garantisi de\u011fil, y\u00fck testi i\u00e7in ba\u015flang\u0131\u00e7 noktalar\u0131d\u0131r. Ayn\u0131 say\u0131da kullan\u0131c\u0131, cache kullanan statik a\u011f\u0131rl\u0131kl\u0131 bir sitede ba\u015fka; her istekte veritaban\u0131na giden bir API&#8217;de bamba\u015fka kaynak t\u00fcketir.<\/p>\n<p>Depolama taraf\u0131nda IOPS de\u011feri ihmal edilmemeli. Log dosyalar\u0131, ge\u00e7ici dosyalar, cache ve statik i\u00e7erikler ayn\u0131 disk \u00fczerinde yar\u0131\u015f\u0131yorsa en g\u00fc\u00e7l\u00fc CPU bile sizi kurtarmaz. M\u00fcmk\u00fcnse uygulama verileri, IIS loglar\u0131 ve yedekleme i\u015f y\u00fck\u00fc i\u00e7in ayr\u0131 disk veya en az\u0131ndan ayr\u0131 depolama politikalar\u0131 planlay\u0131n.<\/p>\n<h3>A\u011f topolojisi ve g\u00fcvenlik katmanlar\u0131<\/h3>\n<p>Y\u00fcksek trafikli site mimarisinde IIS genellikle do\u011frudan internete a\u00e7\u0131lmaz. Tipik olarak \u00f6ne bir ters vekil (reverse proxy), CDN veya y\u00fck dengeleyici gelir; arka tarafta ise bir veya birden fazla Windows sunucu \u00fczerinde IIS worker process&#8217;leri \u00e7al\u0131\u015f\u0131r. Uygulama sunucusunun y\u00f6netim portlar\u0131n\u0131n do\u011frudan d\u0131\u015f d\u00fcnyaya a\u00e7\u0131k olmamas\u0131, g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6zellikle \u00f6nemlidir.<\/p>\n<p>Modern bir bulut veya sanal sunucu altyap\u0131s\u0131 kullan\u0131yorsan\u0131z, \u00f6rne\u011fin <a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS.TC \u00fczerindeki VPS<\/a> ya da <a href=\"https:\/\/www.vps.tc\/tr\/bulut-sunucu\">bulut sunucu<\/a> servisleriyle ayn\u0131 veri merkezinde y\u00fck dengeleyici ve web sunucular\u0131n\u0131 ayr\u0131 makinelerde konumland\u0131rmak pratik hale geliyor. Trafik dalgaland\u0131\u011f\u0131nda ek IIS d\u00fc\u011f\u00fcmleri ekleyebilir, sa\u011fl\u0131k kontrolleriyle sorunlu d\u00fc\u011f\u00fcm\u00fc havuzdan \u00e7\u0131karabilirsiniz.<\/p>\n<h2 id=\"yuksek-trafikli-senaryolar-icin-temel-iis-yapilandirma-adimlari\">Y\u00fcksek trafikli senaryolar i\u00e7in temel IIS yap\u0131land\u0131rma ad\u0131mlar\u0131<\/h2>\n<p>\u015eimdi Windows Server taraf\u0131nda kritik IIS yap\u0131land\u0131rma ba\u015fl\u0131klar\u0131na ge\u00e7elim. Her ayar; cevap s\u00fcresi, hata oran\u0131, CPU kullan\u0131m\u0131, bellek t\u00fcketimi ve kuyruk davran\u0131\u015f\u0131 gibi \u00fcretim metriklerini etkileyebilir. De\u011fi\u015fiklikleri \u00f6nce staging ortam\u0131nda deneyin ve m\u00fcmk\u00fcnse her de\u011fi\u015fiklik i\u00e7in geri d\u00f6n\u00fc\u015f plan\u0131 haz\u0131rlay\u0131n.<\/p>\n<h3>Application Pool mimarisini do\u011fru kurgulamak<\/h3>\n<p>Her y\u00fcksek trafikli site i\u00e7in ilk durak Application Pool ayarlar\u0131d\u0131r. Varsay\u0131lan de\u011ferler k\u00fc\u00e7\u00fck uygulamalarda idare edebilir; ancak \u00fcretimde uygulaman\u0131n a\u00e7\u0131l\u0131\u015f s\u00fcresi, bellek davran\u0131\u015f\u0131 ve oturum modeli birlikte de\u011ferlendirilmelidir. \u015eu ilkeler iyi bir ba\u015flang\u0131\u00e7 sa\u011flar:<\/p>\n<ul>\n<li>Uygulamalar\u0131 mant\u0131kl\u0131 \u015fekilde ayr\u0131 App Pool alt\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131n. A\u011f\u0131r i\u015f yapan API ile statik i\u00e7erik sunan siteyi ayn\u0131 pool alt\u0131nda toplamay\u0131n.<\/li>\n<li>&#8220;Start Automatically&#8221; \u00f6zelli\u011fini a\u00e7\u0131k tutun; sunucu yeniden ba\u015flad\u0131ktan sonra pool otomatik olarak aya\u011fa kalks\u0131n.<\/li>\n<li>&#8220;Idle Time-out&#8221; varsay\u0131lan olarak 20 dakikad\u0131r. S\u00fcrekli trafik alan uygulamalarda 0 ile devre d\u0131\u015f\u0131 b\u0131rakmak so\u011fuk ba\u015flang\u0131c\u0131 azaltabilir; ancak d\u00fc\u015f\u00fck trafikli sitelerde bunun RAM maliyetini ve uygulaman\u0131n kendi ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc hesaba kat\u0131n.<\/li>\n<li>&#8220;Regular Time Interval&#8221; varsay\u0131lan\u0131 olan 29 saatlik recycle davran\u0131\u015f\u0131n\u0131 k\u00f6rlemesine de\u011fi\u015ftirmeyin. Kritik uygulamalarda planl\u0131 recycle gerekiyorsa d\u00fc\u015f\u00fck trafik saatlerini se\u00e7in ve worker process&#8217;in yeniden ba\u015flama s\u00fcresini \u00f6l\u00e7\u00fcn.<\/li>\n<li>&#8220;Private Memory Limit&#8221; ve &#8220;Virtual Memory Limit&#8221; varsay\u0131lan olarak 0, yani s\u0131n\u0131rs\u0131z olabilir. Bellek s\u0131z\u0131nt\u0131s\u0131 kan\u0131t\u0131 yoksa gereksiz d\u00fc\u015f\u00fck e\u015fikler belirlemeyin; limit kullan\u0131yorsan\u0131z recycle olaylar\u0131n\u0131 ayr\u0131ca izleyin.<\/li>\n<li>\u00dcretimde uygulama durumunun process belle\u011fine ba\u011fl\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. In-process session veya cache kullan\u0131l\u0131yorsa recycle s\u0131ras\u0131nda veri kayb\u0131 ve so\u011fuk cache olu\u015fabilir.<\/li>\n<\/ul>\n<p>Bir\u00e7ok ekipte yap\u0131lan hata, memory leak korkusuyla \u00e7ok agresif recycle ayarlar\u0131 yapmakt\u0131r. Bunun sonucu kullan\u0131c\u0131lar\u0131n ortas\u0131nda session kayb\u0131, uzun yan\u0131t s\u00fcreleri ve 503 hatalar\u0131 olabilir. Sorunu saklam\u0131\u015f olursunuz ama \u00e7\u00f6zm\u00fc\u015f olmazs\u0131n\u0131z.<\/p>\n<h3>Worker process ve queue length ayarlar\u0131<\/h3>\n<p>App Pool alt\u0131nda \u00e7al\u0131\u015fan <code>w3wp.exe<\/code> s\u00fcre\u00e7lerinin say\u0131s\u0131 (&#8220;Maximum Worker Processes&#8221; veya web garden) ve HTTP.sys kuyru\u011fu y\u00fcksek trafikte belirleyicidir. \u00c7o\u011fu uygulamada tek worker process daha \u00f6ng\u00f6r\u00fclebilirdir; session, uygulama cache&#8217;i ve ba\u011flant\u0131 havuzlar\u0131 process&#8217;ler aras\u0131nda payla\u015f\u0131lmaz. Web garden ancak uygulaman\u0131z\u0131n \u00e7oklu process davran\u0131\u015f\u0131n\u0131 test ettiyseniz d\u00fc\u015f\u00fcn\u00fclmeli.<\/p>\n<p>Application Pool i\u00e7in Queue Length varsay\u0131lan\u0131 \u00e7o\u011fu IIS kurulumunda 1000&#8217;dir. Bu kuyruk doldu\u011funda 503 hatalar\u0131 g\u00f6rebilirsiniz. De\u011feri 5000 veya 10000&#8217;e y\u00fckseltmek baz\u0131 ani trafik darbelerinde tampon sa\u011flayabilir; fakat i\u015fleme kapasitesi artmaz. Kuyruk neden doluyor, worker process neden bekliyor ve upstream sistem ne kadar s\u00fcrede yan\u0131t veriyor, bunlar\u0131 birlikte izlemek gerekir.<\/p>\n<p>Queue Length de\u011ferini PowerShell ile de\u011fi\u015ftirmek yerine \u00f6nce ilgili pool&#8217;un ad\u0131n\u0131 do\u011frulay\u0131n. \u00d6rne\u011fin:<\/p>\n<pre><code>Import-Module WebAdministration\nSet-ItemProperty \"IIS:AppPoolsUygulamaPoolu\" -Name queueLength -Value 5000<\/code><\/pre>\n<p>Bu sat\u0131rdaki pool ad\u0131 \u00f6rnektir; \u00fcretimde kopyala-yap\u0131\u015ft\u0131r yapmadan \u00f6nce <code>Get-ChildItem IIS:AppPools<\/code> ile ad\u0131 kontrol edin. Kuyru\u011fu b\u00fcy\u00fctmeden \u00f6nce 503.2 ve ilgili WAS olaylar\u0131n\u0131 da inceleyin.<\/p>\n<h3>HTTP s\u0131k\u0131\u015ft\u0131rma ve statik i\u00e7erik optimizasyonu<\/h3>\n<p>Basit g\u00f6r\u00fcnen ama y\u00fcksek kazan\u0131m sa\u011flayan ayarlardan biri HTTP s\u0131k\u0131\u015ft\u0131rma ve statik dosya optimizasyonudur. Y\u00fcksek trafikli site \u00e7o\u011funlukla ayn\u0131 JavaScript, CSS, g\u00f6rsel ve font dosyalar\u0131n\u0131 tekrar tekrar servis eder. IIS \u00fczerinde \u015fu yakla\u015f\u0131m iyi bir ba\u015flang\u0131\u00e7t\u0131r:<\/p>\n<ul>\n<li>Static Content ve Static Compression rollerinin kurulu oldu\u011fundan emin olun. Statik s\u0131k\u0131\u015ft\u0131rma IIS taraf\u0131ndan \u00f6nbelle\u011fe al\u0131nabildi\u011fi i\u00e7in CPU maliyeti dinamik s\u0131k\u0131\u015ft\u0131rmaya g\u00f6re daha \u00f6ng\u00f6r\u00fclebilirdir.<\/li>\n<li>Dynamic Compression&#8217;\u0131 CPU ve yan\u0131t s\u00fcresi birlikte izlenerek a\u00e7\u0131n. Zaten s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f JPEG, WebP, AVIF veya ZIP dosyalar\u0131n\u0131 tekrar s\u0131k\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015fmay\u0131n.<\/li>\n<li>De\u011fi\u015fmez dosyalara uzun s\u00fcreli <code>Cache-Control<\/code> ve uygun <code>Expires<\/code> ba\u015fl\u0131klar\u0131 verin. Dosya adlar\u0131na i\u00e7erik hash&#8217;i eklemek, g\u00fcvenli uzun s\u00fcreli cache kullan\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/li>\n<li>HTTP\/2&#8217;yi TLS ile birlikte test edin. HTTP\/3 ise IIS s\u00fcr\u00fcm\u00fcnden ba\u011f\u0131ms\u0131z olarak i\u015fletim sistemi, TLS, reverse proxy ve a\u011f katmanlar\u0131n\u0131n birlikte desteklemesini gerektirir; destekleniyor varsay\u0131m\u0131yla \u00fcretimde a\u00e7may\u0131n.<\/li>\n<\/ul>\n<p>Bu ayarlar bant geni\u015fli\u011fi t\u00fcketimini azaltabilir ve istemcinin dosyalar\u0131 yeniden istemesini \u00f6nleyebilir. TTFB&#8217;yi milisaniye milisaniye tart\u0131\u015fmadan \u00f6nce cache ba\u015fl\u0131klar\u0131n\u0131n ger\u00e7ekten \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131na bakmak \u00e7o\u011fu zaman daha kazan\u00e7l\u0131d\u0131r.<\/p>\n<h2 id=\"web-config-ve-makine-duzeyi-ayarlarda-dikkat-edilmesi-gerekenler\">web.config ve makine d\u00fczeyi ayarlarda dikkat edilmesi gerekenler<\/h2>\n<p>\u00c7o\u011fu proje, <code>web.config<\/code> i\u00e7ine rastgele eklenen ayarlarla y\u0131llarca ya\u015far. Y\u00fcksek trafik s\u00f6z konusu oldu\u011funda bu dosya performans ve davran\u0131\u015f kontrol\u00fcn\u00fcn bir par\u00e7as\u0131 haline gelir. Her de\u011fi\u015fiklikten \u00f6nce dosyan\u0131n yede\u011fini al\u0131n ve m\u00fcmk\u00fcnse s\u00fcr\u00fcm kontrol\u00fcnde tutun.<\/p>\n<h3>CustomErrors, tracing ve logging davran\u0131\u015flar\u0131<\/h3>\n<p>Geli\u015ftirme s\u00fcrecinde a\u00e7\u0131k duran ayr\u0131nt\u0131l\u0131 hata sayfalar\u0131, tracing mekanizmalar\u0131 ve verbose log ayarlar\u0131 \u00fcretimde gereksiz y\u00fck olu\u015fturabilir. ASP.NET Framework uygulamalar\u0131nda \u015fu pratiklere bak\u0131n:<\/p>\n<ul>\n<li><code>customErrors<\/code> modunu \u00fcretimde genellikle <code>On<\/code>, kontroll\u00fc bir i\u00e7 a\u011f senaryosunda ise <code>RemoteOnly<\/code> yap\u0131n.<\/li>\n<li>ASP.NET Core uygulamalar\u0131nda <code>customErrors<\/code> ayar\u0131 yerine ortam de\u011fi\u015fkenini <code>Production<\/code> olarak belirleyin ve geli\u015ftirici hata sayfas\u0131n\u0131 etkinle\u015ftirmeyin.<\/li>\n<li>Failed Request Tracing ve ayr\u0131nt\u0131l\u0131 tracing&#8217;i yaln\u0131zca belirli bir hata analizi i\u00e7in, k\u0131sa s\u00fcreli a\u00e7\u0131n. Kal\u0131c\u0131 olarak a\u00e7\u0131k b\u0131rak\u0131lan trace loglar\u0131 hem diski hem de uygulamay\u0131 gereksiz yere me\u015fgul eder.<\/li>\n<li>Dosya tabanl\u0131 log kullan\u0131yorsan\u0131z boyut, rotasyon, saklama s\u00fcresi ve disk kotas\u0131n\u0131 belirleyin. Tek bir dosyan\u0131n gigabaytlarca b\u00fcy\u00fcmesini beklemeyin.<\/li>\n<\/ul>\n<p>Bir gece loglar\u0131n ayr\u0131lan diski doldurdu\u011fu bir sistemde uygulama hatas\u0131 sand\u0131\u011f\u0131m\u0131z \u015fey asl\u0131nda yazma i\u015flemlerinin ba\u015far\u0131s\u0131z olmas\u0131yd\u0131. O olaydan sonra log rotasyonunu kurulumun son i\u015fi de\u011fil, ilk kontrollerinden biri olarak g\u00f6r\u00fcyorum.<\/p>\n<p>Loglar\u0131 merkezi sisteme g\u00f6ndermek (ELK, Splunk, Azure Application Insights veya benzeri) \u00e7ok d\u00fc\u011f\u00fcml\u00fc yap\u0131larda aramay\u0131 kolayla\u015ft\u0131r\u0131r. Hangi \u00fcr\u00fcn\u00fc se\u00e7erseniz se\u00e7in, her istekte senkron ve pahal\u0131 bir dosya yazma i\u015flemi yapmay\u0131n; log seviyesini ve ki\u015fisel veri politikas\u0131n\u0131 da ba\u015ftan belirleyin.<\/p>\n<h3>Connection limitleri ve timeout de\u011ferleri<\/h3>\n<p>Y\u00fcksek trafikli bir API veya web uygulamas\u0131nda upstream sistemlere (veritaban\u0131, cache, \u00fc\u00e7\u00fcnc\u00fc parti servisler) a\u00e7\u0131lan ba\u011flant\u0131 say\u0131s\u0131 b\u00fct\u00fcn sistemi kilitleyebilir. <code>web.config<\/code> i\u00e7indeki uygulama ayarlar\u0131n\u0131, connection pool parametrelerini ve HTTP timeout de\u011ferlerini k\u00f6rlemesine y\u00fckseltmek yerine isteklerin nerede bekledi\u011fini \u00f6l\u00e7\u00fcn.<\/p>\n<p>\u00d6rne\u011fin SQL Server connection pool ayarlar\u0131n\u0131 optimize etmek IIS taraf\u0131ndaki thread starvation sorunlar\u0131n\u0131 azaltabilir. Fakat her iste\u011fin uzun s\u00fcren bir veritaban\u0131 \u00e7a\u011fr\u0131s\u0131nda bekledi\u011fi senaryoda IIS ayarlar\u0131n\u0131n etkisi s\u0131n\u0131rl\u0131 kal\u0131r. D\u0131\u015f servislere k\u0131sa ve anlaml\u0131 timeout&#8217;lar, iptal edilebilir istekler ve kontroll\u00fc retry politikalar\u0131 ekleyin; ba\u015far\u0131s\u0131z bir upstream&#8217;i s\u0131n\u0131rs\u0131z tekrarlarla daha da bo\u011fmay\u0131n.<\/p>\n<h2 id=\"windows-hosting-ortaminda-olceklenebilirlik-ve-yuk-dengeleme-stratejileri\">Windows hosting ortam\u0131nda \u00f6l\u00e7eklenebilirlik ve y\u00fck dengeleme stratejileri<\/h2>\n<p>Tek bir Windows sunucu bir noktaya kadar i\u015fi ta\u015f\u0131r. CPU kullan\u0131m\u0131 s\u00fcrekli y\u00fczde 70-80 seviyesinde geziyorsa, bellek bask\u0131s\u0131 veya disk kuyru\u011fu olu\u015fuyorsa ve dikey b\u00fcy\u00fcmek maliyetli hale geldiyse yatay \u00f6l\u00e7eklemeyi de\u011ferlendirme zaman\u0131 gelir. IIS bu noktada iki farkl\u0131 yakla\u015f\u0131mla \u00f6ne \u00e7\u0131kar.<\/p>\n<h3>Uygulama sunucular\u0131n\u0131 \u00e7o\u011faltmak<\/h3>\n<p>En klasik y\u00f6ntem ayn\u0131 uygulamay\u0131 birden fazla Windows sunucu \u00fczerine kurup \u00f6nlerine bir y\u00fck dengeleyici koymakt\u0131r. Donan\u0131msal load balancer, bulut y\u00fck dengeleyicisi veya yaz\u0131l\u0131msal reverse proxy kullan\u0131labilir. Mant\u0131k ayn\u0131d\u0131r: gelen istekler sa\u011fl\u0131k kontrol\u00fcnden ge\u00e7en IIS d\u00fc\u011f\u00fcmlerine da\u011f\u0131t\u0131l\u0131r.<\/p>\n<p>Burada kritik soru \u015fudur: Oturum y\u00f6netimi nas\u0131l? Session bilgisi bellekte tutuluyorsa ve sticky session kullan\u0131lm\u0131yorsa kullan\u0131c\u0131 ayn\u0131 ak\u0131\u015f i\u00e7inde farkl\u0131 d\u00fc\u011f\u00fcmlere gitti\u011finde sorun ya\u015fayabilir. Sticky session ge\u00e7ici bir \u00e7\u00f6z\u00fcm olabilir; daha sa\u011fl\u0131kl\u0131 yakla\u015f\u0131m session bilgisini Redis, SQL Server veya uygun bir state server gibi d\u0131\u015f bir sisteme ta\u015f\u0131makt\u0131r.<\/p>\n<h3>Uygulama durumunu d\u0131\u015f sistemlere ta\u015f\u0131mak<\/h3>\n<p>Cache, session ve kullan\u0131c\u0131 durumu uygulama sunucusunun belle\u011finde tutulduk\u00e7a yatayda geni\u015flemek zorla\u015f\u0131r. Y\u00fcksek trafikli site mimarisinde s\u0131k\u00e7a yap\u0131lan iyile\u015ftirmeler \u015funlard\u0131r:<\/p>\n<ul>\n<li>In-process session yerine out-of-process, SQL Server veya Redis tabanl\u0131 session kullan\u0131lmas\u0131<\/li>\n<li>Uygulama cache&#8217;inin da\u011f\u0131t\u0131k cache sistemlerine ta\u015f\u0131nmas\u0131<\/li>\n<li>Upload edilen dosyalar\u0131n yerel disk yerine payla\u015f\u0131ml\u0131 dosya sistemi veya nesne depolama servislerinde saklanmas\u0131<\/li>\n<li>Uygulama da\u011f\u0131t\u0131m\u0131n\u0131n tekrarlanabilir hale getirilmesi; d\u00fc\u011f\u00fcmlerin elle farkl\u0131la\u015ft\u0131r\u0131lmamas\u0131<\/li>\n<\/ul>\n<p>B\u00f6ylece yeni bir Windows sunucu eklemek yaln\u0131zca IIS kurup uygulamay\u0131 kopyalamaktan ibaret kalmaz; konfig\u00fcrasyon, sertifika, ba\u011flant\u0131 bilgileri ve sa\u011fl\u0131k kontrol\u00fc de ayn\u0131 prosed\u00fcrle uygulan\u0131r. Altyap\u0131y\u0131 \u00f6rne\u011fin <a href=\"https:\/\/www.vps.tc\/tr\/sanal-veri-merkezi\">VPS.TC Sanal Veri Merkezi<\/a> gibi esnek bir katmanda kurdu\u011funuzda \u00f6l\u00e7ekleme operasyonu daha y\u00f6netilebilir hale gelir.<\/p>\n<h2 id=\"kaynak-kullanimi-izleme-ve-performans-testleri\">Kaynak kullan\u0131m\u0131 izleme ve performans testleri<\/h2>\n<p>IIS yap\u0131land\u0131rma i\u015finin en \u00e7ok ihmal edilen b\u00f6l\u00fcm\u00fc izleme ve testtir. Bir\u00e7ok ekip yaln\u0131zca ger\u00e7ek kullan\u0131c\u0131 trafi\u011fiyle s\u0131nanm\u0131\u015f sistemlere sahiptir. Bu da en k\u00f6t\u00fc senaryonun en beklenmedik anda kar\u015f\u0131n\u0131za \u00e7\u0131kmas\u0131 anlam\u0131na gelir.<\/p>\n<h3>Windows sunucu \u00fczerinde temel izleme pratikleri<\/h3>\n<p>Canl\u0131 bir sistemde ne oldu\u011funu anl\u0131k g\u00f6rmek i\u00e7in birka\u00e7 temel ara\u00e7tan vazge\u00e7meyin. PowerShell \u00fczerinden \u00e7al\u0131\u015fan IIS s\u00fcre\u00e7lerini h\u0131zl\u0131ca g\u00f6rmek i\u00e7in \u015fu komut kullan\u0131labilir:<\/p>\n<pre><code>Get-Process w3wp | Select-Object Id, CPU, WorkingSet64, StartTime<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131 process ba\u015f\u0131na CPU s\u00fcresi ve \u00e7al\u0131\u015fma k\u00fcmesini g\u00f6sterir; tek ba\u015f\u0131na hangi App Pool&#8217;a ait oldu\u011funu kesin bi\u00e7imde s\u00f6ylemez. PID ile e\u015fle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki komut daha a\u00e7\u0131klay\u0131c\u0131d\u0131r:<\/p>\n<pre><code>Get-CimInstance Win32_Process -Filter \"Name = 'w3wp.exe'\" | Select-Object ProcessId, CommandLine<\/code><\/pre>\n<p>Komut sat\u0131r\u0131ndaki uygulama havuzu ad\u0131n\u0131 g\u00f6rd\u00fc\u011f\u00fcn\u00fczde do\u011fru s\u00fcreci inceleyebilirsiniz. Daha derin analizler i\u00e7in Performance Monitor \u00fczerinde \u015fu saya\u00e7lara bak\u0131n:<\/p>\n<ul>\n<li>Processor(_Total) &#8211; % Processor Time<\/li>\n<li>Memory &#8211; Available MBytes<\/li>\n<li>Process(w3wp) &#8211; Private Bytes ve % Processor Time<\/li>\n<li>ASP.NET veya .NET CLR saya\u00e7lar\u0131; uygulaman\u0131n kulland\u0131\u011f\u0131 .NET s\u00fcr\u00fcm\u00fcne g\u00f6re uygun saya\u00e7 seti<\/li>\n<li>Web Service ve HTTP Service saya\u00e7lar\u0131; Current Connections ve Queue Length<\/li>\n<\/ul>\n<p>ASP.NET Core uygulamalar\u0131nda yaln\u0131zca eski ASP.NET saya\u00e7lar\u0131na g\u00fcvenmeyin. Uygulama metrikleri, Windows olay g\u00fcnl\u00fckleri, IIS loglar\u0131 ve reverse proxy metrikleri birlikte de\u011ferlendirilmelidir.<\/p>\n<h3>Yapay y\u00fck testleri ve dar bo\u011faz tespiti<\/h3>\n<p>Ger\u00e7ek kullan\u0131c\u0131 trafi\u011fi olu\u015fmadan \u00f6nce yapay y\u00fck testi yapmak zor ama gereklidir. Apache JMeter, k6 veya benzeri ara\u00e7larla saniyede ka\u00e7 istek geldi\u011finde sistemin bozulmaya ba\u015flad\u0131\u011f\u0131n\u0131 tespit edebilirsiniz. Testleri \u00fcretim kullan\u0131c\u0131lar\u0131na ve ger\u00e7ek veritaban\u0131na zarar vermeyecek izole bir ortamda ger\u00e7ekle\u015ftirin.<\/p>\n<p>Sadece ortalama cevap s\u00fcresine de\u011fil, p95 ve p99 gecikmeye, hata oran\u0131na, CPU ve disk kullan\u0131m\u0131na, veritaban\u0131 ba\u011flant\u0131 say\u0131s\u0131na da bak\u0131n. Bir ayar\u0131 de\u011fi\u015ftirdikten sonra k\u0131sa bir stress testi yapmak faydal\u0131d\u0131r; dinamik s\u0131k\u0131\u015ft\u0131rma \u00f6rne\u011finde CPU artarken a\u011f \u00fczerinden ta\u015f\u0131nan veri azalabilir. Sizin i\u00e7in do\u011fru dengeyi grafikler g\u00f6sterir.<\/p>\n<h2 id=\"guvenlik-patch-yonetimi-ve-felaket-senaryolari\">G\u00fcvenlik, patch y\u00f6netimi ve felaket senaryolar\u0131<\/h2>\n<p>Performans konu\u015furken g\u00fcvenli\u011fi atlamak \u00fcretim ortam\u0131nda yap\u0131labilecek en riskli hareketlerden biridir. Y\u00fcksek trafikli site ayn\u0131 zamanda sald\u0131rganlar i\u00e7in de cazip bir hedeftir. Windows Server ve IIS taraf\u0131nda \u015fu ba\u015fl\u0131klar g\u00fcnl\u00fck i\u015flerin par\u00e7as\u0131 olmal\u0131:<\/p>\n<ul>\n<li>Windows Update, IIS bile\u015fenleri, .NET runtime ve kullan\u0131lan \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphanelerin g\u00fcvenlik g\u00fcncellemelerinin kontroll\u00fc uygulanmas\u0131<\/li>\n<li>Uygulama veya sistem konfig\u00fcrasyonu de\u011fi\u015fmeden \u00f6nce ve sonra snapshot ya da yedek al\u0131nmas\u0131<\/li>\n<li>Web.config, sertifikalar ve hassas kimlik bilgilerinin \u015fifrelenmi\u015f veya g\u00fcvenli bir secret store i\u00e7inde tutulmas\u0131<\/li>\n<li>RDP ve WinRM gibi y\u00f6netim portlar\u0131n\u0131n do\u011frudan internete a\u00e7\u0131k olmamas\u0131; m\u00fcmk\u00fcnse VPN, bastion veya k\u0131s\u0131tl\u0131 kaynak IP&#8217;leri kullan\u0131lmas\u0131<\/li>\n<li>\u0130nternete a\u00e7\u0131k IIS bile\u015fenlerinin ve y\u00f6netim y\u00fczeylerinin envanterinin tutulmas\u0131<\/li>\n<\/ul>\n<p>Felaket senaryosu i\u00e7in en az\u0131ndan \u015fu sorular\u0131n cevab\u0131 haz\u0131r olmal\u0131: Sunucu tamamen kaybolursa uygulamay\u0131 ka\u00e7 dakikada ba\u015fka bir Windows sunucu \u00fczerine aya\u011fa kald\u0131rabiliyorum? Veritaban\u0131 yede\u011fi hangi aral\u0131klarla al\u0131n\u0131yor ve geri d\u00f6n\u00fc\u015f test ediliyor mu? Sertifika ve DNS de\u011fi\u015fiklikleri nas\u0131l geri al\u0131nacak? Bu sorulara net cevap veremiyorsan\u0131z yap\u0131land\u0131rma ne kadar iyi olursa olsun risk alt\u0131ndas\u0131n\u0131z.<\/p>\n<h2 id=\"iis-uzerinde-tipik-sorunlar-ve-pratik-cozum-yollari\">IIS \u00fczerinde tipik sorunlar ve pratik \u00e7\u00f6z\u00fcm yollar\u0131<\/h2>\n<p>Ger\u00e7ek \u00fcretim ortam\u0131nda belli \u015fikayetler tekrar tekrar kar\u015f\u0131n\u0131za \u00e7\u0131kar. Bunlar\u0131n bir k\u0131sm\u0131 yanl\u0131\u015f yorumlan\u0131r ve yanl\u0131\u015f yere odaklan\u0131l\u0131r. \u00d6rnek birka\u00e7 durum \u00fczerinden gidelim.<\/p>\n<h3>CPU s\u00fcrekli y\u00fcksek: Kod mu, konfig\u00fcrasyon mu?<\/h3>\n<p>CPU s\u00fcrekli y\u00fczde 80 \u00fczerinde geziyorsa ilk refleks genelde &#8220;sunucu yetersiz&#8221; olur. Oysa verimsiz sorgular, yo\u011fun serile\u015ftirme veya sonsuz d\u00f6ng\u00fcye yakla\u015fan algoritmalar as\u0131l su\u00e7lu olabilir. IIS taraf\u0131nda \u015fu ad\u0131mlarla ba\u015flay\u0131n:<\/p>\n<ul>\n<li>Failed Request Tracing ile belirli URL&#8217;lerde uzun s\u00fcren istekleri yakalay\u0131n.<\/li>\n<li>IIS ve uygulama loglar\u0131 \u00fczerinden en \u00e7ok \u00e7al\u0131\u015fan endpoint&#8217;leri analiz edin.<\/li>\n<li>CPU \u00f6rneklemesi ve .NET profilleyicisiyle s\u0131cak path&#8217;leri ortaya \u00e7\u0131kar\u0131n.<\/li>\n<li>\u0130\u015f y\u00fck\u00fcn\u00fcn web process&#8217;inde mi, veritaban\u0131nda m\u0131, yoksa d\u0131\u015f serviste mi bekledi\u011fini ay\u0131r\u0131n.<\/li>\n<\/ul>\n<p>Analiz sonunda ger\u00e7ekten CPU s\u0131n\u0131r\u0131na dayanm\u0131\u015fsan\u0131z daha g\u00fc\u00e7l\u00fc bir Windows sunucuya ge\u00e7mek veya ek IIS d\u00fc\u011f\u00fcmleriyle yatay \u00f6l\u00e7eklemek gerekir. Sadece App Pool queue de\u011ferini art\u0131rmak CPU&#8217;yu d\u00fc\u015f\u00fcrmez.<\/p>\n<h3>503 Service Unavailable ve kuyruk dolmas\u0131<\/h3>\n<p>Y\u00fcksek trafikli site ortam\u0131nda en sinir bozucu hatalardan biri 503&#8217;t\u00fcr. Application Pool&#8217;un durmas\u0131, rapid-fail protection, kuyruk dolmas\u0131, worker process \u00e7\u00f6kmesi veya upstream beklemeleri farkl\u0131 503 alt durumlar\u0131 \u00fcretebilir. Olas\u0131 ad\u0131mlar:<\/p>\n<ul>\n<li>Event Viewer alt\u0131nda Application, System ve WAS olay g\u00fcnl\u00fcklerini kontrol edin.<\/li>\n<li>App Pool&#8217;un \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve <code>w3wp.exe<\/code> s\u00fcrecinin yeniden ba\u015flay\u0131p ba\u015flamad\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/li>\n<li>IIS loglar\u0131nda <code>sc-status<\/code> ve <code>sc-substatus<\/code> alanlar\u0131n\u0131 inceleyin.<\/li>\n<li>Queue Length, CPU limitleri, rapid-fail protection ve uygulaman\u0131n ba\u011f\u0131ml\u0131 oldu\u011fu veritaban\u0131 veya API&#8217;lerin gecikmesini birlikte g\u00f6zden ge\u00e7irin.<\/li>\n<\/ul>\n<p>Bu tip sorunlar test ortam\u0131nda fark edilmeyebilir; \u00e7\u00fcnk\u00fc ger\u00e7ek d\u00fcnyadaki trafik modeli laboratuvarda birebir \u00fcretmek zordur. Bu y\u00fczden canl\u0131 sistemde g\u00fc\u00e7l\u00fc izleme ve de\u011fi\u015fiklik kayd\u0131 \u015fartt\u0131r.<\/p>\n<h2 id=\"ornek-konfigurasyon-profilleri\">\u00d6rnek konfig\u00fcrasyon profilleri<\/h2>\n<p>Teoriyi biraz daha somutla\u015ft\u0131rmak i\u00e7in farkl\u0131 trafik seviyelerinde d\u00fc\u015f\u00fcn\u00fclebilecek konfig\u00fcrasyon profillerini bir tabloda toplayal\u0131m. Bunlar genel hatlard\u0131r; her proje i\u00e7in test ve \u00f6l\u00e7\u00fcm yapmadan birebir uygulanmamal\u0131.<\/p>\n<table>\n<thead>\n<tr>\n<th>Senaryo<\/th>\n<th>Donan\u0131m (VPS)<\/th>\n<th>IIS Ayarlar\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Orta Trafik Kurumsal Site<\/td>\n<td>4 vCPU, 8 GB RAM, SSD<\/td>\n<td>Tek App Pool, tek worker, idle timeout uygulamaya g\u00f6re ayarlanm\u0131\u015f, static compression a\u00e7\u0131k<\/td>\n<\/tr>\n<tr>\n<td>Yo\u011fun E-ticaret Sitesi<\/td>\n<td>8 vCPU, 16-32 GB RAM<\/td>\n<td>Stateless veya d\u0131\u015f sistemde tutulan oturum, dinamik compression se\u00e7ici, queue length \u00f6l\u00e7\u00fcmle belirlenmi\u015f<\/td>\n<\/tr>\n<tr>\n<td>Y\u00fcksek Trafikli API<\/td>\n<td>12-16 vCPU, 32 GB RAM, \u00e7oklu node<\/td>\n<td>Birden fazla IIS d\u00fc\u011f\u00fcm\u00fc, merkezi loglama, d\u0131\u015f sistemde session, \u00f6l\u00e7\u00fclm\u00fc\u015f connection pooling<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bu profile g\u00f6re ba\u015flang\u0131\u00e7 kurulumu yapt\u0131ktan sonra ger\u00e7ek trafik alt\u0131nda \u00f6l\u00e7\u00fcm al\u0131p ayarlar\u0131 rafine etmek en sa\u011fl\u0131kl\u0131 yoldur. \u00d6zellikle &#8220;agresif connection pooling&#8221; gibi ifadeler tek ba\u015f\u0131na hedef de\u011fildir; havuz boyutu veritaban\u0131n\u0131n ve uygulaman\u0131n kald\u0131rabildi\u011fi kapasiteye g\u00f6re belirlenmelidir.<\/p>\n<h2 id=\"yuksek-trafikli-iis-altyapisini-uzun-vadede-saglikli-tutmak\">Y\u00fcksek trafikli IIS altyap\u0131s\u0131n\u0131 uzun vadede sa\u011fl\u0131kl\u0131 tutmak<\/h2>\n<p>Y\u00fcksek trafikli site y\u00f6netmek bir kere konfig\u00fcrasyon yap\u0131p b\u0131rakaca\u011f\u0131n\u0131z bir i\u015f de\u011fil. Windows Server ve IIS birle\u015fimi do\u011fru kurguland\u0131\u011f\u0131nda sa\u011flam \u00e7al\u0131\u015f\u0131r; fakat i\u015fin s\u0131rr\u0131 s\u00fcrekli g\u00f6zlem, k\u00fc\u00e7\u00fck ayarlarla optimizasyon ve do\u011fru zamanda \u00f6l\u00e7ekleme hamlesi yapmakt\u0131r.<\/p>\n<p>Pratik bir yakla\u015f\u0131m izlemek isterseniz \u00f6nce uygulamay\u0131 g\u00fcvenilir bir Windows hosting altyap\u0131s\u0131na (\u00f6rne\u011fin <a href=\"https:\/\/www.vps.tc\/tr\/vds-sanal-sunucu\">VPS.TC \u00fczerindeki VDS veya VPS<\/a> \u00e7\u00f6z\u00fcmlerine) ta\u015f\u0131y\u0131n, ard\u0131ndan temel IIS yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 uygulay\u0131n ve stres testleriyle dar bo\u011fazlar\u0131 bulun. Gerekti\u011finde yeni IIS d\u00fc\u011f\u00fcmleri ekleyerek veya mevcut sunucuyu g\u00fc\u00e7lendirerek \u00f6l\u00e7ekleyin.<\/p>\n<p>\u0130lk ad\u0131m olarak mevcut sunucunuzda App Pool ayarlar\u0131n\u0131z\u0131, Queue Length de\u011ferlerinizi, recycle olaylar\u0131n\u0131 ve s\u0131k\u0131\u015ft\u0131rma se\u00e7eneklerini kontrol edin. K\u00fc\u00e7\u00fck dokunu\u015flarla ciddi kazan\u0131mlar elde edilebilir; fakat her kazan\u0131m\u0131 \u00f6l\u00e7\u00fcmle do\u011frulay\u0131n. Ben production sunucusunda bir ayar\u0131 de\u011fi\u015ftirip grafi\u011fe bakmadan kapatmay\u0131 eskiden &#8220;h\u0131zl\u0131 \u00e7\u00f6z\u00fcm&#8221; san\u0131yordum. \u015eimdi \u00f6nce de\u011fi\u015fikli\u011fi kaydediyor, sonra geri d\u00f6n\u00fc\u015f yolunu haz\u0131rl\u0131yor ve en az bir trafik penceresi boyunca izliyorum.<\/p>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<h3>Y\u00fcksek trafikli bir site i\u00e7in Windows sunucuya ka\u00e7 CPU ve ne kadar RAM ay\u0131rmal\u0131y\u0131m?<\/h3>\n<p>Tek bir do\u011fru rakam yoktur. A\u011f\u0131rl\u0131kl\u0131 olarak statik i\u00e7erik sunan bir site ile her istekte veritaban\u0131na giden bir API ayn\u0131 kaynaklar\u0131 t\u00fcketmez. 4 vCPU ve 8-16 GB RAM \u00f6l\u00e7\u00fcm i\u00e7in makul bir ba\u015flang\u0131\u00e7 olabilir; yo\u011fun e-ticaret veya API i\u015f y\u00fcklerinde 8 vCPU ve 16-32 GB RAM ile ba\u015flay\u0131p p95 gecikme, hata oran\u0131, bellek ve disk davran\u0131\u015f\u0131n\u0131 takip edin.<\/p>\n<h3>IIS Application Pool recycle ayarlar\u0131 nas\u0131l yap\u0131land\u0131r\u0131lmal\u0131?<\/h3>\n<p>Y\u00fcksek trafikli uygulamalarda gereksiz s\u0131kl\u0131kta recycle so\u011fuk ba\u015flang\u0131\u00e7, cache kayb\u0131 ve oturum sorunlar\u0131 yaratabilir. Idle Time-out&#8217;u s\u00fcrekli trafik alan uygulamalarda 0 yapmay\u0131, d\u00fczenli recycle gerekiyorsa d\u00fc\u015f\u00fck trafik saatlerine zamanlamay\u0131 de\u011ferlendirin. Private Memory Limit&#8217;i ise bellek s\u0131z\u0131nt\u0131s\u0131 kan\u0131t\u0131 olmadan d\u00fc\u015f\u00fck belirlemeyin; recycle olaylar\u0131n\u0131 WAS ve uygulama loglar\u0131yla birlikte izleyin.<\/p>\n<h3>Tek g\u00fc\u00e7l\u00fc Windows sunucu mu, birden fazla IIS d\u00fc\u011f\u00fcm\u00fc m\u00fc tercih edilmeli?<\/h3>\n<p>Tek sunucu y\u00f6netimi daha basittir ve uygulaman\u0131n durumsuz oldu\u011fu k\u00fc\u00e7\u00fck yap\u0131larda yeterli olabilir. Ar\u0131za tolerans\u0131, bak\u0131m esnekli\u011fi veya dalgal\u0131 trafik \u00f6nemliyse y\u00fck dengeleyici arkas\u0131nda birden fazla IIS d\u00fc\u011f\u00fcm\u00fc daha sa\u011fl\u0131kl\u0131d\u0131r. Session, cache ve upload dosyalar\u0131n\u0131 uygulama process&#8217;inden d\u0131\u015far\u0131 ta\u015f\u0131man\u0131z gerekir; aksi halde d\u00fc\u011f\u00fcm eklemek yeni sorunlar \u00fcretebilir.<\/p>\n<h3>IIS \u00fczerinde 503 Service Unavailable hatalar\u0131 nas\u0131l azalt\u0131l\u0131r?<\/h3>\n<p>\u00d6nce IIS loglar\u0131ndaki <code>sc-status<\/code> ve <code>sc-substatus<\/code> alanlar\u0131n\u0131, Event Viewer&#8217;daki WAS olaylar\u0131n\u0131 ve App Pool durumunu kontrol edin. Kuyruk doluyorsa Queue Length&#8217;i art\u0131rmak k\u0131sa s\u00fcreli tampon sa\u011flayabilir; ancak worker process \u00e7\u00f6kmesi, CPU s\u0131n\u0131r\u0131, rapid-fail protection veya veritaban\u0131 gecikmesi \u00e7\u00f6z\u00fclmeden kal\u0131c\u0131 sonu\u00e7 vermez. 503&#8217;\u00fcn alt durumunu bilmeden rastgele ayar de\u011fi\u015ftirmeyin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows sunucu \u00fczerinde IIS \u00e7al\u0131\u015ft\u0131r\u0131rken y\u00fcksek trafikli site y\u00f6netmek i\u00e7in mimari tasar\u0131m, kritik IIS ayarlar\u0131, \u00f6l\u00e7ekleme stratejileri ve izleme pratiklerini ad\u0131m ad\u0131m ele alan kapsaml\u0131 rehber.<\/p>\n","protected":false},"author":1,"featured_media":247,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[784],"tags":[790,1059,1062,114,796,590,1065],"class_list":["post-249","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows","tag-iis-yapilandirma","tag-load-balancing","tag-performans-optimizasyonu","tag-vps","tag-windows-hosting","tag-windows-sunucu","tag-yuksek-trafikli-site"],"lang":"tr","translations":{"tr":249,"en":266},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=249"}],"version-history":[{"count":2,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/249\/revisions"}],"predecessor-version":[{"id":591,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/249\/revisions\/591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/247"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}