[Linux-cluster] 5.7 Million locks

Jon Erickson erickson.jon at gmail.com
Tue Jan 23 21:25:48 UTC 2007


All,

I've been monitoring performance of my GFS cluster and noticed something weird.

I created 16 million directories with a script very similar to this:

for ($a=0; $a<256; $a++) {
  for ($b=0; $b<256; $b++) {
    for ($c=0; $c<256; $c++) {
	mkdir -p /mnt/gfs/hex($a)/hex($b)/hex($c);
    }
  }
}

This code wont work but you all get the idea.  Anyway I was running
chown on all the directories with a script like this:


chdir /mnt/gfs
DIRS = `ls -la | awk 'print {$9}'`

for dir in $DIRS; do
	chown -R newuser $dir/*
	echo $dir
done

This script will execute chown on 64K directories and print the
current parent directory.

This script starts to perform slower and slower as time goes on.  I
ran gfs_tool -c counters /mnt/gfs to monitor locks and the number of
locks is over 5.7million and growing.

The first few 64K directories completed chowning within 45sec...now
its over 8-9 minutes...and increasing every 64K.

Is there a way to remove these locks?

/proc/cluster/lock_dlm/drop_count is 50000 Would setting this value to 0 help?


-- 
Jon




More information about the Linux-cluster mailing list