高性能网站开发 书籍个人网站推广方法
web/
2025/9/26 10:48:07/
文章来源:
高性能网站开发 书籍,个人网站推广方法,多用户商城系统方案,国内顶尖工业设计公司并行运行hbase删表#xff0c;建表操作#xff0c;多个表多个region#xff0c;导致hbase挂掉。查看日志#xff1a;从日志中可以看出GC时间过长导致zookeeper连接超时#xff0c;master退出。(是master退出而不是regionserver退出是因为进行的操作是建表#xff0c;删表…并行运行hbase删表建表操作多个表多个region导致hbase挂掉。查看日志从日志中可以看出GC时间过长导致zookeeper连接超时master退出。(是master退出而不是regionserver退出是因为进行的操作是建表删表是由master来进行操作的)。原因hbase中和GC相关的参数修改前(默认)export HBASE_OPTS$HBASE_OPTS -ea -verbose:gc-Xloggc:$HBASE_LOG_DIR/hbase.gc.log-XX:ErrorFile$HBASE_LOG_DIR/hs_err_pid.log -XX:PrintGCTimeStamps-XX:PrintGCDetails -XX:HeapDumpOnOutOfMemoryError-XX:UseConcMarkSweepGC -XX:CMSIncrementalMode咨询开发修改后export HBASE_OPTS$HBASE_OPTS -verbose:gc-Xloggc:$HBASE_LOG_DIR/hbase.gc.log-XX:ErrorFile$HBASE_LOG_DIR/hs_err_pid.log -XX:PrintGCDateStamps-XX:PrintGCDetails -XX:HeapDumpOnOutOfMemoryError-XX:UseConcMarkSweepGC -XX:UseParNewGC -XX:CMSInitiatingOccupancyFraction70-XXUseConcMarkSweepGC设置年老代为并发收集。(新老都有)老-XX:CMSIncrementalMode:设置为增量模式。适用于单CPU情况。新-XX:UseParNewGC设置年轻代为并行收集。可与 CMS 收集同时使用。-XX:CMSInitiatingOccupancyFraction70:这个参数是我觉得产生最大作用的。因为最终的目的是减少FULL GC因为full gc是会block其他线程的。默认触发GC的时机是当年老代内存达到90%的时候这个百分比由 -XX:CMSInitiatingOccupancyFractionN 这个参数来设置。concurrent mode failed发生在这样一个场景当年老代内存达到90%的时候CMS开始进行并发垃圾收集于此同时新生代还在迅速不断地晋升对象到年老代。当年老代CMS还未完成并发标记时年老代满了悲剧就发生了。CMS因为没内存可用不得不暂停mark并触发一次全jvm的stop theworld(挂起所有线程)然后采用单线程拷贝方式清理所有垃圾对象也就是fullgc。而我们的bulk的最开始的操作就是各种删表,建表频繁的操作就会使用掉大量master的年轻代的内存就会发生上面发生的场景发生fullgc。解决办法CMSInitiatingOccupancyFraction70表示年老代占到约70%时就开始执行CMS这样就不会出现(或很少出现)Full GC了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82149.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!