
Zimbra Collaboration Suite (ZCS), tüm mesajlaşma ve iş birliği sistemleri gibi yoğun disk I/O bağımlı bir uygulamadır. Java tabanlı mailboxd, metadata tutan MariaDB/MySQL ve OpenLDAP katmanları disk yükünü azaltmak için RAM önbelleğine büyük ölçüde güvenir.
1. Donanım ve İşletim Sistemi (RAM, CPU, Swap)
- 64-bit Mimari ve Bellek: Büyük kurulumlarda mutlaka 64-bit (x86_64) işletim sistemi kullanılmalıdır. Tüm düğümlerde en az 8 GB RAM önerilir; yoğun posta depolarında 16 GB–64 GB, milyonlarca kullanıcı barındıran LDAP sunucularında 32 GB–128 GB RAM tercih edilir.
- Hyper-Threading: Performans izleme metriklerinin yanıltıcı olmaması için CPU üzerinde Hyper-Threading özelliğinin devre dışı bırakılması önerilir.
- Swap Kontrolü: Swap kullanımı Zimbra performansını ciddi biçimde düşürür.
/etc/sysctl.confiçine şu satırı ekleyipsysctl -pile uygulayarak çekirdeğin swap eğilimini minimuma indirebilirsiniz:
vm.swappiness=12. Disk Alt Yapısı ve Dosya Sistemi
Mailbox sunucularında en yüksek I/O yükünü sırasıyla Lucene arama indeksi, MariaDB/MySQL ve Blob deposu üretir.
- Kaçınılması Gerekenler: RAID5 (parite tabanlı RAID yazma performansını düşürür), NFS (OpenLDAP/MariaDB/Lucene için önerilmez) ve yüksek hızlı SAS/NVMe/FC yerine yavaş SATA diskler.
- Önerilenler: Geniş önbellekli SAN veya BBU (pil destekli önbellek) korumalı disk denetleyicileri kullanın; disklerin kendi yazma önbelleğini (drive write cache) veri bütünlüğü için kapatın.
- ext3 / ext4 ve Bağlama Seçenekleri: Dosya sistemlerini
noatimeile bağlayın. Blob, Lucene indeks ve MTA kuyruk dizinlerinde dizin güncellemelerinin güvenli yazılması içinchattr -R +Dile dirsync etkinleştirin (ancak kök dosya sistemine eklemeyin). - Açık Dosya Limiti:
/etc/security/limits.confdosyasındazimbrakullanıcısı için limitin524288olduğundan emin olun:
zimbra soft nofile 524288
zimbra hard nofile 5242883. Ağ Yığını (TCP/IP) ve Kritik Portlar
Kısa ömürlü bağlantıların TIME_WAIT durumunda birikmesini önlemek için /etc/sysctl.conf içinde aşağıdaki ayarlar değerlendirilebilir (uygulama sonrası ağ kararlılığı izlenmelidir):
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_tw_reuse=1| Port | ZCS Servisi | Port | ZCS Servisi |
|---|---|---|---|
| 25 / 587 | Postfix MTA / SMTP MSA | 7025 | LMTP (Yerel Teslimat) |
| 80 / 443 | HTTP / HTTPS (Webmail & Proxy) | 7071 | ZCS Admin Konsolu (SSL) |
| 143 / 993 | IMAP / IMAPS | 7306 | MariaDB / MySQL |
| 110 / 995 | POP3 / POPS | 10024 / 10025 | Amavisd-new / Postfix Dönüş |
| 389 | OpenLDAP | 11211 | Memcached (Nginx Proxy) |
4. Mailbox Sunucusu: İş Parçacığı Havuzları ve NIO
zmprov ms ile sunucu bazında veya zmprov mcf ile global olarak bağlantı havuzlarını yapılandırabilirsiniz:
zmprov ms `zmhostname` zimbraHttpNumThreads 500
zmprov ms `zmhostname` zimbraPop3NumThreads 300
zmprov ms `zmhostname` zimbraImapMaxConnections 40000
zmprov ms `zmhostname` zimbraLmtpNumThreads 40zimbraImapNumThreads yerine eşzamanlı bağlantı limiti olan zimbraImapMaxConnections değerinin ölçeklenmesi gerekir.5. Bellek Dağılımı ve JVM Ayarları (G1GC)
Java Heap (mailboxd_java_heap_size) ile MariaDB innodb_buffer_pool_size toplamı sistem belleğinin %80’ini aşmamalıdır. 16 GB’tan büyük sistemlerde Java Heap için %20 (genellikle 4–6,4 GB bandı) ve kalan bellekten MariaDB InnoDB havuzuna %30–35 ayırmak dengeli performans sağlar.
zmlocalconfig -e mailboxd_java_heap_size=4096
zmlocalconfig -e mailboxd_thread_stack_size=256k
zmlocalconfig -e mailboxd_java_options="-server -Djava.awt.headless=true -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=info,safepoint=info:file=/opt/zimbra/log/gc.log:time:filecount=20,filesize=10m"6. MariaDB / MySQL ve Lucene İndeks Optimizasyonu
/opt/zimbra/conf/my.cnf dosyasında [mysqld] altına eklenecek temel ayarlar (innodb_log_file_size değerini prosedürsüz değiştirmeyin):
table_open_cache = 1200
innodb_open_files = 2710
innodb_max_dirty_pages_pct = 10
innodb_flush_method = O_DIRECTLucene yazma yükünü azaltmak için COS bazında toplu indeksleme (batched indexing) veya gerekirse önbellek devreden çıkarma uygulanabilir:
for cos in `zmprov gac`; do zmprov mc $cos zimbraBatchedIndexingSize 20; done
zmlocalconfig -e ldap_cache_domain_maxsize=30000
zmlocalconfig -e ldap_cache_external_domain_maxsize=100007. MTA, SpamAssassin ve Yük Dengeleyici (Load Balancer)
- MTA & Amavisd: Çoklu MTA ortamlarında OpenLDAP replikaları kullanın,
amavisd-newgeçici dizini içintmpfsdeğerlendirin ve SpamAssassinlocal.cf.iniçindelock_method flockilebayes_auto_learn 0ayarlarını gözden geçirin. - Load Balancer: Nginx Proxy katmanının önünde Katman-7 yerine Katman-4 (TCP) yük dengeleme kullanın, 5–15 dakikalık oturum sürekliliği (persistence/stickiness) tanımlayın ve kaynak IP NAT (SNAT) yapmayın; aksi halde gerçek istemci IP’si kaybolur ve açık relay / DoS koruması zayıflar.
Zimbra Sunucunuzda Uzman Desteğe mi İhtiyacınız Var?
Kurulum, migrasyon, SSL/TLS, performans optimizasyonu ve 7/24 SLA bakım hizmetleri için ekibimizle iletişime geçin.