Azure Monitor ile Remote Desktop Oturum Detaylarını izleme çözümü Microsoft firmasının sunmuş olduğu resmi bir izleme çözümü değildir.

Azure Monitor ile Remote Desktop Server izleme Çözümü makale serisinde Remote Desktop üzerinde bulunan her bir RDS Sessions (uzak oturum) detaylarını analiz etmiş, her bir oturum içinde bulunan kullanıcıların kullanmakta oldukları uygulamaları, session sürelerini ve RDS Farm içinde bulunan Remote Desktop Server lara etkisine gözlem yapmıştık.

Bu makalede ise Azure Monitor ile Remote Desktop Oturum Detaylarını izleme devam ediyoruz ve bu makale içinde aşağıda ki başlıklara odaklanıyoruz.

1. Remote Desktop Server Terminal Services Sessions

Remote Desktop Server Terminal Services Sessions Raporları bir Remote Desktop farm içinde bulunan Remote Desktop Session Host Sunucuları üzerinde ki oturumlar hakkında bizlere bilgi vermektedir.

Remote Desktop Server Terminal Services Sessions Raporları, Azure Monitor performans sorguları ile öğrenilebilmektedir. Remote Desktop Server Terminal Services Sessions makalesi içinde paylaşacak olduğumuz Terminal Services Sessions Azure Monitör Query ‘leri ile Remote Desktop Farm içinde bulunan toplam oturum sayısını, sorgunun çalıştırışmış olduğu zaman diliminde ki Aktif Otrum sayısını ve Remote Desktop ortamlarında sevilmeyen inactive yada diğer bir ismi olan Idle oturumlarını anlık olarak görüntüleyebilmekte ve bu raporlar ile Remote Desktop ortamını daha sağlıklı duruma getirebilmektesiniz.

1.1. Terminal Services Sessions Performance Counters

Remote Desktop Server üzerinde izleyecek olduğumuz Remote Desktop Server Terminal Services Sessions Raporları aşağıda sıralanmıştır. Bu eşik değerleri için tek düzey bir eşik değeri bulunmamaktadır, aslında bu değerler için bir eşik değeri bulunmamaktadır.

Remote Desktop Server üzerinde yaşayacak olduğunuz performans problemlerinin kullanıcı erişimlerinden mi kaynaklı, kullanıcıların yanlış oturum kapatmalarından mı kaynaklı, yoksa Remote Desktop Farm içinde bulunan Remote Desktop Serverların sağlıklı, doğru bir şekilde yük dengeleme yapıp-yapmadıklarını tespit etmek için kullanabilirsiniz.

Remote Desktop Server üzerinde izleyecek olduğumuz Terminal Services Sessions Performans değerleri;

  • Terminal Services(*)\Active Sessions değeri Remote Desktop Server üzerinde aktif bağlı bulunan kullanıcı sayısını göstermektedir.
  • Terminal Services(*)\Inactive Sessions Remote Desktop Server üzerinde oturum kapatmamış fakat işlem yapmayan kullanıcıları sayısını göstermektedir.
  • Terminal Services(*)\Total Sessions Remote Desktop Server üzerinde oturum açmış olan toplam kullanıcı sayısını göstermektedir.

1.2. Azure Monitor ile Terminal Services Sessions Performance izleme

Remote Desktop Server üzerinde Terminal Services Sessions değerleri #Azure Monitor ile yapılabilmektedir. Azure Monitor ile bu değerleri incelemek için bir takım ön gereksinimler vardır ve bu ön gereksinimleri sırası ile aşağıda paylaşmaktayım.

  • Azure Log Analytics Workspace Oluşturma işleminin Azure Tenant üzerinde yapılmış olması gerekmekte.
  • Oluşturulan Azure Log Analytics Workspace üzerinde Azure Log Analytics Workspace Agents Configuration işlemlerinin tamamlanmış olması ve Azure Log Analytics Advanced settings bölümünde Windows Server Physical Disk Performance değerlerinin tanımlanması gerekmektedir. Bunlar özel sorgular olduğu için bu sorguları istediğimizi Azure Monitor aracına öğretmemiz gerekmektedir.
  • Windows Server Windows Server Physical Disk Performance değerlerini öğrenmek istediğimiz her bir Windows Server üzerine Azure Monitoring Agent Kurulum Adımları ‘nın tamamlanmış olması gerekmekte.

Yukarıda paylaşılan 3 temel gereksinim tamamlandıktan sonra Azure Monitor ile Remote Desktop Server üzerinde Terminal Services Sessions değerlerini sorgulayabiliriz.

1.3. Terminal Services Sessions Performance Query

Remote Desktop Server üzerinde Terminal Services Sessions Performance sayacı ile Remote Desktop ortamına kaç kullanıcı oturum açtı, oturum açan kullanıcılar ne kadar süre çalıştı, hatalı oturum kapatan yada oturum açıkken işlem yapmayan kullanıcıları belirleyebilmekteyiz. Paylaşacak olduğum Azure Monitor sorguları son 48 Saat içinde her 30 Dk içinde ki değişkenliklere göre hazırlanmıştır. Bu sorguları sizler kendi ihtiyaçlarınıza göre düzenleyebilirsiniz.

Azure Log Analytics Workspace içindefarklı amaçlara hizmet eden (SQL Server, Etki Alanı Sunucuları vb…) birden fazla sunucu bulunmaktadır. Paylaşmış olduğum Azure Monitor Query ‘leri Remote Desktop Server özelinde hazırlandığı için sorgu çıktılarında diğer sunucuların da yer almaması için Computer contains “RS” komutu eklenmiştir.

1.3.1. Terminal Services(*)\Active Sessions

Azure Log Analytics Workspace ile izleme yaptığımız Remote Desktop Server ortamı için de iki adet Windows Server 2019 Remote Desktop Session Host Server bulunmaktadır ve bu sunucular Remote Desktop Connection Broker sunucuları ile yedekli ve yük dengelemek üzere tasarlanmıştır.

Terminal Services Active Sessions

Terminal Services Active Sessions

Terminal Services Active Sessions sorgusu kontrol edildiği zaman iki adet Remote Desktop Session Host Sunucusunun ‘in yedekli ve yük dengeli bir şekilde çalıştığını görebilmektesiniz.  Azure monitor Terminal Services Active Sessions sorgusu çalıştırıldığı zaman diliminde ortalama her bir Remote Desktop Server üzerinde 12-14 aralığında kullanıcı oturumunu görebilmektesiniz.

1.3.2. Terminal Services(*)\Inactive Sessions

Terminal Services inActive Sessions

Terminal Services inActive Sessions

1.3.3. Terminal Services(*)\Total Sessions

Terminal Services Total Sessions

Terminal Services Total Sessions

2. Remote Desktop Server Terminal Services Sessions Private Bytes

