Azure Monitor ile Processor ve Process Performans Analizi makalemiz içinde Azure Monitor Ajan ‘ı yüklü bulunan Windows Server üzerinde Processor (CPU) yani işlemcilerin 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.
- Azure Monitor ile Processor ve Process Performans Analizi (System) (Bu makale)
- Azure Monitor ile Processor ve Process Performans Analizi (Processor)
- Azure Monitor ile Processor ve Process Performans Analizi (Process)
1. Azure Monitor ile Processor ve Process Performans Analizi (System)
Azure Monitor ile Processor ve Process Performans Analizi makale serimizin bu bölümünde Windows Server üzerinde ki işlemci ve işlemlerin kullanımını işletim sistemi üzerinde analizlerini gerçekleştireceğiz.
Bu makale içinde odaklanacak olduğumuz Performans değerleri üç tane olup aşağıda bu performans değerlerini görebilirsiniz.
- System(*)\Processor Queue Length
- System(*)\System Calls/sec
- System(*)\Context Switches/sec
1.1 System(*)\Processor Queue Length
Windows Server üzerinde bulunan System(*)\Processor Queue Length performans sayacı , işlemci süresini bekleyen iş parçacıklarının kuyrukta bekleme sayısı hakkında bizlere bilgi verir. Bu sayacın değeri sıfırdan büyükse sistem CPU darboğazı yaşıyor demektir.
Normal çalışma dönemlerinde bu değerin sıfır olması beklenir. Fakat rutin çalışma zamanları dışında, kullanıcı çalışma deneyimine etki etmeyecek, biz sistem yöneticilerinin görevleri olan yedek alma görevleri, işletim sistemi ve uygulama güncelleştirme görevleri, verimlilik ve optimizasyon çalışmaları göz ardı edilmelidir.
Bu göz ardı etme bakış açısı ne zamana kadar süre gelmelidir. Yedek alma görevlerinden örnek verelim. Eğer mesai saati dışında, kullanıcı çalışmaları olmadığı zaman dilimlerinde System(*)\Processor Queue Length değerleri yüksek tepelere ulaşıyor fakat kullanıcı çalışmaları başladığı zaman bu değerler sıfır olursa, System(*)\Processor Queue Length değerleri bizler için kabul görecektir.
Yedek alma, işletim sistemi yada uygulama güncelleştirme işlemleri, verimlilik ve optimizasyon çalışmaları kullanıcı çalışmasına etki etmeden bizler görevlerimizi yapıyorsak, yapmış olduğumuz bu çalışmalar kullanıcı çalışmasına etki etmiyorsa işlemci kuyruğunda bekleyen görevler bizler için kabul olmalıdır.
Windows işletim sistemleri üzerinde yapmış olduğumuz bu türde işlemler genellikle kullanıcılarımızın yapacak olduğu rutin çalışmalardan daha fazla ardışık işlemi içermekte ve bu zaman dilimlerinde işlemci kaynakları bizler için yeterliyse, System(*)\Processor Queue Length değerlerini kabul edebiliriz.
Windows işletim sistemleri üzerinde yapmış olduğumuz bakımlar bizler için referans olacaktır.
Azure Monitor ile System(*)\Processor Queue Length değerlerini aşağıda ki Azure monitor sorgusu ile tespit edebilirsiniz. Bu sorgu çalıştırmış olduğunuz zaman dilimi içinde her 5 dakikalık aralıklar ile Processor Queue Length değerlerini bizlere gösterecektir.

System Processor Queue Length
1.2 System(*)\System Calls/sec
Windows Server üzerinde bulunan System(*)\System Calls/sec performans sayacı işletim sistemi hizmet rutinlerinde saniye başına yapılan işlem sayısını gösterir.
Processor Queue Length performans sayıcı işlemci üzerinde işlem bekleyen iş sayısını, kuyrukta bekleyen işlemleri gösterirken System(*)\System Calls/sec performans sayacı o anda işlemcinin yapmış olduğu aktif işlem sayısını bizlere göstermektedir.
System(*)\System Calls/sec performans sayacı için saniyede 2.000.000’in altında yer alan performans değerleri bizler için kabul görecektir. Daha yüksek değerler, işletim sistemi üzerinde barınan yazılım uygulamaları ve kullanıcı işlemlerinin neden olduğu aşırı yükleri bizlere söyleyecektir ki bu değer eşik değerine çok yakın seyir ediyorsa yada eşik değerinin üzerinde işlem yapıyorsa işlemci güncelleştirme yada işlemci artışını yapmamız gerektiğini bizlere söyleyecektir.
Azure Monitor ile System(*)\System Calls/sec performans değerlerini aşağıda ki Azure monitor sorgusu ile tespit edebilirsiniz. Bu sorgu çalıştırmış olduğunuz zaman dilimi içinde her 5 dakikalık aralıklar ile System Calls/sec değerlerini bizlere gösterecektir.

System System Calls sec
1.3 System(*)\Context Switches/sec
Windows Server üzerinde bulunan System(*)\Context Switches/sec performans sayacı Windows işletim sistemi üzerinde yürütülen bir işlemin veya iş parçacığının saklama işlemidir ve geçiş işlemidir.
Günümüz işlemcileri fiziksel olarak birden fazla çekirdeğe sahip durumda ve Windows işletim sistemleri üzerinde de bu birden fazla fiziksel çekirdeği birden fazla mantıksal çekirdeğe de böle-bilmekteyiz.
Günümüz işletim sistemleri ve uygulamaları da bu çekirdekler arasında geçiş yapabilmekte, yürütmekte olduğumuz bir işlem aynı zaman diliminde birden fazla işlemci ve çekirdek üzerine geçiş yaparak parçalı bir şekilde yürütülebilmelidir.
Yani, bizler bir işlemi yürüttüğümüz zaman işlemciler bir işlemi, işlemciler arasında böle-bilmekte bir işlemi ayrı-ayrı işleye-bilmekte ve sonucu bizlere bütün olarak verebilmektedir.
Windows işletim sistemlerinin yapmış olduğu bu işlem performans sayaç değerlerinde System(*)\Context Switches/sec olarak adlandırılmakta rutin çalışma dönemlerinde buffer olarak adlandırmış olduğumuz tampon bölgede bu değer 20-25 Bin aralığında tek düzey olması beklenirken eşik değeri 50.000 ‘in üzerinde olmaması gerekmektedir.
Daha yüksek değerler, System(*)\Context Switches/sec tampon bölgesinin çok değişken olması işletim sistemi üzerinde barınan yazılım uygulamaları ve kullanıcı işlemlerinin neden olduğu aşırı yükleri bizlere söyleyecektir ve bu değer uzun zaman diliminde tek düzey olmayıp ve eşik değerine çok yakın seyir ediyorsa yada eşik değerinin üzerinde işlem yapıyorsa işlemci güncelleştirme yada işlemci artışını yapmamız gerektiğini bizlere söylemektedir.
Azure Monitor ile System(*)\Context Switches/sec performans değerlerini aşağıda ki Azure monitor sorgusu ile tespit edebilirsiniz. Bu sorgu çalıştırmış olduğunuz zaman dilimi içinde her 5 dakikalık aralıklar ile System Calls/sec değerlerini bizlere gösterecektir.

System Context Switches sec























