Gerek performans optimizasyonu için gerek saklı özelliklerin ortaya çıkartılması için registery’de ve Active Directory database’inde bazı değişiklikler yapmamız gerekir. Hem bu sayede Exchange 2003 kullanımı daha da kolaylaşacak ve buna ilave olarak da bazı sınırlamalar kaldırılabilecektir.
Exchange yöneticilerinin en büyük sıkıntılarından biri Memory ile alakalı problemlerdir. 1GB veya daha fazla RAM’e sahip her sistem için Memory optimizasyonu yapılması bir gerekliliktir. Öncelik ile VM (Virtual Memory) fragmantasyonunu azaltmak için registry’de yapacağımız değişiklik ile Heap Manager’ a müdahale edeceğiz. Bu değişiklik ile Heap Manager kullandığı bellek alanını serbest bırakmadan önce kendine gerekli olan serbest bellek miktarı kontrolü yapacaktır. Yaptığımız değişiklik sebebi ile Heap Manager 4 KB lık blok yerine 32 KB olarak kullanacak bu da fragmantasyonu engelleyecektir. Bunun için Run’a Regedit yazalım . Registry içerisinde HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager altında HeapDeCommitTotalFreeThreshold değerini default 0 ‘dan hexadecimal 40000’e çıkarmamız gerekecek. Tabiî ki bahsi geçen ayarların uygulanması için restart gerektiği unutulmamalıdır.
Bir başka Memory kullanımını etkileyecek ayar da aşağıdaki örnekte görüldüğü gibi Boot.ini dosyasına eklememiz gereken /3GB anahtarıdır.
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”Windows Server 2003, Enterprise” /fastdetect /3GB
Bu anahtar ile örnek olarak 4 GB memory’e sahip bir sistem için konuşacak olursak memory paylaşımı olarak 2 GB User mode için 2 GB ise Kernel mode için ayrılacaktır. Kernel için ayrılan memory işletim sistemi kaynakları için kullanılacak User mode için ayrılan kısım ise uygulamalarımıza atanabilecektir (örneğin store.exe). Biz bu parametre sayesinde User mode’a ayrılacak bellek miktarını 3 GB yapabiliriz. Dikkat edilmesi gereken bir husus ise bu parametrenin kullanılacağı Exchange sunucunun maillbox veya public folder host ediyor olmasıdır (FrontEnd Exchange sunucuda böyle bir ayar gerekmeyecektir) . 1 GB veya daha fazla RAM’e sahip her mail sisteminde bu boot.ini anahtarı girilmelidir aksi takdirde örnek olarak 2 GB fiziksel RAM bulunan bir Exchange sunucu store.exe sanal bellek kullanımı 2 GB’a ulaştığında sistem bellek yetersizliğine düşecektir.. Windows 2000 yüklü sunucularda /3GB anahtarı kullanılacaksa aşağıdaki registery değişikliğini yapmanız önerilir.
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management altında SystemPages değeri hexadecimal FFFFFFFF olarak değiştirilmelidir. Windows 2003 makinalarda bu değişikliğe gerek yoktur bunun yerine /USERVA anahtarı kullanılması yeterli olacaktır.
Bu anahtarın ince ayarlarına ihtiyaç duyarsak /USERVA anahtarını kullanmamız gerekecek. /USERVA ile daha fazla sistem PTE (Page Table Entry) ‘leri sağlanmış olacaktır. Sadece /3GB kullanıldığında 3072 MB ayrılacaktı. Eğer /USERVA anahtarı kullanırsak bu miktar 3030 olacaktır. Aradaki 42 MB fark PTE değerini artırmak için kullanılacaktır.Bu ayar için dikkat edilmesi gereken ise /USERVA değerinin 2970-3030 aralığında olmasıdır. Bu değerlerden dah düşük veya daha yüksek girdiler desteklenmemektedir. Doğru değeri bulmak için yapılması gereken Performans and Log Alerts (Perfmon) ile Free System Page Table Entries gözlemek gerekmektedir. Sonucun 7000 den az olmamasına dikkat edilmelidir. Önerilen miktar olarak da 24000 veya daha fazlasıdır. PTE ‘nin artırılması /USERVA anahtarı ile kullanılacak parametrenin değerini düşürmek ile mümkün olur. Örnek /USERVA kullanımını aşağıda görebilirsiniz.
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”Windows Server 2003, Enterprise” /fastdetect /3GB /USERVA=3030
Bir başka performans artırıcı değişiklik de ESE Buffer Size’ın artırılmasıdır. Bu database işlemleri için kullanılacak yeterli bir önbellek sağlar . Eğer /3GB anahtarı kullanmışsanız 896 MB RAM ,3GB anahtarını kullanmamışsanız 576 MB RAM ayırır. Bazı durumlarda Exchange sunucumuzun RAM’i tekeline alması birlikte çalıştırıldığı diğer uygulamalar için problem oluşturabilir . Bu yüzden de bu önbellek kullanımı sınırlama ihtiyacımız doğabilir . Bu durumda Performans and Log Alerts (Perfmon) kullanılarak ihtiyacın tam olarak belirlenmesi çözüm olacaktır.
Alacağımız sonuçlarda genel olarak /3GB anahtarı kullanılan bir sistemde almamız gereken değer 2,8 GB ‘ dan az olmalı. /3GB kullanılmayan bir sistemde ise almamız gereken değer genel olarak 1.8GB’dan az olmalıdır. Bu değerler belirttiğimiz değerlerin altında ise bu durumda önbelleği artırabiliriz aksi takdirde artırmak sistem stabilitesini kötü yönde etkileyebilir. Artırma işlemi için Windows Support Tools içinde gelen Adsiedit.msc aracını kullanacağız.
Adsiedit.msc çalıştırdığınızda açılan konsolda Configuration kısmından ulaşacağınız menude domaininize ait kısımdan Services altında Microsoft Exchange’i seçeceğiz. Sırası ile First Organization onun altından Administrative Groups açılan listeden Servers orada da kendi sunucumuzu seçip onun altındaki Information Store üzerinde properties’e girip orada msExchESEParamCacheSizeMax attribute’ine uygun değeri gireceğiz. Burada göz önünde bulundurulması gereken en önemli konu buraya girilecek değerin 311296 (1.2 GB) değerinden büyük olmamasına ve 8192 nın katları olmasına dikkat etmemiz gerekliliğidir.
Bir başka performansımızı etkileyecek ayarımızda Transaction Log Buffer size’ın artırılmasıdır. Burada EXBPA (Exchange Best Practices Analyze http://www.microsoft.com/technet/prodtechnol/exchange/downloads/2003/analyzers/default.mspx) önerdiği değer 9000’dir.
msExchESEParamLogBuffers değerini de yukarıda anlattığımız yolu kullanarak bulup değiştirmemiz mümkündür.
Exchange kurulduktan sonra sistemimizin kapatılma süresi fark edilir şekilde artar. Eski kapatılma süresine dönebilmek için yine registery içerisinde bir ayarı değiştirmemiz gerekecek. Bu ayar WaitToKillServiceTimeout değeridir. Bu anahtarı HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl yolunu takip ederek bulabiliriz. Burada göreceğiniz 600000 değerini 20000 alırsanız sistem kapanışı hızlanacaktır.
Yine registery içerisinde yapacağımız değişiklik ile Exchange organizasyonu üzerinde Permission verme işlemini kolaylaştırabiliriz. . Default olarak Security sekmesi gelmeyen organizasyonun özelliklerine yaptığımız değişiklikten sonra Security sekmesi gelecektir.
HKEY_CURRENT_USERSoftwareMicrosoftExchangeEXAdmin içerisinde yeni bir DWORD oluşturup adını ShowSecurityPage yapıpı değer olarak da 1 atayalım.
Yaptığınız mailbox limitlerinin uygulanmasının dilediğiniz zaman süreci içerisinde gerçekleşmesini sağlamak için yapmamız gereken değişikliğe gözatacağız. Default olarak yaptığınız değişiklik 2 saat içerisinde uygulanır. Registery içerisinde HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeISParametersSystem yolu takip edilerek bulunur. Yeni bir DWORD oluşturulup isim olarak Reread Logon Quotas Interval vermemiz gerekecek. Değer olarak saniye cinsinden bir giriş gerekmektedir önerilen 20 dk dır yani değer olarak 1200 girilmelidir. Buna ilave olarak da birbirlerine bağımlılıklarından dolayı DSacces Cache ve Mailbox Cache Age değerlerini de değiştirmemiz gerekmektedir. Mailbox Cache Age değeri için HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeISParametersSystem yolu takip edip yeni bir Mailbox Cache Age Limit isimli DWORD oluşturacağız . Yine değer olarak 20 dk yani 1200 gireceğiz. DSaccess cache için de HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeDSAccessInstance0 yolu takip edilmelidir. Eğer Instance0 bulunmuyorsa oluşturulması gerekiyor. Onun içinde de CacheTTLUser isminde bir DWORD value oluşturacağız. Değer olarak default 5 dakika yani saniye cinsinde 300 e tekabül edecek veya isteğinize göre daha düşük bir değer girilebilir. Burada DSAccess in değerinin Active Directory Lookup’larını artıracağından dolayı çok düşük tutulması performansınızı kötü yönde etkileyecektir. Bu sebep ile Dsacces Cache ayarının default olarak bırakılması önerilir. Bu ayarların etkin olabilmesi için Information Store servisini restart etmemiz gerekmektedir.
Exchange 2003 Service Pack 2 kurulumundan sonra database boyutunu standart edition için 16 GB’dan 75 GB ‘a çıkarabiliriz. Bunun için yapmamız gereken HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeISFIKRIDCSunucuİsmiPrivate-ea55b297-078a-4525-96f7-2b5ad91b0fc5 içinde Database Size Limit in Gb isimli bir DWORD value oluşturmamızdır. Değer olarak GB cinsinden 1-75 GB kadar bir değer girmemizdir. Aynı işlemi HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSExchangeISFIKRIDCPublic-7091311c-07f9-46f6-b304-1097420fe1a5 yolunu takip ederek Public folder’larımız için de yapabiliriz.
Private-ea55b297-078a-4525-96f7-2b5ad91b0fc5 ve Public-7091311c-07f9-46f6-b304-1097420fe1a5 her sistemde değişiklik gösterecek Globaly Unique ID ‘lerdir doğal olarak sizin siteminizde bu değerler farklı olacaktır.
Database limite yaklaştığında Applications kısmına düşen event içinde bir kayıt oluşturarak olası database limit yetersizliklerinden haberdar olabiliriz. Bunun için yine aynı lokasyonda Database Size Buffer in Percentage isimli DWORD value oluşturmamız değer olarak da 1-100 kadar bir değer girmemiz gerekmektedir. 1-100 kadar olan bu değer bize database büyüklüğü yüzde kaç olduğunda uyarılmak istendiğimizi belirtmemiz içindir.
Bir çok registery kayıdı ile çalışmasına etki edebildiğimiz bir sistemdir Exchange. Ve elbet bahsi geçen değişikliklerin backup alınmadan veya bir test ortamında denenmeden uygulanması risk taşıyacaktır. Öncelik ile bu ayarların hepsinin aynı anda değil de belli süreler ile tek tek uygulanması daha uygun olacaktır.
Hoşçakalın