Remote Desktop Server Mimarisi karmaşık bir mimariye sahiptir ve Terminal Services Sessions Private Bytes problemlerini bulmak zordur. Aslında tek düzey bir Windows işletim sisteminde bile performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında öğrenmek neredeyse imkansız durumdadır.

Terminal Services Sessions üzerinde yapacak olduğumuz Virtual Bytes incelemeleri üç başlık altında inceleyeceğiz ve Remote Desktop mimarisinde çalışan Remote Desktop Session Host üzerinde oluşması muhtemel performans problemlerinin önüne geçeceğiz.

Azure monitor ile Remote Desktop Server üzerinde izleyecek olduğumuz Terminal Services Virtual Bytes Performans değerleri için aşağıda ki performans değerlerinin Azure Log Analytics çalışma alanında aktif edilmesi gerekmektedir.

  • Terminal Services Session(*)\Private Bytes
  • Terminal Services Session(*)\Virtual Bytes
  • Terminal Services Session(*)\Virtual Bytes Peak
  • Terminal Services Session(*)\Working Set
  • Terminal Services Session(*)\Working Set Peak

2.1. Remote Desktop Server ve Terminal Services Sessions Bytes kavramları

Öncelikle Remote Desktop Mimarisini Terminal Services Sessions Virtual Bytes özelinde inceleyelim ve sonrasında Virtual Bytes kavramların ne olduğunu ve Remote Desktop mimarisine etkisini inceleyelim.

Terminal Services Sessions Bytes nedir sorusunu cevaplamadan önce giriş bölümünde belirtmiş olduğumuz Remote Desktop Server mimari karmaşıklığının altını çizelim.

Remote Desktop Server, Oturum Sanallaştırma sınıfına sahip bir sanallaştırma çözümüdür ve bu sanallaştırma çözümü de zaten başlı-başına karmaşık bir mimariye sahiptir. Bu sanallaştırma çözümünün mimarisini öğrendikten sonra Terminal Services Sessions Virtual Bytes ‘ ları daha iyi bir şekilde anlayabileceğiz.

Remote Desktop Server mimarisi, eski ismi ile Terminal Server mimarisi tek bir Windows Server işletim sistemi üzerinde birden fazla kullanıcı oturumuna hizmet veren bir mimaridir. Yani tek bir Windows Server işletim sistemi, tek bir bilgi işlem kaynağı (Bellek, işlemci, Disk) ama bu kaynakları paylaşan onlarca, yüzlerce kullanıcı ve tek kaynak üzerinde bulunan birden fazla sanal oturum. Biz buna Session Virtualization yani oturum sanallaştırması demekteyiz.

Bu sebepten ötürü bir Windows Server üzerinde performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında tespit etmek neredeyse imkansız durumdadır.

Windows Server 2012 ile birlikte isim değişikliğine gitmiş ve Terminal Server ‘dan Remote Desktop ismini almıştır. Bu isim değişikliği sadece ismi güncellemek için değil Windows Server 2012 ile birlikte Virtual Desktop mimarisi de bu isim altında hizmet vermeye başlamıştır. Bu gün odaklanacak olduğumuz Terminal Services Bytes kavramları ise Session Virtualization için geçerli olup Virtual Desktop ortamları için bu çalışma geçerli değildir.  Belki de bu gün bu makalede kullanacak olduğumuz Windows Perf komutları da eski ismi olan Terminal Services Session için kullanıldığı için geçerlidir.

2.2. Terminal Services Sessions Private Bytes

Terminal Services Sessions Private Bytes bir uygulamanın yürütme sırasında veya öncesinde talep ettiği bellek miktarının tahminidir.

Herhangi bir zamanda, bir kullanıcı oturumunda bulunan bir işlem, yoğun iş yüklerinin çalıştırmış olduğu zaman dilimlerinde kullanıcı oturumuna ayrılan Terminal Services Sessions Private Bytes tamamen tükenebilir. Bu Remote Desktop çözümleri için kabul edilen bir risktir ve bu riski ve bu güvenlik açığını da Oturum Sanallaştırma Güvenli mi konu başlığında incelemiştik.

Terminal Services Sessions Private Bytes işletim sistemi tarafından bir işleme ayrılan RAM miktarını toplamını göstermektedir. Terminal Services Sessions Private Bytes kümesinin önemli bir yönü, işlem tarafından kullanılan belleği değil, her zaman ayrılan belleği göstermesidir.

Bir işlem, işletim sisteminden RAM istemek için Terminal Services Sessions Private Bytes kullanır. Bununla birlikte, işlem ayrılan belleğin tamamını da kullanabilir veya kullanmayabilir. Bellek eşlemeli dosyaları Terminal Services Sessions Private Bytes kümesine dahil etmiyoruz bunlar fiziksel yada disk belleğinde oluşabilir.

Terminal Services Sessions Private Bytes değerlerini izlerken, raparlarken yada bir dar boğazı araştırırken herhangi bir sürekli artışı izlemek ve analiz etmek için özel bir bayt seti kullanabiliriz.

Örneğin, bir uygulamanın istenmeyen sonsuz döngüsündeki bir tahsis talebi , sistemde bellek sızıntısına neden olabilir. Uygulamanın özel bayt kümesindeki sürekli artışı izleyerek bir bellek sızıntısını belirleyebiliriz.

Terminal Services Sessions Private Bytes izlemek niçin önemlidir. Bir oturumda ki yoğun iş talebi anlık değil de süreklilik arz ediyorsa ve bu kullanıcı oturumunun talebi diğer kullanıcı oturumlarını etkiliyorsa bizlerin devreye girmesi ve müdahale etmesi gerekmektedir.

Terminal Services Sessions Private Bytes kümesinde işlemler, istenen belleği diğer işlemlerle paylaşmaz. Ek olarak, işlemler yürütme sırasında istenen belleğin tamamını kullanmaz. Ayrıca, bir sürecin özel baytları, disk belleği dosyası kullanımını içerir. Disk belleği dosyası, işletim sisteminin uzun süredir kullanmadığı sabit disk belleğinin ayrılmış bir bölümüdür.

Bu nedenle, özel kümenin gerçek ayrılmış belleği, özel bayt kümesi ve disk belleği dosyası belleği için kullanılan belleğin toplamıdır.

Terminal Services Session Private Bytes

Terminal Services Session Private Bytes

Yukarıda paylaşmış olduğumuz Terminal Services Session Private Bytes Azure Monitor sorgusu son 48 Saat içinde her 30 Dakika içinde ki değişiklikleri raporlamak için oluşturuldu. Paylaşılan bu Azure Monitor sorgusunu kendi yapınıza göre özelleştirebilirsiniz.

Terminal Services Sessions Private Bytes sorgu çıktısı için eşik değeri bulunmamaktadır ve aynı zaman dilimleri için de tek düzey olması beklenmektedir. Sorgu çıktısına bakıldığı zaman mesai saati ile mesai saati sonrasında Remote Desktop Session Host sunucuları üzerinde benzer kullanımlar görülmektedir.

Ayrıca, Azure Monitor Sorgularının çalıştırışmış olduğu Remote Desktop ortamı içinde iki farklı Remote Desktop Session Host sunucusu bulunmakta ve yedekli ve yük dengelemek üzere tasarlanmış durumda. Bu sorgu sonucu bizlere şunu da göstermekte Remote Desktop ortamı içinde bulunan Remote Desktop Session host sunucuları yedekli ve yük dengelemek üzere eşit oranda çalıştıklarının bilgisini de bu sorgudan öğrenmekteyiz.

3. Remote Desktop Server Terminal Services Sessions Virtual Bytes

Remote Desktop Server Mimarisi karmaşık bir mimariye sahiptir ve Terminal Services Sessions Virtual Bytes ve Virtual Bytes Peak problemlerini bulmak zordur. Aslında tek düzey bir Windows işletim sisteminde bile performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında öğrenmek neredeyse imkansız durumdadır.

Terminal Services Sessions üzerinde yapacak olduğumuz Virtual Bytes incelemeleri üç başlık altında inceleyeceğiz ve Remote Desktop mimarisinde çalışan Remote Desktop Session Host üzerinde oluşması muhtemel performans problemlerinin önüne geçeceğiz.

Makale serimizde inceleyecek olduğumuz Terminal Services Sessions Virtual Bytes makaleleri;

Azure monitor ile Remote Desktop Server üzerinde izleyecek olduğumuz Terminal Services Virtual Bytes Performans değerleri için aşağıda ki performans değerlerinin Azure Log Analytics çalışma alanında aktif edilmesi gerekmektedir.

  • Terminal Services Session(*)\Private Bytes
  • Terminal Services Session(*)\Virtual Bytes
  • Terminal Services Session(*)\Virtual Bytes Peak
  • Terminal Services Session(*)\Working Set
  • Terminal Services Session(*)\Working Set Peak

3.1. Remote Desktop Server ve Terminal Services Sessions Bytes kavramları

Öncelikle Remote Desktop Mimarisini Terminal Services Sessions Virtual Bytes özelinde inceleyelim ve sonrasında Virtual Bytes kavramların ne olduğunu ve Remote Desktop mimarisine etkisini inceleyelim.

Terminal Services Sessions Bytes nedir sorusunu cevaplamadan önce giriş bölümünde belirtmiş olduğumuz Remote Desktop Server mimari karmaşıklığının altını çizelim.

Remote Desktop Server, Oturum Sanallaştırma sınıfına sahip bir sanallaştırma çözümüdür ve bu sanallaştırma çözümü de zaten başlı-başına karmaşık bir mimariye sahiptir. Bu sanallaştırma çözümünün mimarisini öğrendikten sonra Terminal Services Sessions Virtual Bytes ‘ ları daha iyi bir şekilde anlayabileceğiz.

Remote Desktop Server mimarisi, eski ismi ile Terminal Server mimarisi tek bir Windows Server işletim sistemi üzerinde birden fazla kullanıcı oturumuna hizmet veren bir mimaridir. Yani tek bir Windows Server işletim sistemi, tek bir bilgi işlem kaynağı (Bellek, işlemci, Disk) ama bu kaynakları paylaşan onlarca, yüzlerce kullanıcı ve tek kaynak üzerinde bulunan birden fazla sanal oturum. Biz buna Session Virtualization yani oturum sanallaştırması demekteyiz.

Bu sebepten ötürü bir Windows Server üzerinde performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında tespit etmek neredeyse imkansız durumdadır.

Windows Server 2012 ile birlikte isim değişikliğine gitmiş ve Terminal Server ‘dan Remote Desktop ismini almıştır. Bu isim değişikliği sadece ismi güncellemek için değil Windows Server 2012 ile birlikte Virtual Desktop mimarisi de bu isim altında hizmet vermeye başlamıştır. Bu gün odaklanacak olduğumuz Terminal Services Bytes kavramları ise Session Virtualization için geçerli olup Virtual Desktop ortamları için bu çalışma geçerli değildir.  Belki de bu gün bu makalede kullanacak olduğumuz Windows Perf komutları da eski ismi olan Terminal Services Session için kullanıldığı için geçerlidir.

3.2. Terminal Services Sessions Virtual Bytes

Terminal Services Sessions Virtual Bytes, bir işleme ayrılan sanal bellek adres alanını ifade eder. Her adres alanına benzersiz bir sürecin eriştiği kullanım özgürlüğünü kolaylaştırır. Terminal Services Sessions Virtual Bytes, fiziksel bellek boyutunu temsil etmez.

Ancak her işleme, sanal adreslerin karşılık gelen fiziksel adreslere çevrilmesine yardımcı olan bir sayfa tablosu eşlik eder. Bir işlem bir adres istediğinde, sistem sayfa tablosunu temel alan fiziksel bir adresle yanıt verir.

İkincil depolama ve sanal boşluk kullanarak fiziksel RAM’i genişletebiliriz. Bu sanal bellek, gerçek gerçek bellekten daha fazla adres aralığı ve referans adresleri almak için RAM’in kapasitesini aşıyor olabilir.

Bir örnek alalım. 32 bit Windows kullanıcı modunda, bir işlem en fazla 2 GB kullanabilir. Ancak Boot.ini dosyasını değiştirerek ayrılan belleği 3 GB’a çıkarabiliriz .

Terminal Services Sessions Virtual Bytes, disk belleği olmayan özel baytları, bellek eşlemeli dosyaları ve bir diskteki verileri içerebilir. Son olarak, Terminal Services Sessions Virtual Bytes çalışma kümesinin özel baytların ve bir bekleme listesinin birleşimidir

Terminal Services Session Virtual Bytes

Terminal Services Session Virtual Bytes

Yukarıda paylaşmış olduğumuz Terminal Services Session Virtual Bytes Azure Monitor sorgusu son 48 Saat içinde her 30 Dakika içinde ki değişiklikleri raporlamak için oluşturuldu. Paylaşılan bu Azure Monitor sorgusunu kendi yapınıza göre özelleştirebilirsiniz.

Terminal Services Session Virtual Bytes sorgu çıktısı için eşik değeri bulunmamaktadır ve aynı zaman dilimleri için de tek düzey olması beklenmektedir. Sorgu çıktısına bakıldığı zaman mesai saati ile mesai saati sonrasında Remote Desktop Session Host sunucuları üzerinde benzer kullanımlar görülmektedir.

