Best Practices for IBM Lotus Domino

Version 1


    This page provides the best practices for virtualizing IBM Lotus Domino using VMware Infrastructure. This list is based on my VMworld 2008 session EA2348.


    General Recommendations

    Use newer hardware

    • Supports latest hardware assist technologies, larger on-processor cache

    • 64-bit may not perform better with older hardware


    Use VMware ESX , that uses bare-metal or hypervisor architecture

    • You can start with VMware ESXi - the free version.

    • Do not use the VMware Workstation or Server, that use the hosted architecture.


    VMware ESX allows you the choice of virtualization technology best suited for your workload

    • Hardware Assist (AMD, Intel) (both CPU and MMU virtualization) if your hardware supports it

    • Paravirtualization (if you use SLES for your Domino deployment)

    • Binary Translation


    Migrate to latest version of ESX

    • E.g. ESX 3.5 defaults to 2nd Generation Hardware Assist if available, has several I/O Performance improvements


    Lotus Domino: Plan to migrate to version 8.0

    • Significant performance improvements, specially disk I/O


    Provide Redundancy to the ESX host

    • Power supplies, HBAs, NICs, Network and SAN switches

    • E.g. NIC teaming, HBA multi-pathing


    Leverage VMotion, Storage VMotion, DRS and HA for higher Domino availability


    VM configuration

    64-bit OS recommended

    • VI3 supports all x86 OSs that Domino supports: Windows, SLES, RHEL

    • Improved memory limits in 64-bit OS helps cache more data, and thus avoid disk IO. Reduces response times, and hence increasing the number of users

    • Increase VM memory when running in 64-bit guest OS


    64-bit may not perform better with older hardware

    • E.g. 64-bit Windows more sensitive to onboard L2/L3 chip caches

    • Microsoft reports 10-15% degradation with older hardware


    Guest Operating System:

    • Windows: Use 2003 SP2

      • Microsoft eliminated most APIC TPR accesses, improves virtual performance

    • Linux: Use 2.6.18-53.1.4 kernel or later to use divider patch

      • Some older Linux versions have a 1Khz timer rate

      • Put divider=10 on the end of the kernel line in grub.conf and reboot


    VM Time Synchronization

    • Use VMware Tools time synchronization within the virtual machine

    • Enable ESX server NTP daemon to sync with external stratum NTP source (VMware Knowledge Base ID# 1339)

    • Disable OS Time Service

      • Windows: w32time service

      • Linux: NTP daemon



    Storage configuration is absolutely critical; most performance problems traced to this

    • Number of spindles, RAID configuration, drive speed, controller cache settings, queue depths – all make a big difference


    Align partitions


    Use separate, dedicated LUNs for OS/Domino, data and transaction logs

    • Separate the IO at physical disk level, not simply logical LUNs

    • Make sure these LUNs have enough spindles to support the IO demands

    • Fewer spindles or too many VMDK files on single VMFS LUN can substantially increase disk IO latencies

    • Check Scalable Storage Performance to understand the details


    RAID configuration

    • RAID 1+0 for Data, RAID 0 for Log


    Cache settings

    • Write policy to "write back“, read policy to "read ahead“


    Queue Depths

    • Increase to 255


    Storage Protocol: Fibre Channel or iSCSI


    Storage Partition: VMFS or RDM


    VI3 supports latest storage technologies: leverage these if you have already invested or plan to invest

    • Fibre channel – 8Gbps connectivity

    • ISCSI – 10GigE network connectivity, Jumbo Frames

    • Infiniband support


    Virtual CPUs

    The number of vCPUs per VM depends on the number of users to be supported

    • Start with uni-processor, may be enough

    • Try not to over-provision vCPUs in the guest CPU


    Verify CPU compatibility for VMotion



    Increasing memory to avoid disk I/O is most technique to improve performance

    More available memory = more Lotus Domino Cache


    Increase NSF_DbCache_Maxentries value


    Leverage the higher VI 3.5 support 64GB memory limit per VM in VI 3.5 when using 64-bit guest OS for Domino

    • 64-bit OSs can take advantage of larger memory limits for file caching


    Leverage NUMA optimizations in VI3

    • When using NUMA, try to fit the VM within a single node to avoid latencies accessing memory on remote nodes



    Use dedicated NICs based on the network traffic

    • E.g. separate NICs for mail and replication traffic


    Use NIC Teaming & VLAN Trunking


    Use Enhanced VMXNET driver with TSO and Jumbo Frames support


    Enable TCP transmit coalescing


    Co-located VMs outperform physical 1Gbps network speed


    Resource Management

    Use proportional and absolute mechanisms to control VM priorities

    • Shares, reservations, and limits for CPU and memory

    • Shares for virtual disks

    • Traffic shaping for network


    Faster migration resulting in better load balancing when using

    • Smaller VMs

    • Lesser memory reservations for VMs


    Affinity rules for VM placement

    • E.g. Directory, Mail Server VMs on same ESX



    Virtualization Assessment

    • Capacity Planner

    • Benchmark against Information Warehouse


    Easy migration

    • VMware Converter – both hot and cold cloning

    • Start with RDM to point to existing data/ transaction log LUNs, but move to VMFS later


    Easier change management and quicker provisioning

    • Templates and clones for easy provisioning