hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Bockelman (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-425) Major performance drop on slower machines
Date Wed, 23 Feb 2011 00:55:38 GMT

    [ https://issues.apache.org/jira/browse/HDFS-425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12998114#comment-12998114

Brian Bockelman commented on HDFS-425:

This is most likely due to the kernel's buffer size.  Even though HDFS performs large reads
(perhaps you use the default 10MB), FUSE will transfer back to the kernel in chunks of 4kb.
 That is, every 4kb of reads requires 2 context switches -- the slower CPUs simply get drowned
out by number of context switches.  This also limits the overall throughput, even on faster

Looking in the kernel docs (found via google):

It appears there is a max_read option for FUSE that might help here.  Run with "-d" and see
if you are getting 128KB-sized reads when FUSE.

It should be possible to use hdfsRead instead of hdfsPread for sequential reads (a-la cat'ing
a file).

> Major performance drop on slower machines
> -----------------------------------------
>                 Key: HDFS-425
>                 URL: https://issues.apache.org/jira/browse/HDFS-425
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: contrib/fuse-dfs
>            Reporter: Marc-Olivier Fleury
> When running fuse_dfs on machines that have different CPU characteristics, I noticed
that the performance of fuse_dfs is very sensitive to the machine power. 
> The command I used was simply a cat over a rather large amount of data stored on HDFS.
Here are the comparative times for the different types of machines:
> Intel(R) Pentium(R) 4 CPU 2.40GHz :                                2 min 40 s 
> Intel(R) Pentium(R) 4 CPU 3.06GHz:                                 1 min 50 s 
> 2 x Intel(R) Pentium(R) 4 CPU 3.00GHz:                           0 min 40 s 
> 2 x Intel(R) Xeon(TM) MP CPU 3.33GHz:                           0 min 28 s 
> Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz      0 min 15 s
> I tried to find other explanations for the drop in performance, such as network configuration,
or data locality, but the faster machines are the ones that are "further away" from the others
considering the network configuration, and that don't run datanodes.
> top shows that the CPU usage of fuse_dfs is between 80-90% on the slower machines, and
about 40% on the fastest one.
> This leads me to the conclusion that fuse_dfs consumes a lot of CPU resources, much more
than expected.
> Any help or insight concerning this issue will be greatly appreciated, since these difference
actually result in days of computations for a given job.
> Thank you

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message