Exchange Server 2007 – Back Pressure

Exchange Server 2007 – Back Pressure

 

Exchange Server  2007 özellikle büyük işletmeler için vazgeçilmez bir ürün olma özelliğini korurken, bu ürünü koşturacağımız sunucuların da sistem kaynağı gereksinimleri hiç de azımsanacak seviyede değil. Production ortamında her ne kadar 64bit sunucular kullanmak mecburiyetinde olsak da , gerek eğitim kurumlarında gerekse kişisel çalışmalarımızda her zaman 64bit mimaride , 8gb ramli , raid yapısında diskleri olan makinalar kullanmamız her zaman mümkün değil. Yavaş çalışması da sorun değil  fakat Exchange Server 2007 ile birlikte gelen Back Pressure özelliği sayesinde sistem kaynakları sürekli takip edilmekte ve kritik(!) seviyelere düştüğünde çeşitli hizmetlerde kesintiler yapılmaktadır. Bu makalede Back Pressure özelliğini inceleyeceğiz.

Back Pressure sistem kaynaklarını sürekli izleyen bir özelliktir ve Microsoft Exchange Transport Service tarafından kontrol edilir. Bu servis Exchange 2007 rollerini bulunduran sunuculardan Hub Transport ve Edge Transport olanlarda bulunur. Edge Transport sunucular her yapıda kullanılmasa da Hub Transport Exchange için vazgeçilmez bir roldür ve bu sunucular üzerinde  Back Pressure açık olarak gelir. Önemli sistem kaynakları; örneğin kullanılabilir harddisk miktarı , kullanılabilir ram miktarı , sürekli olarak izlenir. Belirlenmiş limitlerin üzerine çıkığında ise Exchange Server bağlantıları kabul etmeyi ve mailleri göndermeyi bırakır. Bu sayede sistemin tamamen hizmet veremez hale gelmesinin önlenmesi amaçlanır. Bu sırada göndermeye çalıştığımız mailler Draft yani Taslaklar klasöründe bekleyeceklerdir. Sistem kaynakları kabul edilebilir değerlere ulaştığında ise bağlantı istekleri karşılanmaya ve mailler gönderilmeye devam edilir. Back Pressure devrede iken Exchange sunucuya gelen smtp istekleri resimdeki gibi bir hata ile karşılaşır. Burada 25 nolu porttan telnet yapmayı deniyoruz. Exchange Server’ın kuyruğunu da görüntüleseniz yine 452 4.3.1 nolu hata ile karşılaşırsınız.

Aşağıdaki kaynaklar Back Pressure tarafından izlenir

 

İzlenen her sunucu için 3 farklı kaynak kullanım seviyesi vardır.

Bu özellik ile ilgili ayarlar Hub Transport ve Edge Transport sunucular üzerinde Exchange’in kurulu olduğu dizin altında bin klasöründe EdgeTransport.exe.config dosyasında tutulmaktadır. Bu dosyada yaptığımız değişikliklerin aktif olması için “Microsoft Exchange Transport Service” servisini yeniden başlatmamız gerekir. Eğer dosyada eksik veya geçersiz bir değer olursa default değerler geçerlidir. Default değerlerin bir kopyasını EdgeTransport.exe.config.bak dosyasında bulabiliriz. Şimdi bu dosya içindeki ayarlara bir göz atalım.

Genel Ayarlar

Parametre

Açıklama

EnableResourceMonitoring

Bu parameter Back Pressure özelliğini açar yada kapatır. Default değeri “true”

ResourceMonitoringInterval

Bu parameter hangi sıklıkla sistem kaynaklarını kontrol edeceğini belirtir. Şu formatta bilgi girişi yapılabilir; hh:mm:ss, h = saat, m = dakika,  s = saniye. Default değeri 00:00:02. Geçerli aralık 00:00:01 – 00:00:30.

EnableResoureceMonitoring değerini “false” olarak değiştirerek Back Pressure özelliğini kapatmak mümkün. Fakat production ortamında tavsiye edilmeyen bir çözüm. Ancak eğitim kurumlarında veya kişisel çalışmalarımızda düşük konfigürasyonlu sistemlerde bu tarz bir çözüme gidebiliriz.

 

Mail kuyruğunun veritabanını bulunduran diskteki boş alan miktarının izlenmesi

Exchange 2007 ile birlikte gelen yeni bir özellikte e-mail kuyruğunun bir jet veritabanında tutulmasıdır. Bu dosyaların bulunduğu dizin standart ayarlarla C:Program FilesMicrosoftExchangeServerTransportRolesdataQueue klasördür ve EdgeTransport.exe.config dosyasındaki QueueDatabasePath parametresiyle denetlenir. Boş alan miktarı hesaplanırken aşağıdaki formül kullanılır.