Ayrıca, Azure Monitor Sorgularının çalıştırışmış olduğu Remote Desktop ortamı içinde iki farklı Remote Desktop Session Host sunucusu bulunmakta ve yedekli ve yük dengelemek üzere tasarlanmış durumda. Bu sorgu sonucu bizlere şunu da göstermekte Remote Desktop ortamı içinde bulunan Remote Desktop Session host sunucuları yedekli ve yük dengelemek üzere eşit oranda çalıştıklarının bilgisini de bu sorgudan öğrenmekteyiz.

3.2.1. Terminal Services Sessions Virtual Bytes Peak

Terminal Services Sessions Virtual Bytes Peak bir önce ki başlıkta paylaşmış olduğumuz Terminal Services Sessions Virtual Bytes taleplerinin aşılmış olduğu eşik değerlerini bizlere göstermektedir.

Terminal Services Session Virtual Bytes Peak

Terminal Services Session Virtual Bytes Peak

Yukarıda paylaşmış olduğumuz Terminal Services Session Virtual Bytes Peak Azure Monitor sorgusu son 48 Saat içinde her 30 Dakika içinde ki değişiklikleri raporlamak için oluşturuldu. Paylaşılan bu Azure Monitor sorgusunu kendi yapınıza göre özelleştirebilirsiniz.

Terminal Services Session Virtual Bytes Peak sorgu çıktısı için eşik değeri bulunmamaktadır ve aynı zaman dilimleri için de tek düzey olması beklenmektedir. Sorgu çıktısına bakıldığı zaman mesai saati ile mesai saati sonrasında Remote Desktop Session Host sunucuları üzerinde benzer kullanımlar görülmektedir.

Ayrıca, Azure Monitor Sorgularının çalıştırışmış olduğu Remote Desktop ortamı içinde iki farklı Remote Desktop Session Host sunucusu bulunmakta ve yedekli ve yük dengelemek üzere tasarlanmış durumda. Bu sorgu sonucu bizlere şunu da göstermekte Remote Desktop ortamı içinde bulunan Remote Desktop Session host sunucuları yedekli ve yük dengelemek üzere eşit oranda çalıştıklarının bilgisini de bu sorgudan öğrenmekteyiz.

Terminal Services Session Virtual Bytes Instance Peak

Terminal Services Session Virtual Bytes Instance Peak

Terminal Services Session Virtual Bytes Peak sorgusunda eğer anormal bir grafik görünse idi paylaşmış olduğumuz Azure Monitor Sorgusunda ki Computer Parametresini instance olarak değiştirip bu anormal grafiği hangi oturumun yaptığını tespit edebilirdik.

Yukarıda paylaşmış olduğum ikinc Terminal Services Session Virtual Bytes Peak görüntüsü instance seviyesinde bu anormalliği nasıl tespit edeceğimizi öğrenmek için paylaşılmıştır.

4. Remote Desktop Server Terminal Services Sessions Working Set

Remote Desktop Server Mimarisi karmaşık bir mimariye sahiptir ve Terminal Services Sessions Working Set ve Working Set Peak problemlerini bulmak zordur. Aslında tek düzey bir Windows işletim sisteminde bile performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında öğrenmek neredeyse imkansız durumdadır.

Terminal Services Sessions üzerinde yapacak olduğumuz Virtual Bytes incelemeleri üç başlık altında inceleyeceğiz ve Remote Desktop mimarisinde çalışan Remote Desktop Session Host üzerinde oluşması muhtemel performans problemlerinin önüne geçeceğiz.

Azure monitor ile Remote Desktop Server üzerinde izleyecek olduğumuz Terminal Services Virtual Bytes Performans değerleri için aşağıda ki performans değerlerinin Azure Log Analytics çalışma alanında aktif edilmesi gerekmektedir.

  • Terminal Services Session(*)\Private Bytes
  • Terminal Services Session(*)\Virtual Bytes
  • Terminal Services Session(*)\Virtual Bytes Peak
  • Terminal Services Session(*)\Working Set
  • Terminal Services Session(*)\Working Set Peak

4.1. Remote Desktop Server ve Terminal Services Sessions Bytes kavramları

Öncelikle Remote Desktop Mimarisini Terminal Services Sessions Virtual Bytes özelinde inceleyelim ve sonrasında Virtual Bytes kavramların ne olduğunu ve Remote Desktop mimarisine etkisini inceleyelim.

Terminal Services Sessions Bytes nedir sorusunu cevaplamadan önce giriş bölümünde belirtmiş olduğumuz Remote Desktop Server mimari karmaşıklığının altını çizelim.

Remote Desktop Server, Oturum Sanallaştırma sınıfına sahip bir sanallaştırma çözümüdür ve bu sanallaştırma çözümü de zaten başlı-başına karmaşık bir mimariye sahiptir. Bu sanallaştırma çözümünün mimarisini öğrendikten sonra Terminal Services Sessions Virtual Bytes ‘ ları daha iyi bir şekilde anlayabileceğiz.

Remote Desktop Server mimarisi, eski ismi ile Terminal Server mimarisi tek bir Windows Server işletim sistemi üzerinde birden fazla kullanıcı oturumuna hizmet veren bir mimaridir. Yani tek bir Windows Server işletim sistemi, tek bir bilgi işlem kaynağı (Bellek, işlemci, Disk) ama bu kaynakları paylaşan onlarca, yüzlerce kullanıcı ve tek kaynak üzerinde bulunan birden fazla sanal oturum. Biz buna Session Virtualization yani oturum sanallaştırması demekteyiz.

Bu sebepten ötürü bir Windows Server üzerinde performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında tespit etmek neredeyse imkansız durumdadır.

Windows Server 2012 ile birlikte isim değişikliğine gitmiş ve Terminal Server ‘dan Remote Desktop ismini almıştır. Bu isim değişikliği sadece ismi güncellemek için değil Windows Server 2012 ile birlikte Virtual Desktop mimarisi de bu isim altında hizmet vermeye başlamıştır. Bu gün odaklanacak olduğumuz Terminal Services Bytes kavramları ise Session Virtualization için geçerli olup Virtual Desktop ortamları için bu çalışma geçerli değildir.  Belki de bu gün bu makalede kullanacak olduğumuz Windows Perf komutları da eski ismi olan Terminal Services Session için kullanıldığı için geçerlidir.

4.2. Terminal Services Sessions Working Set

Bir uygulamanın yürütülmesi sırasında, çalışan bayt kümesini, o anda fiziksel bellekte bulunan bir işlemin sayfaları olarak görebiliriz. Terminal Services Sessions Working Set, RAM’de belirli bir işlem tarafından ayrılan en son sayfaları içerir.

