[Linux-cluster] Cluster Project FAQ - GFS tuning section]

Wendell Dingus wendell at BISonline.com
Tue Jan 23 16:02:46 UTC 2007


One filesystem is mounted with atime because we're storing PHP session
files on it so that all servers can get to them. They weren't being
garbage collected previously, we had to remount with atime. The other
much larger filesystem (8TB versus 1TB for the one with atime enabled)
is mounted without atime. This larger one is primarily the one I've
experienced the spike in CPU usage when a file transfer begins (via UUCP
BTW).

We just did some searching and reading about this setting and it looks
like setting it to zero means it never drops DLM locks from memory. Ours
is at the default 50,000 value, meaning I assume after 50,000 files are
"touched" in some way, they start getting dropped out of this cache,
which can cause a performance hit. We've looked through "counters"
output and aren't sure exactly which one we're looking for that might
reveal if this threshold is being exceeded or not. Any pointers?

PS. Some info here which tells how to make this _permanent_ and we were
surprised adding the setting to sysctl.conf wasn't the primary method
mentioned: http://www.redhatmagazine.com/2006/12/15/tips_tricks/

Server1
                                  locks 794922
                             locks held 386470
                          incore inodes 379911
                       metadata buffers 5
                        unlinked inodes 0
                              quota IDs 0
                     incore log buffers 0
                         log space used 0.05%
              meta header cache entries 8
                     glock dependencies 1
                 glocks on reclaim list 0
                              log wraps 35
                   outstanding LM calls 0
                  outstanding BIO calls 0
                       fh2dentry misses 1
                       glocks reclaimed 111468752
                         glock nq calls 1283605791
                         glock dq calls 1283083972
                   glock prefetch calls 51880947
                          lm_lock calls 63041351
                        lm_unlock calls 62497023
                           lm callbacks 125557260
                     address operations 1213594855
                      dentry operations 15527454
                      export operations 1135237
                        file operations 1739567930
                       inode operations 25526974
                       super operations 431704873
                          vm operations 0
                        block I/O reads 113537577
                       block I/O writes 0

Server2
                                  locks 481974
                             locks held 233640
                          incore inodes 223437
                       metadata buffers 5
                        unlinked inodes 0
                              quota IDs 0
                     incore log buffers 0
                         log space used 0.10%
              meta header cache entries 0
                     glock dependencies 0
                 glocks on reclaim list 0
                              log wraps 4
                   outstanding LM calls 0
                  outstanding BIO calls 0
                       fh2dentry misses 0
                       glocks reclaimed 4977455
                         glock nq calls 0
                         glock dq calls 0
                   glock prefetch calls 513249
                          lm_lock calls 4991067
                        lm_unlock calls 4518146
                           lm callbacks 9562059
                     address operations 23406495
                      dentry operations 9440989
                      export operations 0
                        file operations 1807195617
                       inode operations 13159135
                       super operations 2626655
                          vm operations 0
                        block I/O reads 24550633
                       block I/O writes 84806

Server3
                                  locks 73380
                             locks held 22815
                          incore inodes 19140
                       metadata buffers 458
                        unlinked inodes 0
                              quota IDs 0
                     incore log buffers 0
                         log space used 0.20%
              meta header cache entries 36
                     glock dependencies 0
                 glocks on reclaim list 0
                              log wraps 60
                   outstanding LM calls 0
                  outstanding BIO calls 0
                       fh2dentry misses 0
                       glocks reclaimed 2875923
                         glock nq calls 530954329
                         glock dq calls 527130026
                   glock prefetch calls 55222
                          lm_lock calls 6770608
                        lm_unlock calls 2739686
                           lm callbacks 9605743
                     address operations 317847565
                      dentry operations 3659746
                      export operations 770507
                        file operations 3322
                       inode operations 8146407
                       super operations 12936727
                          vm operations 59
                        block I/O reads 3236
                       block I/O writes 7969620


David Teigland wrote:
> On Tue, Jan 23, 2007 at 08:39:32AM -0500, Wendell Dingus wrote:
>   
>> I don't know where that breaking point is but I believe _we've_ stepped
>> over it.
>>     
>
> The number of files in the fs is a non-issue; usage/access patterns is
> almost always the issue.
>
>   
>> 4-node RHEL3 and GFS6.0 cluster with (2) 2TB filesystems (GULM and no
>> LVM) versus
>> 3-node RHEL4 (x86_64) and GFS6.1 cluster with (1) 8TB+ filesystem (DLM
>> and LVM and way faster hardware/disks)
>>
>> This is a migration from the former to the latter, so quantity/size of
>> files/dirs is mostly identical. Files being transferred from customer
>> sites to the old servers never cause more than about 20% CPU load and
>> that usually (quickly) falls to 1% or less after the initial xfer
>> begins. The new servers run to 100% where they usually remain until the
>> transfer completes. The current thinking as far as reason is the same
>> thing being discussed here.
>>     
>
> This is strange, are you mounting with noatime?  Also, try setting this on
> each node before it mounts gfs:
>
> echo "0" > /proc/cluster/lock_dlm/drop_count
>
> Dave
>
>   




More information about the Linux-cluster mailing list