100 * ( Disk Sürücüsü Boyutu – SabitDeğer ) / Disk Sürücüsü Boyutu

Sabit değer olarak belirlenen rakam Exchange 2007 RTM için 4 Gb , Exchange 2007 SP1 için 500 Mb dır. Burda bulunan değer High değerdir. Bundan %2 altı Medium ve %4 altı ise Normal olarak değerlendirilir ve buna göre gerekli aksiyon alınır. Bir örnekle açıklamak gerekirse; 8 Gb diski olan bir sunucuya yaptığım Exchange 2007 kurulumunda Back Pressure devreye girdi ve mail gönderip alamamaya başladım. Bu sunucunun event loglarına baktığımda Application Logs altında şöyle bir uyarı ile karşılaşıyoruz. Kurulum yaptığım sunucudaki C: sürücüsünün durumuda aşağıda görülmekte.

Resim

Burda gördümüz değerleri inceleyelim. Yukarıda verdiğim formulle Back Pressure için High değerini bulabiliyoruz. Formulde değerleri yerlerine yazalım.

100 * ( 7.98 – 4 ) / 7.98 = 49 ( küsüratlı değerler bir küçük tamsayıya yuvarlanır )

Burda bulduğumuz %49 High değerdir ve Medium %47 , Normal ise  %45 olur. Bu formule göre diskimizin doluluk oranı Medium veya High değerine ulaşırsa Back Pressure devreye girer. Event loglara göre bizim doluluk oranımız %57. Bunu da ( 4.60 * 100 ) / 7.98 olarak basit bir yüzde formulüyle hesaplayabiliriz. (Burada da yine küsüratlı değerler bir küçük tamsayıya yuvarlanacaktır) High değere ulaştığımız için artık mail alıp gönderemeyiz. Bunun yerine 20 Gb diski olan bir sunucumuz olsaydı;

100 * ( 20 – 4 ) / 20 = 80 

Formulden High değeri olarak %80 bulacaktık. Medium %78 ve Normal %76 olacaktı. Aynı miktarda disk kullanımı olduğunu düşünürsek ( 4.60 * 100 ) / 20 = 23 yani kullanım oranımız %23 olarak çıkacaktı. %76<%23 olduğu sürece de Back Pressure devreye girmeyecekti. Neyse ki bu 4 Gb lık sabit değer SP1 ile birlikte 500 Mb seviyesine inmektedir.

Aşağıdaki tablo bu sayaç ile ilgili EdgeTransport.exe.config dosyasında bulunan konfigürasyonları göstermektedir.

Parametre adı

Default değer

Geçerli aralık

PercentageDatabaseDiskSpaceUsedHighThreshold

0. Değer sıfır iken formulle hesaplanan yüzde kullanılır. Istersek burdan kendimiz bir standart değer belirtebiliriz.

3 – 100 arasında olmalı

PercentageDatabaseDiskSpaceUsedMediumThreshold

0. Değer sıfır iken PercentageDatabaseDiskSpaceUsedHighThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve  PercentageDatabaseDiskSpaceUsedHighThreshold değerinden küçük olmalı.

PercentageDatabaseDiskSpaceUsedNormalThreshold

0. Değer sıfır iken PercentageDatabaseDiskSpaceUsedMediumThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve  PercentageDatabaseDiskSpaceUsedMediumThreshold değerinden küçük olmalı.

 

Mail kuyruğunun loglarını bulunduran diskteki boş alan miktarının izlenmesi

Yukarıdakine benzer bir şekilde logların bulunduğu diskte izlenmektedir. Bu dosyaların bulunduğu dizin standart ayarlarla C:Program FilesMicrosoftExchangeServerTransportRolesdataQueue klasördür ve EdgeTransport.exe.config dosyasındaki QueueDatabaseLoggingPath parametresiyle denetlenir. Boş alan miktarı hesaplanırken aşağıdaki formül kullanılır.

100 * ( Disk Sürücüsü Boyutu – 25 * DatabaseCheckPointDepthMax ) / Disk Sürücüsü Boyutu

DatabaseCheckPointDepthMax değeri 20971520 byte (20Mb) olarak EdgeTransport.exe.config içinde tanımlanmıştır

Aşağıdaki tablo bu sayaç ile ilgili EdgeTransport.exe.config dosyasında bulunan konfigürasyonları göstermektedir.

Parametre adı

Default değer

Geçerli aralık

PercentageDatabaseLoggingDiskSpaceUsedHighThreshold

0. Değer sıfır iken formulle hesaplanan yüzde kullanılır. Istersek burdan kendimiz bir standart değer belirtebiliriz.

3 – 100 arasında olmalı

PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold

0. Değer sıfır iken PercentageDatabaseLoggingDiskSpaceUsedHighThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve PercentageDatabaseLoggingDiskSpaceUsedHighThreshold değerinden küçük olmalı.

PercentageDatabaseLoggingDiskSpaceUsedNormalThreshold

0. Değer sıfır iken PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve  PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold değerinden küçük olmalı.

 

 

Ram’da bulunup mail kuyruğu veritabanına yazılmayan mail miktarının izlenmesi

Jet veritabanı mimarısi gereği bilgiler veritabanına yazılmadan önce transaction log dosyalarına ve ram’a yazılırlar. Bu sayaç ram’da veritabanı dosyasına yazılmayı bekleyen transaction miktarını izler. Bu değerin yüksek olması virus olma ihtimali ve disk performans problemlerinin habercisi olabilir. Yada mail kuyruğunu barındıran veritabanı dosyalarının bakıma ihtiyacı olabilir.

Aşağıdaki tablo bu sayaç ile ilgili EdgeTransport.exe.config dosyasında bulunan konfigürasyonları göstermektedir.

Parametre adı

Default değer (Exchange 2007 RTM)

Default değer (Exchange 2007 SP1)

Geçerli aralık

VersionBucketsHighThreshold

100

200

1- 8000 arasında olmalı

VersionBucketsMediumThreshold

60

120

1- 8000 arasında ve VersionBucketsHighThreshold değerinden küçük olmalı.

VersionBucketsNormalThreshold

40

80

1- 8000 arasında ve VersionBucketsMediumThreshold değerinden küçük olmalı.

 

 

Edgetransport.exe servisinin kullandığı ram miktarının izlenmesi

Bu değerde basit bir formulle hesaplanarak izlenir. Servisin kullandığı ram toplam ram’in %75 inden yada 1 Tb (terabyte) dan küçük olmalıdır ve bu değer High değeridir. Bundan %2 altı Medium ve %4 altı Normal olarak değerlendirilir. Değer hesaplanırken servisin fiziksel ram’da kapladığı alan değerlendirilir, pagefile hesaba katılmaz. Küsüratlı değerler bir küçük tamsayıya yuvarlanır.

Aşağıdaki tablo bu sayaç ile ilgili EdgeTransport.exe.config dosyasında bulunan konfigürasyonları göstermektedir.

Parametre adı

Default değer

Geçerli aralık

PercentagePrivateBytesUsedHighThreshold

0. Değer sıfır iken formulle hesaplanan yüzde kullanılır. Istersek burdan kendimiz bir standart değer belirtebiliriz.

3 – 100 arasında olmalı

PercentagePrivateBytesUsedMediumThreshold

0. Değer sıfır iken PercentagePrivateBytesUsedHighThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve PercentagePrivateBytesUsedHighThreshold değerinden küçük olmalı.

PercentagePrivateBytesUsedNormalThreshold

0. Değer sıfır iken PercentagePrivateBytesUsedMediumThreshold değerinden %2 daha küçüktür. Değiştirilebilir.

3 – 100 arasında ve PercentagePrivateBytesUsedMediumThreshold değerinden küçük olmalı.

 

 

Kullanılan toplam ram miktarının izlenmesi

Default olarak kullanılabilir fiziksel ram miktarının toplam fiziksel ram’in %94 kadarı olması beklenir. Bu değer disk üzerinde kullanılan pagefile’ı içermez. Ram kullanımı belirlenen değeri aştığında Message Dehyration durumu oluşur. Message Dehyration sayesinde ram performansını arttırmak amacıyla maillerin gereksiz bölümleri ram’dan silinir. MIME içeriğinin ram’de bulunan cache’den silinmesi maillerin direk mail kuyruğu veritabanından okunacağı anlamına gelir. Default ayarlarda Message Dehyration açık olarak gelir. İstenirse EdgeTransport.exe.config içinden kapatılabilir.

Aşağıdaki tablo bu sayaç ile ilgili EdgeTransport.exe.config dosyasında bulunan konfigürasyonları göstermektedir.

Parametre adı

Default değer

Geçerli aralık

DehydrateMessagesUnderMemoryPressure

TRUE

TRUE yada FALSE

PercentagePhysicalMemoryUsedLimit

94

3 – 100 arasında olmalı

 

 

Back Pressure nasıl çalışır?

Back Pressure izlediği sunucuları 5 farklı safhada kontrol eder. Bu demektir ki; sistem kaynakları yukarıda anlatılan değerlerin üstüne ilk çıktığında mail trafiği direk olarak kesilmez. Bunun yerine Back Pressure önce önlemler alarak bu darboğazların önüne geçmeyi hedefler. Değerler artmaya devam ediyorsa bir sonraki aşamaya geçilir. Aşamalar arasındaki ölçümlerin sıklığı EdgeTransport.exe.config dosyasındaki “ResourceMonitoringInterval” değeriyle belirlenir ve default ayarı 2 saniyedir. Şimdi bu aşamaları sırayla inceleyelim.

Aşama 1 : EdgeTransport.exe tarafından kullanınan hafıza miktarı kontrol edilir. Eğer belirlenenden fazla ise Garbage Collection uygulaması başlatılır. Bu uygulama ram’da varolan fakat kullanılmayan nesneleri bulup temizleyerek kullanılabilir ram miktarını arttırmayı hedefler.

Aşama 2 : Ram’da bulunup mail kuyruğu veritabanına yazılmayan transaction miktarı kontrol edilir. Eğer değeri belirlenenden fazla ise transaction’lar veritabanına yazılmaya zorlanır.

Aşama 3 : İzlenen sunucudaki değerler tekrar gözden geçirilir. Değerler hala Normal seviyenin üstünde ise gerekli aksiyon uygulanır. Aşağıda Hub Transport ve Edge Transport sunucular için oluşacak senaryolar verilmiştir.

Hub Trasnport Sunucular için;

 

Kaynak kullanım seviyesi

Diğer Hub Transport sunucularla bağlantı

Diğer mail sunucularla bağlantı

MailBox sunuculardaki Store bağlantıları

Pickup klasörü ve Replay klasörü

Internal mail akışı

Medium

İzin Verilir

İzin Verilmez

İzin Verilir

İzin Verilmez

Çalışır Durumda

High

İzin Verilmez

İzin Verilmez

İzin Verilmez

İzin Verilmez

Çalışmaz

Edge Trasnport Sunucular için;

Kaynak kullanım seviyesi

Diğer Hub Transport sunucularla bağlantı

Diğer mail sunucularla bağlantı

MailBox sunuculardaki Store bağlantıları

Pickup klasörü ve Replay klasörü

Internal mail akışı

Medium

İzin Verilmez

İzin Verilmez

Uygulanamaz

İzin Verilmez

Uygulanamaz

High

İzin Verilmez

İzin Verilmez

Uygulanamaz

İzin Verilmez

Uygulanamaz

 

Aşama 4 : Bu aşamada ilk olarak EdgeTransport.exe tarafından kullanınan hafıza miktarı tekrar kontrol edilir. Eğer değer Normal’in üstünde ise;

İkinci olarak ise Ram’da bulunup mail kuyruğu veritabanına yazılmayan transaction miktarı kontrol edilir. Eğer değeri belirlenenden fazla ise;

Aşama 5 : Bu aşamada EdgeTransport.exe tarafından kullanınan hafıza miktarı tekrar kontrol edilir. Eğer değer Normal’in üstünde ise;

 

NOT :  Burada bahsediler mail iletim kesintileri SMTP protokolü içindir. Aynı sunucu üzerindeki MAPI clientları aralarında mail gönderebilirler.

 

Back Pressure’u Event Viewer’da İzlemek

Exchange 2007 RTM için düşen hatalar şunlardır.

·         Kaynak kullanım sayaçları değişikliği
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15001
Description: The resource pressure changed from Previous Utilization Level to Current Utilization Level.

·         Kaynak kullanımı sürekli High seviyesinde
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15002
Description: The resource pressure is constant at High.

·         EdgeTransport.exe’nin kaynak kullanım sayacı değişti
Event Type: Warning
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15003
Description: Private bytes consumption changed from Previous Utilization Level to Current Utilization Level.

 

Exchange 2007 SP1 için düşen hatalar şunlardır.

·         Kaynak kullanımı arttı
Event Type: Error
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15004
Description: Resource pressure increased from Previous Utilization Level to Current Utilization Level.

·         Kaynak kullanımı azaldı
Event Type: Information
Event Source: MSExchangeTransport
Event Category: Resource Manager
Event ID: 15005
Description: Resource pressure decreased from Previous Utilization Level to Current Utilization Level.

 

Kaynak : TechNet – Understanding Back Pressure

 

Exit mobile version