Microsoft Exchange Server üzerinde performans beklentisinde ki en önemli faktörlerden bir tanesi Microsoft Exchange Server Active Database Copy Performance Requirements değerleridir. Microsoft Exchange Server Role Konsolidasyon süreci içinde bir çok dönüşüme uğradı ve bu dönüşüm sonrasında Exchange Server Mailbox Server olarak tek bir görev ile çalışmaya devam etmektedir.

Eski Exchange Server mimarisinde sahip olduğumuz her bir görev artık Exchange Server Mailbox Server çatısı altında Exchange Services olarak devam etmektedir. Exchange Server 2016 ‘a kadar e-posta istemcilerini Exchange server ‘a bağlamak için kullanılan Exchange Client Access Role artık Exchange Client Access Services olmuş durumda. Exchange Server 2013 ‘e kadar e-posta iletilerini gönderen ve alan Exchange Hub Transport Role artık Microsoft Exchange Mailbox Transport Submission ve Microsoft Exchange Mailbox Transport Delivery ve alt servisleri olmak üzere birden fazla servise ayrılmış durumda.

Exchange Server 2007 ‘den Exchange Server 2019 sürümüne kadar bir çok konsolidasyon süreci gerçekleşti ve günün sonun da tek bir Role yani Exchange Server Mailbox Server olacak şekilde tek bir Exchange Role ile konsolidasyon şimdilik tamamlandı.

Bu süreç, E-posta gönderen ve alan kullanıcıların aynı sunucu üzerinde posta kutularını barındırmalarını, aynı sunucu üzerinde posta kutularına erişmelerini ve aynı sunucu üzerinden ileti gönderme ve alma işlemlerini yapmalarını sağlamıştır. Bu konsolidasyon süreci Exchange Server Kurulum işlemlerini kolaylaştırmış olsa da bir problem anında yada performans ihtiyaçlarının gün yüzüne çıkıp yavaş bağlantıların oluştuğu durumlarda işleri karmaşık duruma getirmiştir.

1. Exchange Server Storage Configuration

Microsoft Exchange Server 2016 ile birlikte artık sadece Exchange server Mailbox Role sahibiz. Diğer bütün Exchange Role iş görevleri Exchange Services olarak hizmet vermekte.

Exchange Server ‘in tek bir iş görevi ile çalışması Exchange Server tasarımlarının eskiye göre daha detaylı yapılmasını zorunlu kuldu. Exchange server Kurulum işlemlerini tek düzey yapmak, şirket iş ihtiyaçları ve performans gereksinimlerini göz ardı etmek bir çok performans problemine neden olmakta ve kuruluş e-posta ihtiyaçlarının karşılanmamasına neden olmaktadır.

Exchange server özelinde gerçekleşen bu dönüşümler fiziksel sunucu, sunucu iş parçaları ve veri depolama havuzlarını üreten firmaları içinde geçerli. Onlar da kendi fiziksel ürünleri üzerinde iyileştirmeler yapmakta ve eski bilgi işlem parçalarına göre daha hızlı, daha güvenli ve daha sağlıklı ürünler üretmektedir.

Son 10 sene içinde bir çok türde fiziksel bilgi işlem ürünleri ve veri depolama havuzları ile tanıştık ve her birisi de bu gün daha güçlü durumda. Direct-attached storage (DAS), Storage area network (SAN), SAN, Fibre Channel mimarileri desteklenen veri depolama havuzlarımız olup bu veri depolama havuzları için  Serial Attached SCSI, Serial Attached SCSI, Fibre Channel, Solid-state drive (SSD) (flash disk) gibi bir çok disk depolama ürünleri de desteklenmektedir.

Exchange Server Choosing Disk Types

Exchange Server Choosing Disk Types

Exchange Server storage configuration options dökümanında görüleceği üzere bir çok disk türü Exchange server için desteklenmektedir. Bu döküman içinde eski geleneksel öneriler yani RAID yapılandırması, hangi RAID türünü seçmeliyiz gibi bir çok seçenekte bulunmakta. Fakat bu seçenekler geleneksel öneriler olduğu için bir çok uzmana doğru rehberlik yapmamaktadır.

2. Microsoft Exchange Server ve Virtulization Teknolojisi

Microsoft Exchange Server her yeni sürümde güncellenmekte ve güncelleme süreci de Exchange Server Cumulative Update Paketi ile de genişlemektedir. Fiziksel ürün üreticileri de eskiye göre daha hızlı, daha sağlıklı veri depolama havuzları üretmekte ve bu yeniliklere sanallaştırma dünyası da katılmakta.

