[Linux-cluster] Slowness above 500 RRDs

Ferenc Wagner wferi at niif.hu
Tue Jun 12 15:43:24 UTC 2007


David Teigland <teigland at redhat.com> writes:

> On Tue, Jun 12, 2007 at 04:01:04PM +0200, Ferenc Wagner wrote:
>
>> with -l0:
>> 
>> filecount=500
>>   iteration=0 elapsed time=5.966146 s
>>   iteration=1 elapsed time=0.582058 s
>>   iteration=2 elapsed time=0.528272 s
>>   iteration=3 elapsed time=0.936438 s
>>   iteration=4 elapsed time=0.528147 s
>> total elapsed time=8.541061 s
>>
>> Looks like the bottleneck isn't the explicit locking (be it plock
>> or flock), but something else, like the built-in GFS locking.
>
> I'm guessing that these were run with a single node in the cluster?
> The second set of numbers (with -l0) wouldn't make much sense
> otherwise.

Yes, you guessed right.  For some reason I found it a good idea to
reveal this at the end only.  (Sorry.)

> In the end I expect that flocks are still going to be the fastest
> for you.

They really seem to be faster, but since the [fp]locking time is
negligible, it doesn't buy much.

> I think if you add nodes to the cluster, the -l0 numbers will go up
> quite a bit.

Let's see.  Mounting on one more node (and switching on the third):

# cman_tool services
type             level name     id       state       
fence            0     default  00010001 none        
[1 2 3]
dlm              1     clvmd    00020001 none        
[1 2 3]
dlm              1     test     000a0001 none        
[1 2]
gfs              2     test     00090001 none        
[1 2]

$ <commands to run the test>
filecount=500
  iteration=0 elapsed time=5.030971 s
  iteration=1 elapsed time=0.657682 s
  iteration=2 elapsed time=0.798228 s
  iteration=3 elapsed time=0.65742 s
  iteration=4 elapsed time=0.776301 s
total elapsed time=7.920602 s

Somewhat slower, yes.  But still pretty fast.

Mounting on the third node:

# cman_tool services
type             level name     id       state       
fence            0     default  00010001 none        
[1 2 3]
dlm              1     clvmd    00020001 none        
[1 2 3]
dlm              1     test     000a0001 none        
[1 2 3]
gfs              2     test     00090001 none        
[1 2 3]

$ <commands to run the test>
filecount=500
  iteration=0 elapsed time=0.822107 s
  iteration=1 elapsed time=0.656789 s
  iteration=2 elapsed time=0.657798 s
  iteration=3 elapsed time=0.881496 s
  iteration=4 elapsed time=0.659481 s
total elapsed time=3.677671 s

It's much the same...

>> Again, the above tests were done with a single node switched on,
>> and I'm not sure whether the results carry over to the real cluster
>> setup, will test is soon.
>
> Ah, yep.  When you add nodes the plocks will become much slower.
> Again, I think you'll have better luck with flocks.

I didn't get anywhere with flocks.  At least strace didn't lead me
anywhere.  It showed my that the flock() calls are indeed faster than
the fcntl64() calls, but neither took a significant percentage of the
full run time.  I don't say I fully understand the strace output, but
the raw numbers above reflect the reality for sure.

>> Also, I can send the results of the scenario suggested by you, if
>> it's still relevant.  In short: the locks are always mastered on
>> node A only, but the performance is poor nevertheless.
>
> Poor even in the first step when you're just mounting on nodeA?

Yes, as detailed in the other mail.
-- 
Thanks,
Feri.




More information about the Linux-cluster mailing list