Since upgrading to s11b83a I noticed that gam_server processes eat significant amount of CPU cycles. So I decided to make some investigations.

# uname -a
SunOS xeon 5.11 snv_83 i86pc i386 i86pc
# pkginfo -l SUNWgamin
PKGINST: SUNWgamin
NAME: Library providing the FAM File Alteration Monitor API
CATEGORY: GNOME2,application,JDS4
ARCH: i386
VERSION: 0.1.9,REV=110.0.4.2008.01.28.02.48
. . .
# fgrep SUNWgamin /var/sadm/install/contents
/usr/lib/gam_server f …
/usr/lib/libfam.so=libfam.so.0.0.0 s …
/usr/lib/libfam.so.0=libfam.so.0.0.0 s …
/usr/lib/libfam.so.0.0.0 f …
/usr/lib/libgamin-1.so=libgamin-1.so.0.1.9 s …
/usr/lib/libgamin-1.so.0=libgamin-1.so.0.1.9 s …
/usr/lib/libgamin-1.so.0.1.9 f …
/usr/lib/python2.4/vendor-packages/_gamin.so f …
/usr/lib/python2.4/vendor-packages/gamin.py f …

No manuals, no config files.

# strings /usr/lib/gam_server
. . .
/.gaminrc
/etc/gamin/mandatory_gaminrc
/etc/gamin/gaminrc

From Gamin project page:

Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system. This is a service provided by a library which allows to detect when a file or a directory has been modified.

This is the description of the config file: Gamin config


Now, how to fix the problem

  1. Create /etc/gamin directory:
    # mkdir /etc/gamin
  2. Create file /etc/gamin/gaminrc. It may contain the following lines (this is just an example, you can set your own polling intervals):
    fsset nfs poll 15
    fsset ufs poll 15
    fsset lofs poll 15
    fsset zfs poll 15
  3. Restart gam_server (let me know if there is a better way):
    # pkill gam_server; rm -rf /tmp/gam_*

Voila! That should be done in all zones.

Update 2008-07-07 @00:06:24: i did not see this behaviour in snv_92. However, do not install snv_92 because of otehr bugs. Try snv_93.

Related posts:

  1. Upgrade x (Solaris + SqueezeCenter) Here's a quick way to upgrade one or both Solaris...
  2. SqueezeCenter 7.1 under Solaris The idea was to use "bare" SqueezeCenter without bundled CPAN...
  3. Compiling Kompozer for Solaris The first attempt to compile Kompozer for Solaris Two macros...
  4. How to compile Bluefish 1.3.x under OpenSolaris or Solaris Nevada Get intltool package (for example, from blastwave) If you use...
  5. QNAP NAS, Solaris and NFS I thought that nothing could be easier on Solaris than...