Microsoft Exchange Server Database Counters değerleri Exchange Server Role Konsolidasyon sürecinden sonra önem kazanmıştır. Microsoft Exchange Server 2010 ‘a kadar Exchange Server Database ihtiyacı için ayrılmış Exchange Server kurulum işlemini gerçekleştiriyor ve bu sunucu üzerinde sadece kullanıcı posta kutularını barındırıyordu.

Exchange Server 2013, Exchange Server 2016 ve Exchange Server 2019 mimarisinde bu tasarım değişmiş, Exchange Server Client Access Role ve Exchange Server Hub Transport Role servis olarak hizmet vermeye başlamıştır. Artık yeni kurulan her bir Exchange Mailbox Role üzerinde Exchange Server Client Access Services ve Hub Transport Services de barınmaktadır.

Microsoft Exchange Server üzerinde barınan bir posta kutusu, posta kutusuna erişmek için de erişmiş olduğu posta kutusundan e-posta gönderirken ve alırken de Exchange Server Mailbox Server ‘ı kullanmaktadır. Bu yeni tasarım Exchange Server kurulum işlemlerini basitleştirmiş ve kolaylaştırmış olsa bile plansız tasarlanan Exchange Server üzerinde performans problemlerinin oluşmasına neden olmuştur.

Microsoft Exchange Server üzerinde yaşanan dar boğaz ve performans problemleri için Microsoft Exchange Server Database Counters değerleri kullanılabilmektedir.

Microsoft Exchange Server Database Counters makalesi içinde aşağıdaki performans sorgularına odaklanacağız.

  • MSExchange Database ==> Instances(*)\I/O Database Reads (Attached) Average Latency
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Attached) Average Latency
  • MSExchange Database ==> Instances(*)\I/O Log Writes Average Latency
  • MSExchange Database ==> Instances(*)\I/O Log Writes Average Latency
  • MSExchange Database ==> Instances(*)\I/O Database Reads (Recovery) Average Latency
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Recovery) Average Latency
  • MSExchange Database ==> Instances(*)\I/O Database Reads (Attached)/sec
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Attached)/sec
  • MSExchange Database ==> Instances(*)\I/O Log Writes/sec
  • MSExchange Active Manager(_total)\Database Mounted

1.Microsoft Exchange Server Database Counters Nedir?

Aşağıdaki paylaşmış olduğumuz Exchange Server Database Counters paremetreleri ile Exchange Database üzerinde ki I/O gecikmeler tespit edebilir ve bu gecikmelerin olmaması için yapılması gerekli olan yönergeleri izleyebilirsiniz. Her bir Exchange Server Database Counter için kabul gören sayaçlarını ve bunların kabul edilebilir eşiklerini de paylaşmaktayız.

Exchange Server Database Counters değerlerinde ki ön görülen eşikler aşıldığında, istemci deneyimi düşer. Örneğin, kullanıcılar ileti tesliminde gecikmeler veya yavaş sistem performansıyla karşılaşabilir. Paylaşmış olduğumuz Exchange Server Database Counters değerleri Exchange Server 2013, Exchange Server 2016 ve Exchange Server 2019 için geçerli olup Exchange Server 2010 üzerinde ki bir çok Database Counters değeri ile benzerlik göstermekte ve kullanılabilmektedir.

  • MSExchange Database ==> Instances(*)\I/O Database Reads (Attached) Average Latency: Veritabanı okuma işlemi başına milisaniye (ms) cinsinden ortalama süreyi gösterir ve ortalama olarak 20ms ‘den az olmalıdır.
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Attached) Average Latency: Veritabanı yazma işlemi başına ms cinsinden ortalama süreyi gösterir ve ortalama olarak 50ms ‘den az olmalıdır.
  • MSExchange Database ==> Instances(*)\I/O Log Writes Average Latency: Günlük yazma işlemi başına ortalama süreyi ms cinsinden gösterir ve ortalama olarak 10ms ‘den az olmalıdır.
  • MSExchange Database ==> Instances(*)\I/O Database Reads (Recovery) Average Latency: Pasif veritabanı okuma işlemi başına ms cinsinden ortalama süreyi gösterir ve ortalama olarak 200ms ‘den az olmalıdır.
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Recovery) Average Latency: Pasif veritabanı yazma işlemi başına ortalama süreyi ms cinsinden gösterir ve MSExchange Database ==> Instances(*)\I/O Database Reads (Recovery) Average Latency Sayacı ile ölçülen gecikmesinden daha az olmalıdır.
  • MSExchange Database ==> Instances(*)\I/O Database Reads (Attached)/sec: Her Exchange Database örneği için saniyede veritabanı okuma işleminin sayısını gösterir ve bu değer için ön görülen bir değer bulunmamaktadır. Bu değerin yetersiz olduğunun belirlenmesi için Exchange Organizasyonu içinde bulunan kullanıcı deneyimleri dinlenmelidir. Raporlar da üst ve alt band arasında çok fazla değişiklik olmaması beklenmektedir.
  • MSExchange Database ==> Instances(*)\I/O Database Writes (Attached)/sec: Her Exchange Database örneği için saniyede veritabanı yazma işleminin sayısını gösterir ve ve bu değer için ön görülen bir değer bulunmamaktadır. Bu değerin yetersiz olduğunun belirlenmesi için Exchange Organizasyonu içinde bulunan kullanıcı deneyimleri dinlenmelidir. Raporlar da üst ve alt band arasında çok fazla değişiklik olmaması beklenmektedir.
  • MSExchange Database ==> Instances(*)\I/O Log Writes/sec: Her Exchange Database örneği için saniye başına günlük yazma sayısını gösterir ve bu değer için ön görülen bir değer bulunmamaktadır. Bu değerin yetersiz olduğunun belirlenmesi için Exchange Organizasyonu içinde bulunan kullanıcı deneyimleri dinlenmelidir. Raporlar da üst ve alt band arasında çok fazla değişiklik olmaması beklenmektedir.
  • MSExchange Active Manager(_total)\Database Mounted: Exchange Server Mailbox Server üzerinde barınan aktif Exchange Database sayısını gösterir.

2. Azure Monitor ile Exchange Server Database Counters İzleme

Exchange Server Database Counters değerlerinin tespiti için #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.

  1. Azure Log Analytics Workspace Oluşturma işleminin Azure Tenant üzerinde yapılmış olması gerekmekte.
  2. 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 Exchange Server Domain Controller Netlogon Counters değerlerinin tanımlanması gerekmektedir. Bunlar özel sorgular olduğu için bu sorguları istediğimizi Azure Monitor aracına öğretmemiz gerekmektedir.
  3. Exchange Server Organizasyonu içinde bulunan her bir Microsoft Exchange Server üzerine ve Exchange Server ‘in kullanmış olduğu Domain Controller sunucularına Azure Monitoring Agent Kurulum Adımları ‘nın tamamlanmış olması gerekmekte.
  4. Exchange Server Organizasyonu içinde bulunan her bir Microsoft Exchange Server üzerinde Exchange Server Diagnostics ve Health Manager Mimarisi ‘nin yapılandırılmış olması gerekmekte.
  5. Azure Monitor ile talep edilen sorguların sağlıklı olması için Exchange Server Daily Performance Logs Dizini Değiştirme işlemlerinin tamamlanmış olması gerekmekte.
  6. Azure Monitor ile talep edilen sorguların var olması dolayısı ile Exchange Server Log ve ETL Files Temizleme işleminin sorgu zamanları için hazır olması gerekmekte.

Yukarıda paylaşılan 6 temel gereksinim tamamlandıktan sonra Azure Monitor ile Exchange Server Database Counters değerlerini sorgulayabiliriz.

3. Exchange Server Database Counters Query

Azure Monitor için paylaşmış olduğum aşağıda ki Azure Monitor Exchange Server Database Counters Query sorguları son 24 saat içinde ki sorguları her 5 Dakika, 10 Dakika ve 30 Dakika gibi farklı aralıklarla çalıştırmak üzere paylaşılmıştır.

Bu sorguları ihtiyaçlarınız çerçevesinde özelleştirebilirsiniz.

4.1 MSExchange Database I/O Database Reads (Attached) Average Latency InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Database için MSExchange Database I/O Database Reads (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 20 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database I O Database Reads (Attached) Average Latency InstanceName

MSExchange Database I O Database Reads (Attached) Average Latency InstanceName

4.2 MSExchange Database I/O Database Reads (Attached) Average Latency Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için MSExchange Database I/O Database Reads (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 30 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Attached) Average Latency Computer.png

MSExchange Database IO Database Reads (Attached) Average Latency Computer.png

4.3 MSExchange Database I/O Database Writes (Attached) Average Latency InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Database Writes (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Writes (Attached) Average Latency InstanceName

MSExchange Database IO Database Writes (Attached) Average Latency InstanceName

4.4 MSExchange Database I/O Database Writes (Attached) Average Latency Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server  için I/O Database Writes (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Writes (Attached) Average Latency Computer

MSExchange Database IO Database Writes (Attached) Average Latency Computer

4.5 MSExchange Database I/O Log Writes Average Latency InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Database Writes (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Log Writes Average Latency InstanceName

MSExchange Database IO Log Writes Average Latency InstanceName

4.6 MSExchange Database I/O Log Writes Average Latency Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için Log Writes Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database I O Log Writes Average Latency Computer

MSExchange Database I O Log Writes Average Latency Computer

4.7 MSExchange Database I/O Database Reads (Recovery) Average Latency InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için Log Writes Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Recovery) Average Latency InstanceName

MSExchange Database IO Database Reads (Recovery) Average Latency InstanceName

4.8 MSExchange Database I/O Database Reads (Recovery) Average Latency Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için I/O Database Reads (Recovery) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Recovery) Average Latency Computer

MSExchange Database IO Database Reads (Recovery) Average Latency Computer

4.9 MSExchange Database I/O Database Writes (Recovery) Average Latency InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Database Writes (Recovery) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Writes (Recovery) Average Latency InstanceName

MSExchange Database IO Database Writes (Recovery) Average Latency InstanceName

4.10 MSExchange Database I/O Database Reads (Recovery) Average Latency Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için I/O Database Reads (Recovery) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Recovery) Average Latency Computer

MSExchange Database IO Database Reads (Recovery) Average Latency Computer

4.11 MSExchange Database I/O Database Reads (Attached)/sec InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Database Reads (Attached)/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Attached) sec InstanceName

MSExchange Database IO Database Reads (Attached) sec InstanceName

4.12 MSExchange Database I/O Database Reads (Attached)/sec Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için I/O Database Reads (Attached)/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Reads (Attached) sec Computer

MSExchange Database IO Database Reads (Attached) sec Computer

4.13 MSExchange Database I/O Database Writes (Attached)/sec InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Database Writes (Attached)/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Writes (Attached)sec InstanceName

MSExchange Database IO Database Writes (Attached) sec InstanceName

4.14 MSExchange Database I/O Database Writes (Attached)/sec Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için I/O Database Writes (Attached)/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Database Writes (Attached) sec Computer

MSExchange Database IO Database Writes (Attached) sec Computer

4.15 MSExchange Database I/O Log Writes/sec InstanceName Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server Database için I/O Log Writes/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Log Writes sec InstanceName

MSExchange Database IO Log Writes sec InstanceName

4.16 MSExchange Database I/O Log Writes/sec Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için I/O Log Writes/sec değerlerini görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Database IO Log Writes sec Computer

MSExchange Database IO Log Writes sec Computer

4.17 MSExchange Active Manager Database Mounted Computer Azure Monitor Query

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan ve aktif Exchange Database ‘lerinin sayısını görebilirsiniz. Azure Monitor Query 15 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MSExchange Active Manager Database Mounted Computer

MSExchange Active Manager Database Mounted Computer