十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
Hadoop 0.23 性能笔记
上一篇 /
下一篇 2011-11-27 16:26:32
/ 个人分类:测试经验
查看( 1255 ) /
评论( 0 )
[p=30, 2, left]Cloudera 的Hadoop World上看到的这个PPT:
51Testing软件测试网s|4X'uYwHadoop
-Sh
J TV!n0and Performance,介绍了一些现在0.20 和0.23版本性能优化的技巧,这里做个笔记[/p]
51Testing软件测试网9Z `YX)Dl'ln[p=30, 2, left]
Hadoop
2c$Y qk,{L0性能误区[/p]
- Java 很慢51Testing软件测试网'H\U#a A
Hadoop51Testing软件测试网 A:_"S F%u
主要的瓶颈在磁盘IO 或者网络传输上,不是cpu
[p=30, 2, left]在cpu 热点上,我们可以使用JNI 或者sun.misc.Unsafe[/p]
- Java 没有提供足够的系统底层的支持 JNI 跟C一样可以容许我们调用任何系统调用
[p=30, 2, left]我们能够集成汇编代码[/p]
- Hadoop
_)px's
U+cq2mN0IO 有太多层了 Linux IO调度器,ext4,XFS 的开发人员的确比我们更了解系统底层IO
[p=30, 2, left]每个系统都会有IO调度和文件层,那些绕开
操作系统的(比如DBMS)都是为了实现移植性[/p]
51Testing软件测试网 `I;z9C#h[p=30, 2, left]
HDFS/MR 的IO/Caching 实现特点[/p]
- MapReduce 主要设计为顺序读取.
- Linux IO 调度提前读很弱(read-ahead) HDFS 0.20即使顺序读也会随机IO寻址多次.
- 数据集比内存容量大很多,缓存无效
- Linux 会将读刷入磁盘的时间延后以防止重写(HDFS 不会有这种状况).
[p=30, 2, left]如果脏页面消耗了多余dirty_ratio 的内存,会阻止所有的写(IO会停止即使在磁盘IO没有完全利用的情况)[/p]