Cumartesi, Mart 21, 2026

Zimbra Performans Optimizasyonu Rehberi – Bölüm 2: Mailbox Sunucu Yapılandırması

-

Performans optimizasyonu serimizin ilk bölümünde donanım ve işletim sistemi ayarlarını ele almıştık. Bu ikinci bölümde, Zimbra Mailbox sunucusunun yazılım seviyesindeki optimizasyonlarına odaklanıyoruz: bağlantı yönetimi, bellek tahsisi, veritabanı ayarları ve indeks optimizasyonu.

Bağlantı Havuzu Yapılandırması

HTTP/HTTPS Bağlantıları

Web posta ve REST API erişimi için HTTP iş parçacığı sayısını ayarlayın:

# ZCS 5.0 ve sonrası için
zmprov ms $(zmhostname) zimbraHttpNumThreads 500

Bu değer, eşzamanlı web posta oturumlarını yönetmek için yeterlidir. Daha düşük değerler yoğun saatlerde yavaşlamaya neden olabilir.

POP3 Bağlantıları

POP3 için 300 iş parçacığı ayarı, 8 dakikada bir posta kontrol eden on binlerce kullanıcıyı destekleyebilir:

zmprov ms $(zmhostname) zimbraPop3NumThreads 300

IMAP Bağlantıları

ZCS 8.0 ve sonrasında NIO (Non-blocking I/O) etkin durumdadır. Varsayılan 100 iş parçacığı ile 2.000-5.000 kullanıcı desteklenir. 10.000 aktif istemci için:

zmprov ms $(zmhostname) zimbraImapNumThreads 200
zmprov ms $(zmhostname) zimbraImapMaxConnections 40000

LMTP (Yerel Posta Teslimi)

Varsayılan 20 iş parçacığı çoğu kurulum için yeterlidir. Bu değeri gereksiz yere artırmak, I/O darboğazlarına ve sunucu yanıtsızlığına yol açabilir. Artırmadan önce disk I/O performansınızı kontrol edin.

Java Bellek (JVM) Ayarları

Zimbra’nın performansı büyük ölçüde Java bellek ayarlarına bağlıdır. RAM miktarına göre önerilen tahsis oranları:

Toplam RAM Java Heap MySQL Buffer Pool Açıklama
8 GB %30 (~2.4 GB) %25 (~2 GB) Minimum önerilen
16 GB %25 (~4 GB) %30 (~4.8 GB) Orta ölçek
32 GB %20 (~6.4 GB) %35 (~11 GB) Büyük ölçek

Önemli: MySQL InnoDB buffer pool’u 10 GB’ın üzerine çıkarmak fayda sağlamaz ve gereksiz bellek tüketimine yol açar.

ZCS 8.0 JVM Ayarları

# /opt/zimbra/conf/localconfig.xml içinde
mailboxd_java_options = "-server -Xms${heap} -Xmx${heap} \
  -XX:+UseConcMarkSweepGC -XX:+UseParNewGC \
  -XX:NewRatio=2 \
  -XX:PermSize=196m -XX:MaxPermSize=350m \
  -XX:SoftRefLRUPolicyMSPerMB=1"

ZCS 8.8.12+ JVM Ayarları (G1GC)

Daha yeni sürümlerde G1 çöp toplayıcı önerilir:

mailboxd_java_options = "-server -Xms${heap} -Xmx${heap} \
  -XX:+UseG1GC \
  -XX:G1NewSizePercent=15 \
  -XX:G1MaxNewSizePercent=45"

G1GC, CMS’ye kıyasla daha tahmin edilebilir duraklamalar sağlar ve büyük heap boyutlarında daha iyi performans gösterir.

MariaDB/MySQL Yapılandırması

Zimbra’nın metadata deposu olan MariaDB/MySQL’in doğru yapılandırılması kritiktir:

# /opt/zimbra/conf/my.cnf içinde
[mysqld]
table_open_cache = 1200
innodb_open_files = 2710
innodb_max_dirty_pages_pct = 10
innodb_flush_method = O_DIRECT

Bu ayarların açıklamaları:

  • table_open_cache = 1200: Açık tablo önbelleğini artırarak tablo açma/kapama yükünü azaltır
  • innodb_open_files = 2710: InnoDB’nin eşzamanlı açık dosya limitini yükseltir
  • innodb_max_dirty_pages_pct = 10: Kirli sayfa oranını düşük tutarak ani yazma dalgalanmalarını (write spike) önler
  • innodb_flush_method = O_DIRECT: Çift tamponlamayı önleyerek bellek kullanımını optimize eder

Uyarı: innodb_log_file_size değerini DEĞİŞTİRMEYİN. Varsayılan değer Zimbra için optimize edilmiştir.

Lucene İndeks Optimizasyonu

Zimbra, e-posta aramaları için Apache Lucene indekslerini kullanır. İndeks performansını optimize etmek için:

İndeks LRU Önbelleği

# Varsayılan: 100 — dikkatli artırın
zmlocalconfig -e zimbra_index_lru_size=300

Dikkat: 8 GB RAM’li sistemlerde bu değeri 500-1000’in üzerine çıkarmak yüksek çöp toplama süreleri ve bellek yetersizliği hatalarına neden olabilir.

Toplu İndeksleme

İndeksleme işlemini toplu hale getirerek disk I/O yükünü azaltın:

# Web posta + IMAP/POP kullanıcıları için
zmprov ms $(zmhostname) zimbraBatchedIndexingSize 20

# Sadece IMAP/POP kullanıcıları için
zmprov ms $(zmhostname) zimbraBatchedIndexingSize 40

Writer Önbelleği Devre Dışı Bırakma

Yoğun indeksleme sorunları yaşıyorsanız writer önbelleğini devre dışı bırakabilirsiniz:

zmlocalconfig -e zimbra_index_max_uncommitted_operations=0

Mesaj Önbelleği

Sık erişilen e-postaları bellekte tutarak disk okumalarını azaltın:

# ZCS 6+ için (girdi sayısı olarak)
zmprov ms $(zmhostname) zimbraMessageCacheSize 10000

Alan Adı Önbellekleri

Çok sayıda alan adı barındıran kurulumlar (20.000-30.000 domain) için önbellek boyutlarını artırın:

zmlocalconfig -e ldap_cache_domain_maxsize=30000
zmlocalconfig -e ldap_cache_external_domain_maxsize=10000

Sonraki Adımlar

Bu yazıda Mailbox sunucusunun yazılım seviyesindeki tüm kritik optimizasyonları ele aldık. Serinin son bölümünde LDAP, MTA (Postfix) ve yük dengeleyici yapılandırmalarını inceleyeceğiz.

Serinin ilk bölümü olan Donanım ve İşletim Sistemi Ayarları yazısını henüz okumadıysanız, önce oradan başlamanızı öneririz.


Destek ve İletişim

Zimbra performans optimizasyonu konusunda destek almak için zimbra@fzm.com.tr adresinden bize ulaşabilir veya iletişim sayfamız üzerinden iletişime geçebilirsiniz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

Benzer yazılar