On Fri, Mar 25, 2016 at 04:05:51PM -0700, Yuchung Cheng wrote: > Looks like an interesting and useful patch. Since HTTP2 allows > multiplexing data stream frames from multiple logical streams on a > single socket, > how would you instrument to measure the latency of each stream? e.g., > > sendmsg of data_frame_1_of_stream_a > sendmsg of data_frame_1_of_stream_b > sendmsg of data_frame_2_of_stream_a > sendmsg of data_frame_1_of_stream_c > sendmsg of data_frame_2_of_stream_b
A quick recall from the end of the commit message: "One of our use case is at the webserver. The webserver tracks the HTTP2 response latency by measuring when the webserver sends the first byte to the socket till the TCP ACK of the last byte is received." It is the server side perception on how long does it take to deliver the whole response/stream to the client. Hence, the number of interleaved streams does not matter. Some sample use cases are, comparing TCP sysctl/code changes, observing encoding/compression impact (e.g. HPACK in HTTP2). Assuming frame_2 is the end stream for 'a' and 'b': sendmsg of data_frame_1_of_stream_a sendmsg of data_frame_1_of_stream_b sendmsg of data_frame_2_of_stream_a MSG_EOR sendmsg of data_frame_1_of_stream_c sendmsg of data_frame_2_of_stream_b MSG_EOR Are you suggesting other useful ways/metrics should be measured in this case?