Ancak, bir işlem daha önce fiziksel belleğe yüklenmemiş bir sayfa isterse işte o zaman bir hata oluşur ve oluşan bu hata sistemde bir sayfa hatasına yol açabilir. Ek olarak, sayfa hatası işleyicisini kullanarak eksik sayfaları keşfedebiliriz . Yine de eksik sayfayı bulduktan sonra Terminal Services Sessions Working Set ‘i bu hataya dahil edebiliyoruz. Dolayısıyla böyle bir durumda Terminal Services Sessions Working Set ‘in toplam boyutu, yeni eklenen sayfanın boyutu kadar artacaktır.

Sayfa hatalarını iki kategoriye ayırabilir ve sert ve yumuşak sayfa hataları olarak belirleyebiliriz.

Sabit sayfa hatalarını, hatalı sayfayı talep eden işlem tarafından oluşturulan disk belleği dosyasını veya bellek eşlemeli dosyayı okuyarak çözebiliriz. Sistem, istenen sayfanın içeriğini almak için yedek depo dosyalarının içeriğini okur. Alma işleminden sonra sayfayı çalışma kümesine ekliyoruz.

Geçici sayfa hataları, arka hat deposu dosyalarının okunmasını gerektirmez. Çeşitli durumlarda ortaya çıkabilir.

Bazılarını şimdi tartışalım.

Bir sayfanın başka bir işlemin başka bir çalışma kümesinde yürütüldüğünü varsayalım. Böyle bir durumda yumuşak sayfa hatası oluşabilir. Ek olarak, çalışan bir işlem kümesinden ayrıldıktan sonra geçiş halinde olan bir sayfa da geçici sayfa hatasına neden olabilir.

Terminal Services Sessions Working Set sayfalarından biri kullanılarak bir işlem tamamlanırsa, kalan işlemler etkilenmeden sayfa kümeden kaldırılacaktır. Bir sayfa herhangi bir çalışma grubunun parçası değilse, başka bir amaçla talep edilene veya değiştirilene kadar geçiş sayfası olarak anılır.

Özel bayt kümesinden farklı olarak, çalışma kümesi hem disk belleğine alınmamış özel baytları hem de bellek eşlemeli dosyaları içerebilir.

Terminal Services Session Working Set

Terminal Services Session Working Set

Yukarıda paylaşmış olduğumuz Terminal Services Session Working Set Azure Monitor sorgusu son 48 Saat içinde her 30 Dakika içinde ki değişiklikleri raporlamak için oluşturuldu. Paylaşılan bu Azure Monitor sorgusunu kendi yapınıza göre özelleştirebilirsiniz.

Terminal Services Session Working Set sorgu çıktısı için eşik değeri bulunmamaktadır ve aynı zaman dilimleri için de tek düzey olması beklenmektedir. Sorgu çıktısına bakıldığı zaman mesai saati ile mesai saati sonrasında Remote Desktop Session Host sunucuları üzerinde benzer kullanımlar görülmektedir.

Ayrıca, Azure Monitor Sorgularının çalıştırışmış olduğu Remote Desktop ortamı içinde iki farklı Remote Desktop Session Host sunucusu bulunmakta ve yedekli ve yük dengelemek üzere tasarlanmış durumda. Bu sorgu sonucu bizlere şunu da göstermekte Remote Desktop ortamı içinde bulunan Remote Desktop Session host sunucuları yedekli ve yük dengelemek üzere eşit oranda çalıştıklarının bilgisini de bu sorgudan öğrenmekteyiz.

4.3. Terminal Services Sessions Working Set Peak

Terminal Services Sessions Working Set Peak bir önce ki başlıkta paylaşmış olduğumuz Terminal Services Sessions Working Set taleplerinin aşılmış olduğu eşik değerlerini bizlere göstermektedir.

Terminal Services Session Working Set Peak

Terminal Services Session Working Set Peak

Yukarıda paylaşmış olduğumuz Terminal Services Session Working Set Peak Azure Monitor sorgusu son 48 Saat içinde her 30 Dakika içinde ki değişiklikleri raporlamak için oluşturuldu. Paylaşılan bu Azure Monitor sorgusunu kendi yapınıza göre özelleştirebilirsiniz.

Terminal Services Session Working Set Peak sorgu çıktısı için eşik değeri bulunmamaktadır ve aynı zaman dilimleri için de tek düzey olması beklenmektedir. Sorgu çıktısına bakıldığı zaman mesai saati ile mesai saati sonrasında Remote Desktop Session Host sunucuları üzerinde benzer kullanımlar görülmektedir.

Ayrıca, Azure Monitor Sorgularının çalıştırışmış olduğu Remote Desktop ortamı içinde iki farklı Remote Desktop Session Host sunucusu bulunmakta ve yedekli ve yük dengelemek üzere tasarlanmış durumda. Bu sorgu sonucu bizlere şunu da göstermekte Remote Desktop ortamı içinde bulunan Remote Desktop Session host sunucuları yedekli ve yük dengelemek üzere eşit oranda çalıştıklarının bilgisini de bu sorgudan öğrenmekteyiz.

Terminal Services Session Working Set Peak Instance

Terminal Services Session Working Set Peak Instance

Terminal Services Session Working Set Peak sorgusunda eğer anormal bir grafik görünse idi paylaşmış olduğumuz Azure Monitor Sorgusunda ki Computer Parametresini instance olarak değiştirip bu anormal grafiği hangi oturumun yaptığını tespit edebilirdik.

Yukarıda paylaşmış olduğum ikinc Terminal Services Session Virtual Bytes Peak görüntüsü instance seviyesinde bu anormalliği nasıl tespit edeceğimizi öğrenmek için paylaşılmıştır.

5. Remote Desktop Server Terminal Services Sessions Page Bytes

Remote Desktop Server Mimarisi karmaşık bir mimariye sahiptir ve Terminal Services Sessions Page Bytes problemlerini bulmak zordur. Aslında tek düzey bir Windows işletim sisteminde bile performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında öğrenmek neredeyse imkansız durumdadır.

Terminal Services Sessions üzerinde yapacak olduğumuz Page Bytes incelemeleri ile Remote Desktop mimarisinde çalışan Remote Desktop Session Host üzerinde oluşması muhtemel performans problemlerinin önüne geçeceğiz.

5.1 Remote Desktop Server ve Terminal Services Sessions Page Bytes kavramları

Öncelikle Remote Desktop Mimarisini Terminal Services Sessions Page Bytes özelinde inceleyelim ve sonrasında Page Bytes kavramların ne olduğunu ve Remote Desktop mimarisine etkisini inceleyelim.

Terminal Services Sessions Bytes nedir sorusunu cevaplamadan önce giriş bölümünde belirtmiş olduğumuz Remote Desktop Server mimari karmaşıklığının altını çizelim.

Remote Desktop Server, Oturum Sanallaştırma sınıfına sahip bir sanallaştırma çözümüdür ve bu sanallaştırma çözümü de zaten başlı-başına karmaşık bir mimariye sahiptir. Bu sanallaştırma çözümünün mimarisini öğrendikten sonra Terminal Services Sessions Page Bytes ‘ ları daha iyi bir şekilde anlayabileceğiz.

Remote Desktop Server mimarisi, eski ismi ile Terminal Server mimarisi tek bir Windows Server işletim sistemi üzerinde birden fazla kullanıcı oturumuna hizmet veren bir mimaridir. Yani tek bir Windows Server işletim sistemi, tek bir bilgi işlem kaynağı (Bellek, işlemci, Disk) ama bu kaynakları paylaşan onlarca, yüzlerce kullanıcı ve tek kaynak üzerinde bulunan birden fazla sanal oturum. Biz buna Session Virtualization yani oturum sanallaştırması demekteyiz.

Bu sebepten ötürü bir Windows Server üzerinde performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında tespit etmek neredeyse imkansız durumdadır.

Windows Server 2012 ile birlikte isim değişikliğine gitmiş ve Terminal Server ‘dan Remote Desktop ismini almıştır. Bu isim değişikliği sadece ismi güncellemek için değil Windows Server 2012 ile birlikte Virtual Desktop mimarisi de bu isim altında hizmet vermeye başlamıştır. Bu gün odaklanacak olduğumuz Terminal Services Bytes kavramları ise Session Virtualization için geçerli olup Virtual Desktop ortamları için bu çalışma geçerli değildir.  Belki de bu gün bu makalede kullanacak olduğumuz Windows Perf komutları da eski ismi olan Terminal Services Session için kullanıldığı için geçerlidir.

5.1.1. Windows Server Page Bytes kavramları

Remote Desktop Server ve Terminal Services Sessions Page Bytes kavramları bölümünde Remote Desktop Server mimarisinin karmaşıklığını hatırladık. Şimdi ise Windows Server Page Bytes kavramlarını öğrenelim ve Remote Desktop Server Mimarisine etkisini konuşalım.

Makale başlığı Terminal Services Sessions Page Bytes olsa bile bu makale de kullanmış olduğumuz çıktılar Terminal Services Session ön ekli Windows Performance sayacıdır. Eğer, aranliz yapacak olduğumuz Windows Server üzerinde Terminal Services yada yeni ismi ile Remote Desktop Server yok ise ön ek olmadan da benzer problemlerin analizini yapabiliriz.

Windows Server Page Bytes sayaçları yada makalemizin konusu olan Terminal Services Page Bytes sayaçları, bellekte tutulan sayfa tablosunun sanal bellek adresinin numarasına göre sıralanmasını göstermektedir. Bu sanal bellek adresinin sıralanması ve numaralandırılması sağlıklı ortamlarda problemsiz olarak çalışmaktadır.

Fakat, bazen anlık gelişen yoğun iş yüklerinin artış göstermesi ve bu artış gösteren Windows işletim sisteminin bilgi işlem kaynaklarının bu artışa yetişememesi durumunda Page Bytes ‘lar bozulur ve bu bozulan Page Bytes ‘lar da Windows işletim sisteminin sağlıklı çalışmasına etki eder.

Yaşanılan artışlar belirli iş yüklerinin çalışmış olduğu zaman dilimindeyse (yedek alma görevi, raporların çalıştırılması, bakım yada güncelleştirme gibi) göz ardı edilebilir. Bu görevlerin bu yoğun iş yüklerine etki ettiği söylenebilir ve eğer sistemin genel çalışmasına etki etmiyorsa göz ardı edilebilir. Fakat, yaşanılan artışlar görev ne olursa olsun hangi zaman diliminde oluşursa oluşsun Windows işletim sisteminin toplam çalışmasına etki ediyorsa işte o zaman bizlerin duruma müdahale etmesi gerekmektedir.

Bu bozulmalar genellikle kullanıcı tarafına yansıyan görüntüsü Remote Desktop Server üzerinde uygulamaların yavaş açılması yada problemsiz çalışma anında birden uygulamanın hata vermesi, geç oturum açma yada yeni oturumları sistemin kabul etmemesi gibi yansıyabilir ve bu durumda kullanıcı deneyimleri bozulma gösterebilir.

Bu durumlar oluşmadan önce, kullanıcı deneyimleri bozulmadan önce bizlerin bunları tespit etmesi ve raporlaması beklenmektedir. Bu makalemiz için de raporları alacak aldığımız ürün #Azure Monitor çözümüdür.

Bu arada Windows Server Page Bytes kavramı sadece Windows işletim sistemlerine özgü bir durum değil Linux, MacOS gibi diğer işletim sistemleri de benzer mimarilere sahiplerdir.

5.2. Terminal Services Sessions Page Bytes

Terminal Services Sessions Page Bytes makalesi içinde aşağıda ki PerfMon Terminal Services ayarlarını inceleyeceğiz.

Paylaşmış olduğum Azure Monitor Sorguları son iki gün içinde her bir dakikada bir olmak üzere hazırlanmıştır ve sorguları kendi ihtiyaçlarınıza göre değiştirebilirsiniz.

Terminal Services Sessions Page Bytes sorguları için önerilen bir eşik değeri bulunmamaktadır. Sorguların çalıştırışmış olduğu zaman diliminde sivri uçların olmasına neden olan bir işlem yok ise yada kullanıcı deneyimlerinin bozulmuş olduğu zaman dilimlerinde sivrilen uçlar varsa Terminal Services Sessions Page Bytes ayarlarının iyileştirilmesi gerekmektedir.

  • Terminal Services Session(*)\Page Faults/sec
  • Terminal Services Session(*)\Page File Bytes
  • Terminal Services Session(*)\Page File Bytes Peak
  • Terminal Services Session(*)\Pool Nonpaged Bytes
  • Terminal Services Session(*)\Pool Paged Bytes
  • Terminal Services Session(*)\Thread Count

5.2.1. Terminal Services Session(*)\Page Faults/sec

Sistemin gerekli bilgileri RAM’de bulamama sayısı (hem donanım hem de yazılım sayfası hatalarını içerir). Bu süreçte yürütülen iş parçacıklarında meydana gelen sayfa hatalarının oranını bizlere göstermektedir.

Bir iş parçacığı, ana bellekte çalışma kümesinde olmayan bir sanal bellek sayfasına başvurduğunda bir sayfa hatası oluşur. Sayfa, bekleme listesindeyse ve dolayısıyla zaten ana bellekteyse diskten alınamayabilir. Sayfa, sayfayı paylaşan başka bir işlem tarafından kullanılıyorsa da alınamayabilir.

Terminal Services Session Page Faults sec

Terminal Services Session Page Faults sec

5.2.2. Terminal Services Session(*)\Page File Bytes

