The latest updates of Solaris 9 are supposed to include libumem. Solaris 10 includes it. This will greatly speed up malloc performance in SMP systems - essentially, a replacement for SmartHeap.
http://blogs.sun.com/roller/page/DirectoryManager?entry=little_known_performance_enhancements_2 "By default, the Directory Server will use the mtmalloc memory manager, which was intended to help provide better memory allocation performance than the standard single-threaded malloc. Unfortunately, it doesn't quite live up to its intended purpose. However, Solaris 10 introduces the new libumem memory manager, and it has been backported to most versions of Solaris 9 (I believe update 3 or later). It is far better than mtmalloc in virtually every respect, and it will generally allow the server to go faster and consume less memory. To configure the server to use libumem rather than mtmalloc, edit the start-slapd script to add the following: |# Use the libumem memory manager.| |LD_PRELOAD=/usr/lib/libumem.so| |LD_PRELOAD_64=/usr/lib/64/libumem.so| |export LD_PRELOAD LD_PRELOAD_64| Note that you can do this with Solaris on SPARC-based systems as well, but in general this is not necessary because on that platform we use a third-party allocator that accomplishes the same thing. "
-10-05 15:38:46.000000000 -0600 --- initconfig.in 2007-10-09 11:32:01.000000000 -0600 *************** *** 20,22 **** --- 20,30 ---- # KRB5_KTNAME=@instconfigdir@/slapd-instance/keytab ; export KRB5_KTNAME # other environment settings can be added here too + OS=`uname -s` + if [ "$OS" = "SunOS" ] ; then + # use the new mt slab memory allocator on Solaris + # this requires Solaris 9 update 3 or later + LD_PRELOAD=/usr/lib/libumem.so + LD_PRELOAD_64=/usr/lib/64/libumem.so + export LD_PRELOAD LD_PRELOAD_64 + fi
Better patch. *** initconfig.in.~1.1.~ 2007-10-05 15:38:46.000000000 -0600 --- initconfig.in 2007-10-09 11:35:03.000000000 -0600 *************** *** 20,22 **** --- 20,33 ---- # KRB5_KTNAME=@instconfigdir@/slapd-instance/keytab ; export KRB5_KTNAME # other environment settings can be added here too + OS=`uname -s` + # use the new mt slab memory allocator on Solaris + # this requires Solaris 9 update 3 or later + if [ "$OS" = "SunOS" -a -f /usr/lib/libumem.so ] ; then + LD_PRELOAD=/usr/lib/libumem.so + export LD_PRELOAD + fi + if [ "$OS" = "SunOS" -a -f /usr/lib/64/libumem.so ] ; then + LD_PRELOAD_64=/usr/lib/64/libumem.so + export LD_PRELOAD_64 + fi
Checking in initconfig.in; /cvs/dirsec/ldapserver/ldap/admin/src/initconfig.in,v <-- initconfig.in new revision: 1.2; previous revision: 1.1 done Reviewed by: nkinder (Thanks!) Files: see diff Branch: HEAD Fix Description: See if libumem.so exists, and set the appropriate LD_PRELOAD env. var. if so. Platforms tested: Solaris 9 64-bit Flag Day: no Doc impact: no