- 浏览: 212053 次
- 性别:
- 来自: 河北
-
文章分类
最新评论
-
6420285:
你的文章很棒,很多地方讲的通俗易懂,非常感谢。 ...
深入掌握JMS(一):JSM基础 -
xs.cctv:
不错
zeroDateTimeBehavior=convertToNull -
hanyannan0123:
搞不清楚,此话属于经典呢,还是废话。
超类 好 -
czy584521:
```我肯定他用了谷歌金山词霸
IBM的面试官被我忽悠蒙了 -
yuantong:
老板跳槽?什么概念
我们老板跳槽了 !!!
HBase 里面调用DFSOutputStream的方法常用的是:write、sync
write会往当前Packet里面写数据,sync会强制生成一个Packet。
在DFSClient Packet里面每次都会new 一个 big byte array,size 是65557(more than 64K,data+checksum+head),由于sync会强制生成Packet,对于小kv数据来说,实际的数据会比较少,几百、几千、上万,很多时候其实没有64k的数据,所以这个使用率比较低。
(1)想到的方法是:使用一个Packet Pool
(2)减少dfs.write.packet.size,默认是64k
第一种方法:Packet不在经常new了,每次取Packet时从一个pool里面取,如果pool里面没有就new一个,使用完后就放到pool里面。测试结果不是很好,gc频率以及总gc时间都变少了很多,但是平均RT( response time)变长,其中比较有意思的是:有很多请求RT变少了,也有不少RT变长了,两级分化严重,总体上面平均RT变长,导致TPS下降。
原先gc频率很快,单次gc时间比较短,总的gc时间比较长。
据说pool的方式对于现在的jvm来说不是最优的,因为现在的jvm创建对象速度已经很快了,并且这个pool时间长了会放到old区,old区到young区的引用比较多的话,那么ygc效率就会比较低下
第二种方法:
调整dfs.write.packet.size,可以调整成32k、16k
效果大概如下:
测试的是 key/value = 10/100 bytes
export HBASE_REGIONSERVER_OPTS="-Xms8g -Xmx8g -Xmn2g -XX:SurvivorRatio=16 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -Xloggc:$HBASE_HOME/logs/gc-regionserver-`date +%Y%m%d-%H-%M`.log"
Java代码 复制代码 收藏代码
1.dfs.write.packet.size = 64k
2. Writer Finished,Consume time is: 383 seconds
3.==================Summary==================
4. Tables And Columns: hbasetest(10){caches:value1(100)}
5.----------Writer Statistics--------------
6. Write Threads: 100
7. Write Rows: 10000000
8. Consume Time: 383s
9. Requests: 10000000 Success: 100% (10000000) Error: 0% (0)
10. Avg TPS: 26041 Max TPS: 44460 Min TPS: 3183
11. Avg RT: 3ms
12. RT <= 0: 0% 3483/10000000
13. RT (0,1]: 12% 1273633/10000000
14. RT (1,5]: 81% 8123190/10000000
15. RT (5,10]: 1% 147321/10000000
16. RT (10,50]: 3% 371064/10000000
17. RT (50,100]: 0% 74896/10000000
18. RT (100,500]: 0% 6400/10000000
19. RT (500,1000]: 0% 13/10000000
20. RT > 1000: 0% 0/10000000
21.
22. jstat -gcutil 19968 2s
23. S0 S1 E O P YGC YGCT FGC FGCT GCT
24. 58.44 0.00 54.47 15.66 99.85 154 4.191 0 0.000 4.191
25.
26.dfs.write.packet.size = 32k
27.
28.Writer Finished,Consume time is: 367 seconds
29.==================Summary==================
30. Tables And Columns: hbasetest(10){caches:value1(100)}
31.----------Writer Statistics--------------
32. Write Threads: 100
33. Write Rows: 10000000
34. Consume Time: 367s
35. Requests: 10000000 Success: 100% (10000000) Error: 0% (0)
36. Avg TPS: 27173 Max TPS: 45276 Min TPS: 968
37. Avg RT: 3ms
38. RT <= 0: 0% 7274/10000000
39. RT (0,1]: 19% 1948293/10000000
40. RT (1,5]: 73% 7350970/10000000
41. RT (5,10]: 2% 259443/10000000
42. RT (10,50]: 3% 371545/10000000
43. RT (50,100]: 0% 56944/10000000
44. RT (100,500]: 0% 5360/10000000
45. RT (500,1000]: 0% 85/10000000
46. RT > 1000: 0% 86/10000000
47.
48. S0 S1 E O P YGC YGCT FGC FGCT GCT
49. 0.00 92.02 92.32 14.89 99.74 67 2.668 0 0.000 2.668
50.
51. dfs.write.packet.size = 16k
52.
53.Writer Finished,Consume time is: 364 seconds
54.==================Summary==================
55. Tables And Columns: hbasetest(10){caches:value1(100)}
56.----------Writer Statistics--------------
57. Write Threads: 100
58. Write Rows: 10000000
59. Consume Time: 364s
60. Requests: 10000000 Success: 100% (10000000) Error: 0% (0)
61. Avg TPS: 27397 Max TPS: 45309 Min TPS: 890
62. Avg RT: 3ms
63. RT <= 0: 0% 9291/10000000
64. RT (0,1]: 21% 2118605/10000000
65. RT (1,5]: 71% 7192119/10000000
66. RT (5,10]: 2% 265516/10000000
67. RT (10,50]: 3% 346697/10000000
68. RT (50,100]: 0% 61084/10000000
69. RT (100,500]: 0% 6590/10000000
70. RT (500,1000]: 0% 15/10000000
71. RT > 1000: 0% 83/10000000
72.
73. S0 S1 E O P YGC YGCT FGC FGCT GCT
74. 53.45 0.00 77.52 15.31 99.24 50 2.295 0 0.000 2.295
YGC(young gc次数) YGCT(young gc总时间,单位s) dfs.write.packet.size 单次gc时间(单位ms)
154 4.191 64K 27.57236842105263
67 2.668 32k 39.82089552238806
50 2.295 16K 45.9
发表评论
-
UDF 底层实现
2017-01-04 00:03 762用户自定义函数 继承UDF,重写evaluate方法即可 ... -
MetadataCleaner
2016-12-09 23:09 767MetadataCleaner运行定时任务周期性的清理元数据( ... -
黑马程序员_java08_多线程
2016-03-13 13:01 448转载于:http://www.itxuexiwang.com/ ... -
Redis数据库的安装配置方
2016-02-23 11:27 800转载于:http://www.itxuexiwang.com/ ... -
NoSQL和Redis简介及Redis在Windows下的安装和使用教程
2016-02-23 11:28 671转载于:http://www.itxuexiwang.com/ ... -
64位Windows下安装Redis教程
2016-03-10 14:06 721转载于:http://www.itxuexiwang.com/ ... -
Redis中5种数据结构的使用场景介绍
2016-02-25 13:27 721转载于:http://www.itxuexiw ... -
redis中使用redis-dump导出、导入、还原数据实例
2016-02-25 13:26 1315转载于:http://www.itxuexiwang.com/ ... -
Redis批量删除KEY的方法
2016-02-26 17:24 763Redis 中有删除单个 Key 的指令 DEL,但好像没有批 ... -
Redis总结笔记(二):C#连接Redis简单例子
2016-02-26 17:24 731转载于:http://www.itxuexiwang.com/ ... -
redis启动流程介绍
2016-03-10 14:07 639转载于:http://www.itxuexiwang.com/ ... -
Redis配置文件详解
2016-03-14 16:03 571转载于:http://www.itxuexiwang.com/ ... -
在Mac OS上安装Vagrant和Docker的教程
2016-03-14 16:03 527转载于:http://www.itxuexiwang.com/ ... -
使用Redis实现用户积分排行榜的教程
2016-02-19 11:35 1020转载于:http://www.itxuexiwang.com/ ... -
Redis教程(一):Redis简介
2016-03-11 12:12 585转载于:http://www.itxuexiw ... -
Redis教程(二):String数据类型
2016-03-15 15:44 475转载于:http://www.itxuexiw ... -
Redis教程(四):Hashes数据类型
2016-03-14 16:02 333转载于:http://www.itxuexiw ... -
Redis教程(六):Sorted-Sets数据类型
2016-02-19 11:35 509转载于:http://www.itxuexiwang.com/ ... -
Redis教程(八):事务详解
2016-03-14 16:03 376转载于:http://www.itxuexiw ... -
Redis教程(七):Key操作命令详解
2016-03-15 15:44 395转载于:http://www.itxuexiwang.com/ ...
相关推荐
从找资源到找到,验证虚拟机反复验证PJ情况。2021年 目前亲测可用版本:Faronics_DFS_8.53.020.5458 项目需要,大约用时3小时寻找此资源。
具体来说,`DFS.cpp` 可能是实现DFS算法的主要C++源代码文件,而其他文件如 `DFS.dsp`、`DFS.dsw`、`DFS.ncb`、`DFS.opt`、`DFS.plg` 是Visual Studio项目和构建系统中的配置文件,用于管理和编译C++项目。...
在DFS的具体实现中,`dfs.cpp`文件很可能是包含了深度优先搜索算法的C++代码。通常,这样的代码会定义一个函数,如`dfs(int row, QueenPosition[])`,其中`row`表示当前处理的行号,`QueenPosition[]`是一个数组,...
深度优先遍历(DFS, Depth First Search)是一种用于遍历或搜索树或图的算法,它的基本思想是从起点开始,尽可能深地探索图的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一...
2. `src` 或 `graph_dfs` 目录:包含实际的Python源代码,可能有`dfs.py`或其他类似文件,实现DFS算法。 3. `tests` 目录:包含单元测试或集成测试,用于验证代码功能和性能。 4. `README.md` 或 `docs` 文件:提供...
编码器-DFS60[汇编].pdf
标题中的"dfs.zip_DFS.inc_UpdateLayeredWindow_delphi d_delphi7 dfsstatusb_" 提供了一些关键信息,其中“DFS.inc”可能是一个包含特定功能或接口声明的包含文件,通常在Delphi编程环境中用于组织代码。...
9001 dfs.namenode.rpc-address,DataNode会连接这个端口 50070 dfs.namenode.http-address 50470 dfs.namenode.https-address 50100 dfs.namenode.backup.address 50105 dfs.namenode.backup.http-address 50090 ...
深度优先搜索(DFS,Depth-First Search)是一种用于遍历或搜索树或图的算法。在计算机科学中,DFS常用于解决各种问题,包括寻找路径、判断连通性以及求解最短路径等。DFS的基本思想是尽可能深地探索树的分支,直到...
- **2181**:`hbase.zookeeper.property.clientPort`,如果HBase使用内部管理的ZooKeeper集群,则此端口用于客户端连接。 - **2888**:`hbase.zookeeper.peerport`,用于Follower与Leader之间的通信。 - **3888**...
深度优先搜索(DFS,Depth-First Search)与广度优先搜索(BFS,Breadth-First Search)是图论和树形结构中常用的两种遍历算法,它们在计算机科学中有着广泛的应用,如在算法设计、数据结构、游戏逻辑、网络爬虫等...
这里我们关注的是两种主要的图遍历算法:深度优先搜索(DFS,Depth-First Search)和广度优先搜索(BFS,Breadth-First Search)。这个名为“旅游图_dfs_bfs_源码.zip”的压缩包很可能是包含这两种算法的实现,针对...
DFS_CDMA_Tool3.3.0.7 是一个专门针对CDMA网络设备进行写号操作的工具,主要用于手机或其他CDMA设备的网络设置与优化。CDMA(Code Division Multiple Access,码分多址)是一种无线通信技术,广泛应用于移动通信系统...
- **dfs-fastdfs-client-api(fastdfs 客户端)** fastdfs提供的java客户端api,所有java相关功能都在基于这个基础上封装,扩展。 第三方应用不需要关心该接口. - **dfs-core(http服务器)** 提供http接口服务...
《DFS文件服务器详解归类》 分布式文件系统(DFS,Distributed File System)是一种网络文件系统,它允许用户在一个统一的命名空间内访问分布在网络各处的文件资源。DFS通过创建逻辑上的文件结构,将物理上分散的...
在这个“DFS.rar”压缩包中,包含了关于DFS算法的实现,以及与之相关的图操作和邻接表构建。在图论编程中,DFS是一种常用的技术,它按照“尽可能深”的原则探索图的边,直到达到某个节点无法继续深入为止,然后回溯...
深度优先搜索(DFS)是一种用于图和树的遍历算法,它在计算机科学领域被广泛应用于搜索问题和路径查找问题中。DFS的核心思想是尽可能深地探索每一条可能的分支路径,直到这条路径达到尽头,然后回溯到上一个节点继续...