Bu işlemin disk belleği dosyasında/dosyalarında kullandığı geçerli bayt sayısını bizlere söylemektedir. Disk belleği dosyaları, diğer dosyalarda bulunmayan işlem tarafından kullanılan bellek sayfalarını depolamak için kullanılır. Disk belleği dosyaları tüm işlemler tarafından paylaşılır ve disk belleği dosyalarında yer olmaması diğer işlemlerin bellek ayırmasını engelleyebilir.

Terminal Services Session Page File Bytes

Terminal Services Session Page File Bytes

5.2.3. Terminal Services Session(*)\Page File Bytes Peak

Bu işlemin disk belleği dosyasında/dosyalarında kullandığı maksimum bayt sayısını bizlere söylemektedir. Disk belleği dosyaları, diğer dosyalarda bulunmayan işlem tarafından kullanılan bellek sayfalarını depolamak için kullanılır. Disk belleği dosyaları tüm işlemler tarafından paylaşılır ve disk belleği dosyalarında yer olmaması diğer işlemlerin bellek ayırmasını engelleyebilir.

Terminal Services Session Page File Bytes Peak

Terminal Services Session Page File Bytes Peak

5.2.4. Terminal Services Session(*)\Pool Nonpaged Bytes

Disk belleği olmayan havuzdaki bayt sayısı, diske yazılamayan ancak ayrıldıkları sürece fiziksel bellekte kalması gereken nesneler için sistem belleği alan boyutunu bizlere söylemektedir (işletim sistemi tarafından kullanılan fiziksel bellek). Bu özellik, yalnızca son gözlenen değeri görüntüler; ortalama değildir.

Terminal Services Session Pool Nonpaged Bytes

Terminal Services Session Pool Nonpaged Bytes

5.2.5. Terminal Services Session(*)\Pool Paged Bytes

Disk belleği havuzundaki bayt sayısı, kullanılmadıklarında diske yazılabilen nesneler için sistem belleği alanını bizlere söylemektedir (işletim sistemi tarafından kullanılan fiziksel bellek). Bu özellik, yalnızca son gözlenen değeri görüntüler; ortalama değildir.

Terminal Services Session Pool Paged Bytes

Terminal Services Session Pool Paged Bytes

5.2.6. Terminal Services Session(*)\Thread Count

İş parçacığı sayısının ayarlanması gerekip gerekmediğini belirlemek için iş parçacığı sayısını ve işlemdeki her iş parçacığı için işlemci süresini toplam işlemci süresiyle karşılaştırmak için kullanırız.

İş parçacıkları sürekli meşgulse ancak işlemci süresini tam olarak kullanmıyorsa, daha fazla iş parçacığına izin verilerek performans iyileştirilebilir. Ancak, tüm iş parçacıkları meşgulse ve işlemciler maksimum kapasitelerine yakın çalışıyorsa, iş parçacığı sayısını artırmak yerine yükü daha fazla sunucuya dağıtmak en iyisidir.

Terminal Services Session Thread Count

Terminal Services Session Thread Count

6. Remote Desktop Server Terminal Services Session Kernel Times

Terminal Services Session Kernel Times sayaçları Windows Server üzerinde çalışmakta olan Remote Desktop Server üzerinde ki oturumların uygulama performansını analiz etmek için kullanılan Windows Performans Sayaçlarıdır.

Terminal Services Session üzerinde yapacak olduğumuz Kernel Times incelemeleri ile Remote Desktop mimarisinde çalışan Remote Desktop Session Host üzerinde oluşması muhtemel performans problemlerinin önüne geçeceğiz.

6.1 Remote Desktop Server ve Terminal Services Session Kernel Times

Öncelikle Remote Desktop Mimarisini Terminal Services Session Kernel Times özelinde inceleyelim ve sonrasında Kernel Times kavramların ne olduğunu ve Remote Desktop mimarisine etkisini inceleyelim.

Terminal Services Session Kernel Times nedir sorusunu cevaplamadan önce giriş bölümünde belirtmiş olduğumuz Remote Desktop Server mimari karmaşıklığının altını çizelim.

Remote Desktop Server, Oturum Sanallaştırma sınıfına sahip bir sanallaştırma çözümüdür ve bu sanallaştırma çözümü de zaten başlı-başına karmaşık bir mimariye sahiptir. Bu sanallaştırma çözümünün mimarisini öğrendikten sonra Terminal Services Session Kernel Times daha iyi bir şekilde anlayabileceğiz.

Remote Desktop Server mimarisi, eski ismi ile Terminal Server mimarisi tek bir Windows Server işletim sistemi üzerinde birden fazla kullanıcı oturumuna hizmet veren bir mimaridir. Yani tek bir Windows Server işletim sistemi, tek bir bilgi işlem kaynağı (Bellek, işlemci, Disk) ama bu kaynakları paylaşan onlarca, yüzlerce kullanıcı ve tek kaynak üzerinde bulunan birden fazla sanal oturum. Biz buna Session Virtualization yani oturum sanallaştırması demekteyiz.

Bu sebepten ötürü bir Windows Server üzerinde performans analizi yapmak, raporlamak ve bir dar boğazı bulmak zorken bu ihtiyaçları Remote Desktop alt yapısında tespit etmek neredeyse imkansız durumdadır.

Windows Server 2012 ile birlikte isim değişikliğine gitmiş ve Terminal Server ‘dan Remote Desktop ismini almıştır. Bu isim değişikliği sadece ismi güncellemek için değil Windows Server 2012 ile birlikte Virtual Desktop mimarisi de bu isim altında hizmet vermeye başlamıştır. Bu gün odaklanacak olduğumuz Terminal Services Session Kernel Times kavramları ise Session Virtualization için geçerli olup Virtual Desktop ortamları için bu çalışma geçerli değildir.  Belki de bu gün bu makalede kullanacak olduğumuz Windows Perf komutları da eski ismi olan Terminal Services Session için kullanıldığı için geçerlidir.

6.2 Terminal Services Session Kernel Times Kavramları

Remote Desktop Server ve Terminal Services Session Kernel Times kavramları bölümünde Remote Desktop Server mimarisinin karmaşıklığını hatırladık. Şimdi ise Terminal Services Session Kernel Times  kavramlarını öğrenelim ve Remote Desktop Server Mimarisine etkisini konuşalım.

Makale başlığı Terminal Services Session Kernel Times  olsa bile bu makale de kullanmış olduğumuz çıktılar Terminal Services Session ön ekli Windows Performance sayacıdır. Eğer, ananliz yapacak olduğumuz Windows Server üzerinde Terminal Services yada yeni ismi ile Remote Desktop Server yok ise ön ek olmadan da benzer problemlerin analizini yapabiliriz.

