RHEL6 kernel bug在hadoop上的测试
最近给hadoop集群升级了RHEL6,发现性能比之前的差了不少。发现淘宝内核组发现并解决了这个问题
于是在测试机器上面跑了一下对比,收货很大:
环境介绍:
测试机型:IBM X3630 M3 48G 12X2TSAS
集群:master 1台,salve3台
测试方式:官方terasort
测试数据:100G (10亿条,每条100字节)
Map个数:736
Reduce个数:30
测试结果:
- 1. Job用时对比:
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
平均用时 |
自带内核用时 |
7m30s |
8m10s |
8m7s |
8m15s |
8m6s |
8m3s |
8m16s |
8m8s |
打patch后用时 |
6m40s |
6m45s |
6m44s |
6m45s |
6m49s |
6m53s |
7m1s |
6m48s |
七次平均用时对比(去掉最大最小取平均),打patch后用时少了16%。
- 2. BenchMark数据对比
BenchMark |
自带内核 |
打patch后 |
对比 |
ReduceShufferTime |
2804003 |
1950012 |
下降30% |
ReduceSortTime |
122149 |
113363 |
下降7% |
MapNextKeyTime |
3503416 |
3629686 |
上升4% |
ReduceNextKeyTime |
56035 |
57081 |
上升2% |
ReduceUserTime |
2319175 |
1881118 |
下降19% |
MapUserTime |
6621552 |
5504168 |
下降17% |
CPU time spent (ms) |
20498470 |
16503790 |
下降19% |
Total committed heap usage (byte) |
595103383552 |
594591481856 |
持平 |
Physical memorg (bytes) |
363650875392 |
353246367744 |
持平 |
Virtual memory (bytes) |
1561136439296 |
1560911613952 |
持平 |
- 3. 系统状况
没有使用ganglia等工具,大体数据如下:
|
cpu峰值 |
load峰值 |
内存使用 |
自带内核用时 |
92% |
40 |
8% |
打patch后用时 |
90% |
32 |
10% |
- 4. 结论
从测试数据看,无论是直观的job用时,还是benchmark数据,打patch后性能均有明显的提升。
BenchMark的耗时在shuffle阶段提升最明显,shuffle阶段也正是IO最密集的时候,跟原文对IO的改进基本吻合。