Azure Monitor ile Processor ve Process Performans Analizi makalemiz içinde Azure Monitor Ajan ‘ı yüklü bulunan Windows Server üzerinde Process yani Windows Server üzerinde ki her bir işlemin performans analizini ve bu işlemcilerin her bir işlem için (Process) harcamış olduğu kaynak tüketimini, dar boğazını ve bu iki bileşenin Processor ve Process ‘in işletim sistemi üzerinde ki iş yüklerini, dar boğazı, olması beklenen yada olması beklenmeyen davranış analizini yapacak ve Windows Sunucularımız üzerinde işlemci kaynaklı dar boğazları ve kullanım durumlarını rapor edeceğiz.

Bildiğiniz gibi bir Windows Server üzerinde ki dar boğazı özellikle işlemci ve işlem özelinde oluşan dar boğazı tespit etmek zordur ve bu tespiti yapmak ve performans problemini tespit etmek, yetersiz işlemcileri belirlemek yada daha fazla işlem gücü isteyen işlemlerin hangi zaman dilimlerinde dar boğaza düştüğünü belirlemek için geniş çevrede analizler yapılması gerekmektedir.

Azure Monitor ile Processor ve Process Performans Analizi makale serisi bu sebep ile üç başlıktan oluşmakta ve her bir makalede ilgili konulara derin analizleri gerçekleştireceğiz.

  1. Azure Monitor ile Processor ve Process Performans Analizi (System)
  2. Azure Monitor ile Processor ve Process Performans Analizi (Processor)
  3. Azure Monitor ile Processor ve Process Performans Analizi (Process) (Bu makale)

1. Azure Monitor ile Processor ve Process Performans Analizi (Process)

Azure Monitor ile Processor ve Process Performans Analizi makale serimizin bu bölümünde Windows Server üzerinde ki işlemleri ve işlemlerin kullanmış olduğu kaynakları, kaynak tüketimini, bekleyen iş güçlerini, işlemlerin işlemiş olduğu işlemleri analiz edeceğiz.

Bu makale içinde odaklanacak olduğumuz Performans değerleri 7 tane olup aşağıda bu performans değerlerini görebilirsiniz.

  • Process(*)\% Processor Time
  • Process(*)\Thread Count
  • Process(*)\Private Bytes
  • Process(*)\Page File Bytes Peak
  • Process(*)\Page File Bytes
  • Process(*)\Priority Base
  • Process(*)\Handle Count

1.1 Process(*)\% Processor Time

Windows Server üzerinde  bulunan Process(*)\% Processor Time performans sayacı işlemcinin boşta olmayan bir iş parçacığını yürütmek için harcadığı sürenin yüzdesini görüntüler.

Bu sayacın değeri %50’den az olmalıdır. Ancak sık sık %85’in üzerine çıkıyorsa bu çıkışlar sistemin bir CPU darboğazıyla karşı karşıya olduğu anlamına gelir.

Copy to Clipboard
Process Processor Time

Process Processor Time

1.2 Process(*)\Thread Count

Windows Server üzerinde bulunan Process(*)\Thread Count performans değeri bir işlemde çalışan iş parçacıklarının sayısını göstermektedir ve işlemcinin eşzamanlı işleyebileceği maksimum  istek sayısını belirtir.

İşlemci üzerinde ki istekler sınıra ulaştığında, etkin isteklerin sayısı maksimum miktarın altına düşene kadar yeni isteklerin işlenmesini erteler.

Process(*)\Thread Count eşik değeri 100 olarak belirlenmiştir. Sunucularınız da planlanmış bir çalışma yoksa, iş yüklerine artış olabilecek bir işlem yoksa izleme süresi boyunca tek düzey olması beklenir. İzlenmiş olduğu zaman diliminde çok fazla değişken var ise yüksek olan zaman dilimlerinde ki iş yükleri ayrıca analiz edilmelidir.

Process(*)\Thread Count eşik değeri 100 olarak belirlenmiş olsa da tampon bölge olarak %25 uygun bir değerdir. Eğer %25 tampon bölgeye çok fazla dokunuşlar var ise Sisteminizde ekstra CPU eklemeli, iş parçacığı sayısını aşamalı olarak arttırmalısınız.

Her artıştan sonra performansı izleyin ve Performans doygunluğa ulaştığında (iyileşmeyi bıraktığında) iş parçacığı sayısını artırmayı bırakabilirsiniz.

Copy to Clipboard
Process Thread Count

Process Thread Count

1.3 Process(*)\Private Bytes

Windows Server üzerinde bulunan Process(*)\Private Bytes performans değeri bir işlem için ayrılan sanal bellek veya adres alanını temsil etmektedir.

Process(*)\Private Bytes performans değeri bir uygulamanın yürütme sırasında veya öncesinde talep ettiği bellek miktarının makul bir tahminidir. Spesifik olarak, bir işlem kendi özel belleğini tamamen tükettiğinde, özel baytlar işletim sistemi tarafından bir işleme tahsis edilen RAM miktarını gösterir.

Windows Server üzerinde bulunan bir uygulama ve hizmetin işlemekte olduğu Private Bytes değeri uygulama ve hizmete özel olduğu için sabit bir eşik değeri bulunmamaktadır ve izleme yapılmış olduğu zaman içinde tek düzey olması beklenmektedir.

Copy to Clipboard
Process Private Bytes

Process Private Bytes

1.4 Process(*)\Page File Bytes Peak

Windows Server üzerinde bulunan Process(*)\Page File Bytes Peak performans değeri yürütülmekte olan bir 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.

Process(*)\Page File Bytes Peak performans değerleri tek başına bir anlam ifade etmemez ve bu performans değerinin Page File verisinin barınmış olduğu Logical Disk alanları ile birlikte analiz edilmesigerekmektedir.

#PerfMon Logical Disk etiketi ile hazırlamış olduğumuz makaleler bu bölüm ile birlikte incelenmeli ve Page File Bytes Peak performans çıktıları aşağıda ki performans değerleri ile birlikte yorumlanmalıdır.

Eğer Process(*)\Page File Bytes Peak performans değerleri için bir problem tespit ettiyseniz Windows Server üzerinde Windows Server Performans ve Virtual Memory makalesinde anlatmış olduğumuz iyileştirme adımlarını yerine getirebilirsiniz. Sanallaştırma ortamları içinde Smart Paging File ve Page File Storage Konfigürasyonu makalesinde anlatmış olduğumuz işlemleri yapmanızı önermekteyiz.

Copy to Clipboard
Process Page File Bytes Peak

Process Page File Bytes Peak

1.5 Process(*)\Page File Bytes

Windows Server üzerinde bulunan Process(*)\Page File Bytes performans değeri bir önce ki başlıkta paylaşmış olduğumuz Page File Bytes Peak ‘değerinin yüksek uçları olmadığı zamanda oluşturmuş olduğu performans değerleridir.

Eğer, bir Windows Server üzerinde Page File ayarları beklentiler çerçevesinde yapıldıysa Peak ‘lerin olmaması gerekmekte ve bu iki performans değerinin bir-biri ile benzerlik taşıması beklenmektedir.

Windows Server üzerinde bulunan Process(*)\Page File Bytes Peak değeri Page File değerinin yetişmediği durumları bizlere söylerken Process(*)\Page File Bytes değeri ise kullanım durumunu bizlere söylemektedir.

Copy to Clipboard
Process Page File Bytes

Process Page File Bytes

1.6 Process(*)\Priority Base

Windows Server üzerinde bulunan Process(*)\Priority Base performans değeri bir işlemci üzerinde bulunan iş parçacıklarının planlamasını belirlemektedir.

İş parçacıklarını düzene sokmakta, işlem sıralamasını ve öncelik belirleme işlemini gerçekleştirmektedir. Bu açıklama biraz kavram karmaşası oluşturmuş olsa bile işlemci üzerinde ki bir işlem işletim sistemi tarafından değil işlem kodu tarafından belirlenmekte ve iş parçacıklarının dinamik önceliklerini belirlemek için kullanılır.

Process(*)\Priority Base performans değeri için bir eşik değeri olmamakla birlikte keskin tavan ve taban değerlerinin olmaması beklenmekte ve inceleme yapılmış olduğu zaman diliminde tek düzey olması beklenmektedir.

Copy to Clipboard
Process Priority Base

Process Priority Base

1.7 Process(*)\Handle Count

Windows Server üzerinde bulunan Process(*)\Handle Count performans değerini konuşmadan önce Windows Server için bu değerin ne anlam ifade ettiğini açıklayalım.

Windows Server Process Handle Count

Windows Server Process Handle Count

Process(*)\Handle Count değeri bir Windows Server üzerinde her bir virtual processor için 64K sınırı bulunmaktadır. Yukarıda paylaşmış olduğumuz Windows Server Process Handle Count ekran görüntüsünü referans alarak yorumlayalım.

Yukarıda paylaşılan ekran görüntüsü içinde 24 Adet virtual processor bulunmakta ve her birisi 64K adet Handle Count tutabildiğine göre bu Windows sunucusu üzerinde 24×64=1,536K Handle Count tutabilmektedir.

Handle Count değeri bir windows server üzerinde eş zamanlı işlenecek işlem sayısını belirlemektedir. Yukarıda ki örnek rakamları dikkate alırsanız bir Windows Sunucusuna neden daha fazla virtual Processor ekleyelim sorusuna da cevap bulmuş olacaksınız.

Her bir işlem için de 10.000 adet işlemi eş zamanlı işleyebilmektedir. Windows Server üzerinde yapacak olduğunuz kayıt defteri değişiklikleri ile bu sayısı 18.000 ‘e kadar (önerilmez) yükseltebilirsiniz.

Bir Windows Server üzerinde ki virtual processor sayısı toplam işlenecek işleme etki eder ama bir işlem için sınır olan 10.000 adet işleme etki etmez.

Process(*)\Handle Count performans değeri için bir eşik değeri yoktur. izleme yapmış olduğunuz zaman dilimi içinde Windows Sunucusu üzerinde ne kadarlık işlemin işlendiğini görebilirsiniz.

Process(*)\Handle Count performans değeri Process(*)\Thread Count performans değeri ile birlikte yorumlandığı zaman anlam kazanacaktır.

Copy to Clipboard
Process Handle Count

Process Handle Count