Windows Server Kernel Times sayaçları yada makalemizin konusu olan Terminal Services Session Kernel Times sayaçları Windows Server ve uygulama performansını gözlemlemek için kullanılmaktadır. Terminal Services Session Kernel Times yada Windows Server Kernel Times sayaçları için 4 farklı Windows Perfmon sayacını inceleyeceğiz.

  • Terminal Services Session(*)\% Privileged Time
  • Terminal Services Session(*)\% Processor Time
  • Terminal Services Session(*)\% User Time

Bu makalemiz için de raporları alacak aldığımız ürün #Azure Monitor çözümüdür. Terminal Services Session Kernel Times makalesi içinde paylaşacak olduğumuz Azure Monitor Sorguları son 48 Saat içinde her bir dakika da ki değişiklikleri göstermek üzere paylaşılmıştır. Sorguları, ihtiyaçlarınız özelinde değiştirebilirsiniz.

6.2.1. Terminal Services Session(*)\% Privileged Time

Terminal Services Privileged Time yada bir başka deyiş ile Terminal Services Privileged Utility bir işlemcinin ayrıcalıklı modda yürütürken tamamladığı iş miktarıdır ve işlemcinin nominal performansında çalışıyor ve hiç boşta kalmıyorsa tamamlayabileceği iş miktarının bizlere söylemektedir. Bazı işlemcilerde Privileged Utility %100’ü geçebilir.

Terminal Services Session Privileged Time

Terminal Services Session Privileged Time

6.2.2. Terminal Services Session(*)\% Processor Time

Terminal Services Session(*)\% Processor Time, işlemcinin Boşta olmayan bir iş parçacığını yürütmek için harcadığı geçen sürenin yüzdesidir. İşlemcinin boş iş parçacığını yürütmek için harcadığı sürenin yüzdesel olarak ölçüler ve ardından bu değerin %100’den çıkarılmasıyla hesaplanır.

Her işlemcinin boşta olan bir iş parçacığı vardır ve başka hiçbir iş parçacığı çalışmaya hazır olmadığında bu süre birikmektedir. Bu sayaç, işlemci etkinliğinin birincil göstergesidir ve örnekleme aralığı sırasında gözlemlenen meşgul sürenin ortalama yüzdesini görüntüler. İşlemcinin boşta olup olmadığının hesaplaması, sistem saat tiklerinin dahili bir örnekleme aralığında gerçekleştirildiğine dikkat edilmelidir. Günümüzün hızlı işlemcilerinde, İşlemci Zamanı Yüzdesi, işlemci kullanımını hafife alabilir çünkü işlemci, sistem saati örnekleme aralığı arasında iş parçacıklarına hizmet vermek için çok fazla zaman harcıyor olabilir. İş yüküne dayalı zamanlayıcı uygulamaları, numune alındıktan hemen sonra zamanlayıcılar sinyal verdiğinden yanlış ölçülmesi daha muhtemel olan uygulamalara bir örnektir.

Terminal Services Session Processor Time

Terminal Services Session Processor Time

6.2.3. Terminal Services Session(*)\% User Time

Terminal Services Session(*)\% User Time işlemcinin kullanıcı modunda geçirdiği geçen sürenin yüzdesidir. Kullanıcı modu, uygulamalar, ortam alt sistemleri ve tümleşik alt sistemler için tasarlanmış kısıtlı bir işleme modudur. Alternatif olarak tasarlanan Privileged mod, işletim sistemi bileşenleri için tasarlanmıştır ve donanıma ve tüm belleğe doğrudan erişim sağlar. İşletim sistemi, işletim sistemi hizmetlerine erişmek için uygulama iş parçacıklarını ayrıcalıklı moda geçirir. Bu sayaç, ortalama meşgul süresini örnekleme süresinin yüzdesi olarak görüntüler.

Terminal Services Session User Time

Terminal Services Session User Time

7. Azure Monitor ile Remote Desktop Oturum Detaylarını İzleme Ön Şartlar

#Azure Monitor ile Remote Desktop Oturum Detaylarını İzleme işlemleri için Ön Şartlar bulunmaktadır.

  • Azure Log Analytics Workspace Oluşturma işleminin Azure Tenant üzerinde yapılmış olması gerekmekte.
  • Oluşturulan Azure Log Analytics Workspace üzerinde Azure Log Analytics Workspace Agents Configuration işlemlerinin tamamlanmış olması ve Azure Log Analytics Advanced settings bölümünde Windows Server Physical Disk Performance değerlerinin tanımlanması gerekmektedir. Bunlar özel sorgular olduğu için bu sorguları istediğimizi Azure Monitor aracına öğretmemiz gerekmektedir.
  • Windows Server Terminal Services Sessions Virtual Bytes değerlerini öğrenmek istediğimiz her bir Windows Server üzerine Azure Monitoring Agent Kurulum Adımları ‘nın tamamlanmış olması gerekmekte.

8. Azure Monitor ile Remote Desktop Oturum Detaylarını İzleme Öneriler

#Azure Monitor ile Remote Desktop Oturum Detaylarını İzleme işlemlerinin sağlıklı olması için ve Remote Desktop ortamlarını daha sağlıklı analiz edebilmek için ön şart olmayan ama önerecek olduğumuz ek bilgiler bulunmaktadır.

Terminal Services Sessions Page Bytes ayarları Windows Server üzerinde ki fiziksel yada sanal disk performansından da etlilenmektedir. Özellikle Page File yada Paging File işlemleri yapıldıktan sonra da problemler yaşanılıyorsa Windows Server üzerinde bulunan diskler üzerinde I/O problemleri olabilir ve bu problemleri de #PerfMon Logical Disk etiketi ile sizlerle paylaşmıştık aşağıda ki makaleleri inceleyerek disk problemlerini de tespit edebilirsiniz.

Windows Server Page File ve Smart Paging File Ayarları; Bir Windows Server üzerinde özellikle yanlış ve gelişi güzel yapılandırılmış bir Windows Server üzerinde yaşanılan performans problemini bulmak dar boğazı çözmek zorken bu problemleri Remote Desktop ortamında bulmak neredeyse imkansızdır.

Her Windows Server için yapılması gereken Windows Server Page File (Paging File) ayarlarını Remote Desktop Server ortamları için yapılandırılması önemlidir ve ayarları doğru yaptığımız zaman Terminal Services Sessions Private Bytes problemlerinin önüne geçebiliriz.

Kullanmakta olduğumuz Remote Desktop Session Host sunucusu eğer bir sanal sunucu üzerinde çalışıyorsa Smart Paging File ve Page File Storage Konfigürasyonu ‘da yapılmalıdır. HyperV Server üzerinde bu ayarların nasıl yapıldığını Smart Paging File ve Page File Storage Konfigürasyonu çalışmasında sizlere paylaşmıştık ve bu ayar sonrasında Terminal Services Sessions Private Bytes problemlerinin önüne geçebiliriz.