Using the lmdb database backend
LMDB back end
The LMDB backend can be enabled when provisioning or joining a domain using the
--backend-store=mdb option. The maximum size of the database files defaults to 8Gb, this can be changed with the
|This is a hard limit and Samba will fail if this limit is exceeded. There is currently no way to resize a Samba LMBD database.|
High virtual memory allocation
LMDB uses memory mapped files so if using the default database size of 8Gb the virtual memory reported by htop for Samba processes is typically 40Gb or 80Gb. This is normal and is not normally a concern, see the following article on lmdb memory utilisation and file sizes.
Database file sizes
Identifying an LMDB file
All Samba LMDB data files have an associated lock file with the extension
.ldb-lock and the data file has a .ldb extension.
Calculating space used
As discussed in the article lmdb memory utilisation and file sizes, the size of the database on disk does not reflect the actual space used. To calculate space uses, use the
# mdb_stat -ne 'CN=CONFIGURATION,DC=ADDOM,DC=SAMBA,DC=EXAMPLE,DC=COM.ldb' Environment Info Map address: (nil) Map size: 8589934592 Page size: 4096 Max pages: 2097152 Number of pages used: 2013 Last transaction ID: 4 Max readers: 100000 Number of readers used: 3 Status of Main DB Tree depth: 3 Branch pages: 26 Leaf pages: 1267 Overflow pages: 661 Entries: 7315
The space used is
Page size * (Branch pages + Leaf pages + Overflow pages + 2), where 2 is the number of meta/control pages at the start of the file.