Exchange Server 2010 SP3 ile birilite artık Exchange Server ‘lar Microsoft HyperV ve Vmware ESX sunucuları üzerinde sanal olarak çalışabilir duruma gelmişti ve bu günde sanallaştırma alt yapılarında çalışmaktadır.

Microsoft Exchange Server bir çok dönüşüm sürecine girdi ve günümüz ihtiyaçlarını yakaladı. Fiziksel ürünler de sıkı bir rekabet içine girdi ve çok farklı veri depolama havuzlarını sektöre kazandırdı. Sanallaştırma dünyası da her geçen gün destek ağını genişletti ve yeni teknolojileri barındırabilir ve farklı yapılandırma türleri ile bunları destekleyebilir duruma geldi.

Nasıl ki Exchange Server kurulumları tek düzey yapılamayacağını söylüyorsak aynı kural sanallaştırma dünyası içinde geçerli durumda. Sanallaştırma dünyasında da bu isterse Microsoft HyperV olsun isterse VMware ESX olsun hiç bir iş görevini tek düzey kuramayız ve iş sunucularının ihtiyaçları çerçevesinde tasarımlar yapmalıyız.

Bu ihtiyaçlar bellek, işlemci sanallaştırma işlemlerinde bir nebze daha kolay olsa bile iş veri depolama havuzlarına geldiği zaman işler biraz karmaşık hale almaktadır. #discovery-hyper-v etiketi ile paylaşmış olduğumuz video ve blog yazılarımızda bu ince ayarlardan örnekler vermiş performanslı sanal makineler için özel tasarımların nasıl yapılacağını örneklerle sizlere sunmuştuk. Çalışmalarımız da en önemli konu olan ve bu makalede paylaşmış olduğumuz disk türleri ve veri depolama havuzlarının bir örneğini  Microsoft hyperv server ve veri depolama havuzlari konu başlığında incelemiştik.

3. Exchange Server Virtual Machine olarak çalıştırmak

HyperV Server Windows Server 2012 ile Pass Through Disk mimarisini Windows Server 2012 R2 ile birlikte Virtual Fibre Channel mimarisini desteklemeye başladı. Microsoft Exchange Server 2010 Sp3 ile birlikte Sanallaştırma ortamlarında Virtual Machine olarak desteklenmeye başladı ve bu destek kapsamında ise bu iki fiziksel disk bağlama türü önerildi.

Evet, Sanal makine olarak çalışan bir Exchange Server VHD, VHDX, VMDK disk türlerinde çalışıyor olsa bile yoğun iş yükleri ve performans isteyen e-posta sistemleri için sanal makine üzerinde fiziksel disk bağlantısını önerdi. HyperV Virtual Fibre Channel ve HyperV Pass Through Disk mimarileri bir-birine çok benziyor olsa da kullanım alanları farklıdır ve sanal makine olarak çalışan bir Exchange Server için önerilmektedir.

Sanal makine olarak hizmet veren bir Exchange server üzerinde Virtual Hard Disk Performans ve Fragmentation Problemi yaşamamak için HyperV Virtual Fibre Channel yada Pass Through Disk kullanılmalı eğer bu disk türleri kullanılamıyorsa Fix disk olarak tasarlanmış VHDX disk türü seçilmelidir. VHD disk türü destekleniyor olsa bile önerilen ve daha sağlıklı çalışan HyperV VHDX disk türü Exchange Server için önerilmektedir. HyperV Virtual Hard Disk Türleri ve Farkları konu başlığında HyperV Disk türlerini detaylı olarak incelemiştik.

4. Active Database Copy I/O Latency Requirements Counters

Exchange Server Kurulum işlemleri eskiye göre çok daha kolay olmuş olsa bile aynı şekilde tasarımları ve Exchange Server Performans çözümleri de o derece karmaşık bir duruma gelmiştir.

Artık her bir Exchange Server, Exchange Database barındırmakta, Exchange Posta kutularına erişim görevini üstlenmekte ve e-posta göndermekte ve almaktadır.  Aynı zaman da her bir Exchange Mailbox Server ‘da Exchange Server Business Continuity Planları içinde en önemli iş görevi olmuştur.

Her bir Exchange Server ‘in felaket anına hazırlıklı olması için ihtiyaç duyulan Exchange Server performans ihtiyaçlarını karşılaması gerekmekte ve Exchange Mailbox Server için de en önemli kriter Active Database Copy I/O Latency Requirements Counters ‘larının beklenilen değerlerde olması gerekmektedir.

