Thanks! I upgrade the grpc-java version from 1.3.3 to 1.51.0, and the IDLE time is reduced from 1000ms to 300ms.
在2023年8月25日星期五 UTC+8 13:05:56<sanjay...@google.com> 写道: > Instead of modifying and using the jre/lib logging.properties file can you > try using one for your application alone as described in my previous > message (use Java property java.util.logging.config.file and so on)? > > On Wednesday, August 23, 2023 at 7:49:39 PM UTC-7 邹会江 wrote: > >> 1. I modified the logging.properties file under jre/lib: >> handlers=java.util.logging.ConsoleHandler >> io.grpc.ChannelLogger.level=FINEST >> io.grpc.level=FINEST >> io.netty.level=FINEST >> java.util.logging.ConsoleHandler.level=ALL >> >> java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter >> but grpc doesn't have any log output to the console. >> >> 在2023年8月24日星期四 UTC+8 02:32:08<Sanjay Pujare> 写道: >> >>> On Wed, Aug 23, 2023 at 1:37 AM '邹会江' via grpc.io < >>> grp...@googlegroups.com> wrote: >>> >>>> Sanjay Pujare: >>>> Thank you for your reply! >>>> 1. How do i enable trace logging? >>>> >>> >>> It uses java util logging so to enable using JAVA_OPTS: >>> >>> export JAVA_OPTS="-Djava.util.logging.config.file=/logging.properties" >>> >>> And in /logging.properties have this: >>> >>> handlers=java.util.logging.ConsoleHandler >>> io.grpc.ChannelLogger.level=FINEST >>> io.grpc.level=FINEST >>> io.netty.level=FINEST >>> java.util.logging.ConsoleHandler.level=ALL >>> >>> java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter >>> >>> Or you can tweak it to your liking. >>> >>> >>>> 2. DNS resolution,TLS hanshake and TCP connection.In this case,the >>>> state of channel should be CONNECTING? >>> >>> >>> Yes. >>> >>> >>>> Therefore,the TCP connectio only affects the CONNECTING time, but not >>>> the IDLE time. >>>> >>> >>> Not sure I understand this comment/question. But when it is trying to >>> establish the TCP connection, yes the status is CONNECTING >>> >>> >>>> >>>> 在2023年8月23日星期三 UTC+8 14:23:02<Sanjay Pujare> 写道: >>>> >>>>> Most of the time is spent in IDLE -> CONNECTING transition. From this >>>>> doc >>>>> https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md >>>>> >>>>> which says for CONNECTING >>>>> >>>>> CONNECTING: The channel is trying to establish a connection and is >>>>> waiting to make progress on one of the steps involved in name resolution, >>>>> TCP connection establishment or TLS handshake. This may be used as the >>>>> initial state for channels upon creation. >>>>> >>>>> DNS resolution and TLS handshake (since you are not calling >>>>> usePlaintext() on the builder) are possible culprits. Even TCP connection >>>>> establishment is a possibility depending on where the target is. If you >>>>> enable trace logging you might be able to figure out. >>>>> >>>>> On Tue, Aug 22, 2023 at 10:08 PM '邹会江' via grpc.io < >>>>> grp...@googlegroups.com> wrote: >>>>> >>>>>> Thank you for your reply! >>>>>> 1. The first time: >>>>>> The transition from idle state to connecting takes: 3377 ms, >>>>>> The transition from idle state to ready takes: 3679 ms >>>>>> 2. The second time: >>>>>> The transition from idle state to connecting takes: 1643 ms, >>>>>> The transition from idle state to ready takes: 1797 ms >>>>>> 3.The third time: >>>>>> The transition from idle state to connecting takes: 1019 ms, >>>>>> The transition from idle state to ready takes: 1049 ms >>>>>> 4. What is my enviroment? >>>>>> MacBook Pro (16-inch, 2019) >>>>>> 2.6 GHz 6 core Intel Core i7 >>>>>> 16 GB 2667 MHz DDR4 >>>>>> >>>>>> 在2023年8月23日星期三 UTC+8 04:31:28<Larry Safran> 写道: >>>>>> >>>>>>> Another question is whether this is the same the second time you >>>>>>> create a channel. The first time, the JVM may be taking time doing >>>>>>> class >>>>>>> loading. >>>>>>> >>>>>>> On Tue, Aug 22, 2023 at 8:41 AM 'Yuri Golobokov' via grpc.io < >>>>>>> grp...@googlegroups.com> wrote: >>>>>>> >>>>>>>> Hello, >>>>>>>> What is the round-trip time? How much time does DNS resolution take? >>>>>>>> >>>>>>>> On Tuesday, August 22, 2023 at 12:02:21 AM UTC-7 邹会江 wrote: >>>>>>>> >>>>>>>>> ### JAVA Code >>>>>>>>> >>>>>>>>> ``` >>>>>>>>> channel = >>>>>>>>> ManagedChannelBuilder.forTarget(param.getTarget()).build(); >>>>>>>>> long channelStart = System.currentTimeMillis(); >>>>>>>>> asyncStub = ASRRouteGrpc.newStub(channel); >>>>>>>>> asrResponseStreamObserver = new >>>>>>>>> ASRResponseStreamObserver(speechTranscriberListener); >>>>>>>>> requestObserver = >>>>>>>>> asyncStub.route(asrResponseStreamObserver); >>>>>>>>> RouteRequest requestConf = newRequestHead(param); >>>>>>>>> traceId = requestConf.getAsrConfig().getTraceId(); >>>>>>>>> ConnectivityState currentChannelState = >>>>>>>>> channel.getState(true); >>>>>>>>> while (currentChannelState != ConnectivityState.READY) >>>>>>>>> { >>>>>>>>> CountDownLatch latchUntilChannelReady = new >>>>>>>>> CountDownLatch(1); >>>>>>>>> >>>>>>>>> channel.notifyWhenStateChanged(currentChannelState, >>>>>>>>> latchUntilChannelReady::countDown); >>>>>>>>> latchUntilChannelReady.await(); >>>>>>>>> currentChannelState = channel.getState(true); >>>>>>>>> if (currentChannelState == >>>>>>>>> ConnectivityState.CONNECTING) { >>>>>>>>> long channelConnecting = >>>>>>>>> System.currentTimeMillis(); >>>>>>>>> LOGGER.info("The transition from idle state to >>>>>>>>> connecting takes: {} ms", channelConnecting - channelStart); >>>>>>>>> } >>>>>>>>> } >>>>>>>>> long channelReady = System.currentTimeMillis(); >>>>>>>>> if (LOGGER.isInfoEnabled()) { >>>>>>>>> LOGGER.info("Trace id: {}, channel start time: {}, >>>>>>>>> channel ready time: {}, creating channel takes: {} ms", traceId, >>>>>>>>> channelStart, channelReady, >>>>>>>>> channelReady - channelStart); >>>>>>>>> } >>>>>>>>> ``` >>>>>>>>> ### LOGGER >>>>>>>>> >>>>>>>>> ``` >>>>>>>>> 2023-08-22 14:12:34,816 INFO client.ASRClient - The transition >>>>>>>>> from idle state to connecting takes: 1009 ms >>>>>>>>> 2023-08-22 14:12:34,841 INFO client.ASRClient - Trace id: >>>>>>>>> 6afd2c67-e8c5-4cea-bd5c-4b82591a52aa, channel start time: >>>>>>>>> 1692684753807, >>>>>>>>> channel ready time: 1692684754841, creating channel takes: 1034 ms >>>>>>>>> ``` >>>>>>>>> ### Description >>>>>>>>> #### code logic >>>>>>>>> 1. first create channel >>>>>>>>> 2. mark a time stamp(channelStart) after the channel is created >>>>>>>>> 3. get the state of channel ,the state is IDEL >>>>>>>>> 4. when the state of channel changes from IDEL to CONNECTING,mark >>>>>>>>> a time stamp(channelConnecting) >>>>>>>>> 5. when the state of channel changes from CONNECTING to READY, >>>>>>>>> mark a time stamp(channelReady) >>>>>>>>> >>>>>>>>> #### Log info >>>>>>>>> 1. It takes 1009ms for channel from IDLE state to CONNECTING state. >>>>>>>>> 2. It takes 25ms for channel from CONNECTIONG state to READY state. >>>>>>>>> ### What's i supposed >>>>>>>>> 1. Does it take too long for a channel to change from IDLE to >>>>>>>>> CONNECTING? >>>>>>>>> 2. I want to reduce the time it takes for a channel to go from >>>>>>>>> IDLE to CONNECTING. >>>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "grpc.io" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to grpc-io+u...@googlegroups.com. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/grpc-io/8f2a15b8-1541-422e-ad66-9a5778e53882n%40googlegroups.com >>>>>>>> >>>>>>>> <https://groups.google.com/d/msgid/grpc-io/8f2a15b8-1541-422e-ad66-9a5778e53882n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "grpc.io" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to grpc-io+u...@googlegroups.com. >>>>>> >>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/grpc-io/8901e7bd-b684-462f-bf88-3607b6b01713n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/grpc-io/8901e7bd-b684-462f-bf88-3607b6b01713n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "grpc.io" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to grpc-io+u...@googlegroups.com. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/grpc-io/76f2be33-959a-4bf3-9405-1b1748ba3ec0n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/grpc-io/76f2be33-959a-4bf3-9405-1b1748ba3ec0n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/421ab865-34bd-4753-99e9-01286cc513dbn%40googlegroups.com.