One thing to say first is that it sounds like you are subjecting the
server to write operations (LDAP ops that change the stored data --
adds, deletes, modifies). If this isn't the case (you're expecting to
not change the stored data much), then I'd suggest looking into why
there are ongoing disk writes. I don't think that should be the case
with a quiet server, except for the checkpoint record flushed to the log
every so often, and possibly any OS flushing of dirty pages from the
page pool to disk. You could use "strace" to get more insight into what
is being written when and where.
Disabling durable transactions only prevents a disk write on every LDAP
write operation. The writes will still be done, just later sometime. So
disabling durable transactions won't I suspect solve your problem. If
you want to write to the DIT but not have any disk writes, then you need
to put the entire database in ramdisk.
Now, to get rid of the region and log files you would need to run the
database in a non-transacted mode, or transacted but single-process.
Neither mode is supported by the directory server, so you're stuck with
the files and disk writes associated with updates to the DIT, unless you
make major modifications to the server source code yourself.
If they're located in ramdisk, the OS is typically smart enough to not
allocate the memory twice (can't speak to whether Linux is sufficiently
smart but older OSes such as Solaris were).
I'm assuming that you're ok with having your database corrupted which is
a distinct possibility if you move the region files into non-persistent
storage. Problem I foresee is in determining when it has been corrupted.
For that reason it may be appropriate to always assume the database is
bad and rebuild it from a backup each time the server is started.
On 2/24/2014 1:51 PM, hede wrote:
Am Mon, 24 Feb 2014 13:23:33 -0700 schrieb Rich Megginson <rmeggins@xxxxxxxxxx>:
You can move them to a Ram Disk.
Found out those files is shared mem written to disk!? So moving it to some ram disk seems ridiculous.
You can also completely disable durable transactions.
Thank you.
"durable transactions" is a keyword to find help via internet search.
I've found:
https://access.redhat.com/site/documentation/en-US/Red_Hat_Directory_Server/9.0/html/Performance_Tuning_Guide/Tuning_Database_Performance-Tuning_Transaction_Logging.html
So I added "nsslapd-db-durable-transactions: off" to my config and switched also "nsslapd-db-durable-transaction: off" in /etc/dirsrv/slapd-kolab/dse.ldif and checked those values after dirsrv-restart via ldapsearch, see [1].
Values are "off". But it seems the dirsrv is still writing to the files (__db.* / log.* in db-dir).
What am I doing wrong?
######
[1]
$ ldapsearch -x -D "cn=directory manager" -W -p 389 -h 192.168.12.46 -b "cn=config" | grep durable
Enter LDAP Password:
nsslapd-db-durable-transactions: off
nsslapd-db-durable-transaction: off
--
389 users mailing list
389-users@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/389-users
--
389 users mailing list
389-users@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/389-users