Aşağıda paylaşmış olduğum Exchange Server Active Database Copy I/O Latency Requirements Counters değerleri ile her bir Exchange Server üzerinde ki Exchange Server Database disk okuma hızı, disk yazma hızı ve performans yetersizliği nedeniyle oluşan Database Page Fault Stalls yani hata anı için kuyruğa alma sürelerini paylaşmaktayız.

  • MSExchange Database\I/O Database Reads (Attached) Average Latency: Exchange Database okuma işlemleri için ortalama süreyi milisaniye (ms) cinsinden belirtir. Ortalama değer 20 ms’nin altında olmalıdır. Sivri uçlar (maksimum değerler) 100 ms’den yüksek olmamalıdır.
  • MSExchange Database\I/O Database Writes (Attached) Average Latency: Exchange Database yazma işlemleri için ortalama süreyi ms cinsinden belirtir. Veritabanı yazma işlemleri eş zamansız olduğundan ve veri depolama teknolojileri ön bellek kullandığı için önerilen değer MSExchange Database\I/O Database Reads (Attached) Average Latency değerinin altında olması gerekmektedir.
  • Database\Database Page Fault Stalls/sec: Exchange Database önbelleğinden tahsis edilebilecek sayfa olmadığında hizmet verilemeyen sayfa hatalarının oranını gösterir. Sağlıklı bir exchange mailbox server üzerinde bu değerin sıfır olması beklenir. MSExchange Database\I/O Database Writes (Attached) Average Latency değeri çok yüksek olduğu zaman ara-ara görülen yükseklikler göz ardı edilebilir.
  • Database\Log Threads Waiting: Exchange Database Log ‘dosyalarının Exchange Database eklenirken kuyrukta bekleyen log sayısını gösterir. Ortalama bekleyen olay günlük sayısı 10 ‘un altında alması beklenmektedir.
  • Database\Log Record Stalls/sec: Exchange Database Log bellekleri dolu olduğunda saniye başına log ‘a eklenemeyen günlük kaydı sayısını gösterir. Ortalama değer 10 ms altında olmalıdır ve maksimum değer 100 ms geçmemelidir.

5. Azure Monitor ile Exchange Server Active Database Copy I/O Latency Requirements Counters izleme

Exchange Server Active Database Copy I/O Latency Requirements 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 Active Database Copy I/O Latency Requirements 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 Active Database Copy I/O Latency Requirements değerlerini sorgulayabiliriz.

6. Exchange Server Active Database Copy I/O Latency Requirements Query

Azure Monitor için paylaşmış olduğum aşağıda ki Azure Monitor Microsoft Exchange Server Active Database Copy Performance Requirements sorguları son 4 saat içinde ki sorguları her 1 dakika aralıklarla çalıştırmak üzere paylaşılmıştır.

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

6.1 MSExchange Database IO Database Reads (Attached) Average Latency Computer

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

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

MSExchange Database IO Database Reads (Attached) Average Latency Computer

6.2 MSExchange Database IO Database Reads (Attached) Average Latency Instancename

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

Copy to Clipboard
MSExchange Database IO Database Reads (Attached) Average Latency Instancename

MSExchange Database IO Database Reads (Attached) Average Latency Instancename

6.3 MSExchange Database IO Database Writes (Attached) Average Latency Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için MSExchange Database IO Database Writes (Attached) Average Latency değerlerini görebilirsiniz. Azure Monitor Query 1 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

6.4 MSExchange Database IO Database Writes (Attached) Average Latency Instance

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

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

MSExchange Database IO Database Writes (Attached) Average Latency Instance

6.5 MsExchange Database Page Fault Stalls sec Computer

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server için MsExchange Database Page Fault Stalls sec değerlerini görebilirsiniz. Azure Monitor Query 1 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MsExchange Database Page Fault Stalls sec Computer

MsExchange Database Page Fault Stalls sec Computer

6.6 MsExchange Database Page Fault Stalls sec Instance

Aşağıda paylaşmış olduğum Azure Monitor Query ile Exchange Server üzerinde bulunan her bir Exchange Server üzerinde bulunan Exchange Database için MsExchange Database Page Fault Stalls sec değerlerini görebilirsiniz. Azure Monitor Query 1 Dakika içinde çalıştırılmak üzere hazırlanmıştır.

Copy to Clipboard
MsExchange Database Page Fault Stalls sec Instance

MsExchange Database Page Fault Stalls sec Instance

6.7 MsExchange Database Log Threads Waiting Computer

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

Copy to Clipboard
MsExchange Database Log Threads Waiting Computer

MsExchange Database Log Threads Waiting Computer

6.8 MsExchange Database Log Record Stalls/sec Computer

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

Copy to Clipboard
MsExchange Database Log Record Stalls sec Computer

MsExchange Database Log Record Stalls sec Computer

Bu makale içinde anlatılan bilgilerin video eğitim içeriğine Microsoft Exchange Server Active Database Copy Performance Requirements adresinden erişebilirsiniz.