You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@hbase.apache.org by ww...@sina.com on 2020/03/13 02:08:35 UTC

回复:Re: Re: hbase读耗时问题排查

有可能每次序列化的类不一样吗?

----- 原始邮件 -----
发件人:张铎(Duo Zhang) <pa...@gmail.com>
收件人:ww112925@sina.com
抄送人:user-zh <us...@hbase.apache.org>
主题:Re: Re: hbase读耗时问题排查
日期:2020年03月12日 15点42分

这是Class.forName特别慢?不太对劲啊,按理说class只要load一次就不会再load了?
不过JDK11的话,是不是Unsafe这个类没有export出来啊。。。
比如netty,如果想完整的把所有性能都发挥出来,得加一堆参数
https://github.com/netty/netty/issues/7838 
 

<ww...@sina.com> 于2020年3月12日周四 下午3:21写道:

hbase版本是2.1.0,jdk版本是11,回收器使用的zgc。


当时的火焰图,可以参照附件:

----- 原始邮件 -----
发件人:张铎(Duo Zhang) <pa...@gmail.com>
收件人:user-zh <us...@hbase.apache.org>, ww112925@sina.com
主题:Re: hbase读耗时问题排查
日期:2020年03月12日 14点27分

这个格式有点儿乱,不太能看清楚,是只追到这一个函数耗时很长吗?他调用的函数没有时间长的?
你用的HBase版本是啥?
<ww...@sina.com> 于2020年3月5日周四 下午4:03写道:
你好:

在排查读超时的时候,追踪到org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize这个方法,发现这个方法经常出现耗时在几百毫秒,甚至出现1s多的情况,这个有什么解决办法。



`---ts=2020-03-05 15:59:23;thread_name=RpcServer.default.RWQ.Fifo.read.handler=183,queue=15,port=16020;id=146;is_daemon=true;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@67424e82    `---[332.560533ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize()        `---[332.541313ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize() #257            `---[332.5319ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize()                +---[min=6.08E-4ms,max=8.98E-4ms,total=0.001506ms,count=2] org.apache.hadoop.hbase.nio.ByteBuff:limit() #263                +---[7.0E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:rewind() #263                +---[9.39E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:slice() #267                +---[5.69E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:limit() #274                +---[6.0E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:position() #274                +---[min=4.83E-4ms,max=5.89E-4ms,total=0.001072ms,count=2] org.apache.hadoop.hbase.nio.ByteBuff:limit() #275                +---[329.654367ms] org.apache.hadoop.hbase.nio.ByteBuff:get() #276                +---[0.001621ms] org.apache.hadoop.hbase.nio.ByteBuff:getLong() #277                +---[0.001714ms] org.apache.hadoop.hbase.nio.ByteBuff:getInt() #278                `---[2.814542ms] org.apache.hadoop.hbase.io.hfile.HFileBlock:<init>() #279

Re: Re: Re: hbase读耗时问题排查

Posted by "张铎 (Duo Zhang)" <pa...@gmail.com>.
应该不会的,这里也没有用什么字节码生成的东西

我怀疑还是Unsafe那块export的不对?你们在启动的时候有加类似这样的参数吗?

--add-exports java.base/jdk.internal.misc=ALL-UNNAMED

<ww...@sina.com> 于2020年3月13日周五 上午10:08写道:

> 有可能每次序列化的类不一样吗?
>
>
> ----- 原始邮件 -----
> 发件人:张铎(Duo Zhang) <pa...@gmail.com>
> 收件人:ww112925@sina.com
> 抄送人:user-zh <us...@hbase.apache.org>
> 主题:Re: Re: hbase读耗时问题排查
> 日期:2020年03月12日 15点42分
>
> 这是Class.forName特别慢?不太对劲啊,按理说class只要load一次就不会再load了?
>
> 不过JDK11的话,是不是Unsafe这个类没有export出来啊。。。
>
> 比如netty,如果想完整的把所有性能都发挥出来,得加一堆参数
>
> https://github.com/netty/netty/issues/7838
>
>
>
> <ww...@sina.com> 于2020年3月12日周四 下午3:21写道:
>
>
> hbase版本是2.1.0,jdk版本是11,回收器使用的zgc。
>
>
>
> 当时的火焰图,可以参照附件:
>
>
> ----- 原始邮件 -----
> 发件人:张铎(Duo Zhang) <pa...@gmail.com>
> 收件人:user-zh <us...@hbase.apache.org>, ww112925@sina.com
> 主题:Re: hbase读耗时问题排查
> 日期:2020年03月12日 14点27分
>
> 这个格式有点儿乱,不太能看清楚,是只追到这一个函数耗时很长吗?他调用的函数没有时间长的?
>
> 你用的HBase版本是啥?
>
> <ww...@sina.com> 于2020年3月5日周四 下午4:03写道:
>
> 你好:
>
> 在排查读超时的时候,追踪到org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize这个方法,发现这个方法经常出现耗时在几百毫秒,甚至出现1s多的情况,这个有什么解决办法。
>
> `---ts=2020-03-05
> 15:59:23;thread_name=RpcServer.default.RWQ.Fifo.read.handler=183,queue=15,port=16020;id=146;is_daemon=true;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@67424e82
>   `---[332.560533ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize()
>       `---[332.541313ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize()
> #257            `---[332.5319ms] org.apache.hadoop.hbase.io.hfile.HFileBlock$1:deserialize()
>               +---[min=6.08E-4ms,max=8.98E-4ms,total=0.001506ms,count=2]
> org.apache.hadoop.hbase.nio.ByteBuff:limit() #263
> +---[7.0E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:rewind() #263
>       +---[9.39E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:slice() #267
>             +---[5.69E-4ms] org.apache.hadoop.hbase.nio.ByteBuff:limit()
> #274                +---[6.0E-4ms]
> org.apache.hadoop.hbase.nio.ByteBuff:position() #274
> +---[min=4.83E-4ms,max=5.89E-4ms,total=0.001072ms,count=2]
> org.apache.hadoop.hbase.nio.ByteBuff:limit() #275
> +---[329.654367ms] org.apache.hadoop.hbase.nio.ByteBuff:get() #276
>       +---[0.001621ms] org.apache.hadoop.hbase.nio.ByteBuff:getLong() #277
>               +---[0.001714ms]
> org.apache.hadoop.hbase.nio.ByteBuff:getInt() #278
> `---[2.814542ms] org.apache.hadoop.hbase.io.hfile.HFileBlock:<init>() #279
>
>