Exchange 2007/2010 Mailbox Database Cache

closeBu yazı 7 yıl 8 ay 10 gün önce yayınlanmış olduğundan güncelliğini yitirmiş veya içeriğindeki bilgilerin geçerliliği kaybolmuş olabilir. Herhangi bir yanlış anlaşılmadan bu site sorumlu değildir.

Exchange 2007/2010’un yüksek memory kullanımının nedeni performansı arttırmak için database cache olarak kullanmasıdır. Ne kadar çok memory kullanabilirse disk I/O değerleri düşük olur ve performans artar.  Transaction loglar belirli bir limite ulaştığında memory’de tutulan değişiklikler database’e yazılır bu değere Log Checkpoint Depth Target adı verilir. Exchange 2007/2010’da tek database için bu değer 20 MB, 2010 DAG da iki veya daha fazla kopyası bulunan aktif databaseler için 100 MB ve pasif kopyalar için 5 MB’dır.

Microsoft tarafından Mailbox serverlar için varsayılan database cache miktarları Technet’te belirtilmiş durumda. Aşağıdaki tabloda sadece mailbox rolüne sahip ve birden fazla rol’e sahip mailbox sunucularında fiziksel memorynin ne kadarını Database cache için ayırdığını görebilirsiniz.

Server physical memory (RAM) Database cache size: (Mailbox role only) Database cache size: Multiple-role (for example, Mailbox + Hub Transport)
2GB 512 MB Not supported
4GB 1 GB Not supported
8GB 3.6 GB 2 GB
16GB 10.4 GB 8 GB
24GB 17.6 GB 14 GB
32GB 24.4 GB 20 GB
48GB 39.2 GB 32 GB
64GB 53.6 GB 44 GB
96GB 82.4 GB 68 GB
128GB 111.2 GB 92 GB

Bu tablodaki değerlerin yanında mailbox sunucunuzda memory miktarını belirlerken kullanıcı profilinizi de göz önünde bulundurmanız önemli. Microsoft bu değeri hesaplamak için 75kb’lık mail boyutu ile kullanıcının ortalama günlük trafiğini göz önünde bulundurarak gereken Database Cache miktarını aşağıdaki tabloda sunuyor.

Messages sent/received per mailbox per day (~75KB average message size) Database cache per user (MB) Single database copy (Stand-alone): Estimated IOPS per mailbox Multiple database copies (mailbox resiliency): Estimated IOPS per mailbox
50 3 .060 .050
100 6 .120 .100
150 9 .180 .150
200 12 .240 .200
250 15 .300 .250
300 18 .360 .300
350 21 .420 .350
400 24 .480 .400
450 27 .540 .450
500 30 .600 .500

Peki bu değerleri nasıl kullanıyoruz? Örneğin 1000 kullanıcı için her kullanıcının günlük ortalama 200 mail gönderip aldığını düşünürsek.

1000*12MB = 12 GB (12MB değeri 200 mail için kullanıcı başına belirtilen database cache miktarı)

12GB database cache’e en yakın varsayılan bir üst değer 17.6GB olduğundan 24 GB fiziksel memory yeterli olacaktır.

Bu hesaba rağmen sizin sunucunuzun fiziksel memory miktarı daha yüksek ise ve bu memory’i değerlendirmek istiyorsanız o zaman database cache miktarını değiştirerek limitlemeniz mümkün.

Bunun için;

  1. ADSIEDIT.msc’i açın
  2. Configuration > Services > Microsoft Exchange > Organizasyon ismi > Administrative Groups > Administrative Group ismi > Servers > Sunucunuzun ismi > InformationStore
  3. InformationStore üzerinde sağ tuşa basın ve msExchESEParamCacheSizeMax değerini değiştirin. (Exchange 2007’nin 8KB, Exchange 2010’un 32KB bloklar kullandığını unutmayın)
  4. Microsoft Exchange Information Store servisini restart edin.

Örneğin 10 GB olarak ayarlamak istiyorsanız Exchange 2010 için bu değer 327680 (10485760 KB / 32 KB), Exchange 2007 için ise 1310720 (10485760 KB/ 8 KB) olarak ayarlayabilirsiniz.

Önemli: Önerilen değerlerin altında ayarlar yapmanız Exchange’in çalışmasında ciddi performans sorunlarına neden olabilir.

Kaynak: Technet

Yayınlayan: Serkan Varoğlu

Yıldız Teknik Üniversitesi Elektrik Mühendisliğini bitirdim. Türkiye'de birçok farklı sektör ve firmada Sistem Yöneticiği yaptım. Bermudada 3 yıla yakın danışmanlık yaptıktan sonra şu anda İrlanda'da çalışma hayatıma devam ediyorum.