[Linux-cluster] strange slowness of ls with 1 newly created file on gfs 1 or 2

Wendy Cheng wcheng at redhat.com
Wed Jul 11 17:01:55 UTC 2007


Christopher Barry wrote:
> On Tue, 2007-07-10 at 22:23 -0400, Wendy Cheng wrote:
>   
>> Pavel Stano wrote:
>>
>>     
>>> and then run touch on node 1:
>>> serpico# touch /d/0/test
>>>
>>> and ls on node 2:
>>> dinorscio:~# time ls /d/0/
>>> test
>>>
>>>  
>>>
>>>       
>> What have you expected from a cluster filesystem ? When you touch a file 
>> on node 1, it is a "create" that requires at least 2 exclusive locks 
>> (directory lock and the file lock itself, among many other things). On a 
>> local filesystem such as ext3, disk activities are delayed due to 
>> filesystem cache where "touch" writes the data into cache and "ls" reads 
>> it from cache on the very same node - all memory operations.  On cluster 
>> filesystem, when you do an "ls" on node 2, node 2 needs to ask node 1 to 
>> release the locks (few ping-pong messages between two nodes and lock 
>> managers via network), the contents inside node 1's cache need to get 
>> synced to the shared storage. After node 2 gets the locks, it  has to 
>> read contents from the disk.
>>
>> I hope the above explanation is clear.
>>
>>     
>>> and last thing, i try gfs2, but same result
>>>
>>>
>>>  
>>>
>>>       
>> -- Wendy
>>     
>
> This seems a little bit odd to me. I'm running a RH 7.3 cluster,
> pre-redhat Sistina GFS, lock_gulm, 1GB FC shared disk, and have been
> since ~2002.
>
> Here's the timing I get for the same basic test between two nodes:
>
> [root at sbc1 root]# cd /mnt/gfs/workspace/cbarry/
> [root at sbc1 cbarry]# mkdir tst
> [root at sbc1 cbarry]# cd tst
> [root at sbc1 tst]# time touch testfile
>
> real    0m0.094s
> user    0m0.000s
> sys     0m0.000s
> [root at sbc1 tst]# time ls -la testfile
> -rw-r--r--    1 root     root            0 Jul 11 12:20 testfile
>
> real    0m0.122s
> user    0m0.010s
> sys     0m0.000s
> [root at sbc1 tst]#
>
> Then immediately from the other node:
>
> [root at sbc2 root]# cd /mnt/gfs/workspace/cbarry/
> [root at sbc2 cbarry]# time ls -la tst
> total 12
> drwxr-xr-x    2 root     root         3864 Jul 11 12:20 .
> drwxr-xr-x    4 cbarry   cbarry       3864 Jul 11 12:20 ..
> -rw-r--r--    1 root     root            0 Jul 11 12:20 testfile
>
> real    0m0.088s
> user    0m0.010s
> sys     0m0.000s
> [root at sbc2 cbarry]#
>
>
> Now, you cannot tell me 10 seconds is 'normal' for a clustered fs. That
> just does not fly. My guess is DLM is causing problems.
>
>   
 From previous post, we really can't tell since the network and disk 
speeds are variables and unknown. However, look at your data:

local "ls" is 0.122s
remote "ls" is 0.088s

I bet the disk flushing happened during first "ls" (and different base 
kernels treat their dirty data flush and IO scheduling differently). I 
can't be convinced that DLM is an issue - unless the experiment has 
collected enough sample that has its statistical significance.

-- Wendy





More information about the Linux-cluster mailing list