You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide statistics which reflect reality as realistically as possible
Current Behavior
On a production system, http2 was disabled. The ttfb and total processing time for cache hits as reported by post-processing of varnishncsa logs then went through the roof:
Context
Regarding ttfb (as deduced from Timestamp Processing:), the reporting point is independent of the protocol here and here.
The timestamp is relative to req->t_first, which is initialized in these places:
One simple option to make the values comparable would be to start "Processing" after the receive also for http/1. Or we could at least take the t_first timestamp also at the beginning of the receive in h2_rxframe() for http2.
Opinions?
The text was updated successfully, but these errors were encountered:
A newly created request's t_first is now when the first (partial) read of the
HEADERS frame is complete.
t_req is now when all headers are complete.
This should match http1 more closely
Implements varnishcache#4282
Alternatives considered: Add the timestamp as a field to struct h2_sess. I did
not like growing this big structure even more.
Expected Behavior
Provide statistics which reflect reality as realistically as possible
Current Behavior
On a production system, http2 was disabled. The ttfb and total processing time for cache hits as reported by post-processing of
varnishncsa
logs then went through the roof:Context
Regarding ttfb (as deduced from
Timestamp Processing:
), the reporting point is independent of the protocol here and here.The timestamp is relative to
req->t_first
, which is initialized in these places:varnish-cache/bin/varnishd/http1/cache_http1_fsm.c
Lines 322 to 327 in 3cd6596
varnish-cache/bin/varnishd/http2/cache_http2_proto.c
Lines 774 to 778 in 3cd6596
where the dispatched function
h2_rx_headers()
is called viah2_procframe()
fromh2_rxframe()
, which has the actual receive:varnish-cache/bin/varnishd/http2/cache_http2_proto.c
Lines 1480 to 1481 in 3cd6596
One simple option to make the values comparable would be to start "Processing" after the receive also for http/1. Or we could at least take the
t_first
timestamp also at the beginning of the receive inh2_rxframe()
for http2.Opinions?
The text was updated successfully, but these errors were encountered: