<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Realm of Chaos - networking</title>
    <subtitle>Welcome to my notebook! I’m a Site Reliability Engineer who is curious, loves to learn and discover the nature of things.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://realmofchaos.xyz/tags/networking/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://realmofchaos.xyz"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2022-03-22T00:00:00+00:00</updated>
    <id>https://realmofchaos.xyz/tags/networking/atom.xml</id>
    <entry xml:lang="en">
        <title>Application Performance Analysis</title>
        <published>2022-03-22T00:00:00+00:00</published>
        <updated>2022-03-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Thomas Cuthbert
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://realmofchaos.xyz/tech/incident-response/"/>
        <id>https://realmofchaos.xyz/tech/incident-response/</id>
        
        <content type="html" xml:base="https://realmofchaos.xyz/tech/incident-response/">&lt;p&gt;In this post I will detail the investigation process I followed while responding to a request backlog alert.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;High level overview of the alerting service&lt;&#x2F;strong&gt;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;mermaid&quot;&gt;
flowchart TD
    HAProxy --&gt; App --&gt; Storage
&lt;&#x2F;pre&gt;
&lt;script src=&quot;https:&#x2F;&#x2F;realmofchaos.xyz&#x2F;js&#x2F;mermaid-init.js&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;I’ve redacted any identifiable information, however the methodolgy remains the same.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;frontend-haproxy&quot;&gt;Frontend (HAProxy)&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;code&gt;halog&lt;&#x2F;code&gt; tool can generate lots of useful reports. Adjust the time slice so you have a decent buffer before and after the time of the incident.&lt;&#x2F;p&gt;
&lt;p&gt;The snippet below will generate a series of reports:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;URL averages&lt;&#x2F;li&gt;
&lt;li&gt;URL total times OK averages&lt;&#x2F;li&gt;
&lt;li&gt;Connect&#x2F;response histogram &lt;sup&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;document.location.hash=&amp;#39;#fn1&amp;#39;;&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The &lt;code&gt;-e&lt;&#x2F;code&gt; flag filters by errors.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo cat &#x2F;var&#x2F;log&#x2F;haproxy.log|halog -time &amp;quot;$(date &amp;#39;+%s&amp;#39; -d &amp;#39;6 hour ago&amp;#39;)&amp;quot; -H -ua|awk &amp;#39;NR==1;NR&amp;gt;1{print $0 | &amp;quot;sort -rnk4&amp;quot;}&amp;#39;|head -n25|column -t&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo cat &#x2F;var&#x2F;log&#x2F;haproxy.log|halog -e -time &amp;quot;$(date &amp;#39;+%s&amp;#39; -d &amp;#39;6 hour ago&amp;#39;)&amp;quot; -H -uto|awk &amp;#39;NR==1;NR&amp;gt;1{print $0 | &amp;quot;sort -rnk4&amp;quot;}&amp;#39;|head -n25|column -t&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo cat &#x2F;var&#x2F;log&#x2F;haproxy.log|halog -time &amp;quot;$(date &amp;#39;+%s&amp;#39; -d &amp;#39;6 hour ago&amp;#39;)&amp;quot; -pct -q&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo cat &#x2F;var&#x2F;log&#x2F;haproxy.log|halog  -time &amp;quot;$(date &amp;#39;+%s&amp;#39; -d &amp;#39;6 hour ago&amp;#39;)&amp;quot; -H -srv|awk &amp;#39;NR==1;NR&amp;gt;1{print $0 | &amp;quot;sort -rnk12&amp;quot;}&amp;#39;|column -t&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;application-server&quot;&gt;Application server&lt;&#x2F;h2&gt;
&lt;p&gt;Capture 5 minutes worth of TCP header data. Limit pcap file size to 500M. Absolute sequence numbers &lt;sup&gt;&lt;a href=&quot;javascript:;&quot; onclick=&quot;document.location.hash=&amp;#39;#fn2&amp;#39;;&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; .&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;intf=&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;timeout 300s tcpdump -i &amp;quot;${intf?}&amp;quot; -vvvSs 1500 -C500 -w cap_5m.pcap &amp;#39;tcp &amp;amp;&amp;amp; net 10.0.0.0&#x2F;16&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Analyse the data with &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.wireshark.org&#x2F;docs&#x2F;man-pages&#x2F;tshark.html&quot;&gt;tshark&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;gt; cap.analysis \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  tshark -r cap_5m.pcap -t ud \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -z \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    endpoints,tcp \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -z \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    expert,comment,tcp \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -T \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    fields \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    _ws.col.Time \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ip.src \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ip.dst \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tcp.dstport \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    _ws.expert.message \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    _ws.expert.severity \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    _ws.expert.group \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -e \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    _ws.col.Info&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Identify any problematic flows from the &lt;code&gt;cap.analysis&lt;&#x2F;code&gt; file tshark generated. In my case, I observed a high rate of TCP Window Full responses from the server, indicating that the application was pushing too much data to it, or the server may be having systemic overload issues.&lt;&#x2F;p&gt;
&lt;p&gt;You can confirm your theory by monitoring tcp statistics over time.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;System level tcp stats.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;while sleep 300; stdbuf -o0 nstat -p; done tee nstat.sout&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Endpoint level statistics&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;ip -s tcpmetrics&lt;&#x2F;code&gt; provides similar data, I prefer the socket stats tool &lt;code&gt;ss&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;for i in {0..300}; do&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  echo === ; ss -in state synchronized &amp;#39;dst 10.0.0.10 &amp;#39;; echo ===&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  sleep 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;done | tee sockets2.sout&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;awk &amp;#39;&#x2F;ESTAB&#x2F;&amp;amp;&amp;amp;&#x2F;10.0.0&#x2F;&amp;amp;&amp;amp;and($4,$5){print &amp;quot;&amp;quot;;print;print &amp;quot;&amp;quot;;getline;l=patsplit($0,f,&#x2F;[^:[:blank:]]*&#x2F;);for(i=1;i&amp;lt;=l;i+=2) printf &amp;quot;%24s %24s\n&amp;quot;, f[i],f[i+1]}&amp;#39; sockets2.sout&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;From the output I observed the following:&lt;&#x2F;p&gt;
&lt;p&gt;The application server misses too many acknowledgements and backs off from sending data (&lt;code&gt;backoff 1&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rto                      208&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rtt              4.714&#x2F;0.643&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     ato                       40&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     mss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    pmtu                     1426&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  rcvmss                      536&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  advmss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    cwnd                      143&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    send                333.4Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;             pacing_rate                400.1Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;           delivery_rate                257.2Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    busy                  11672ms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            rwnd_limited           11388ms(97.6%)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 unacked                      126&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 retrans                     0&#x2F;12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;              reordering                       74&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 notsent                  1051110&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  minrtt                    0.993&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rto                      216&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 backoff                        1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rtt            14.491&#x2F;16.568&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     ato                       40&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     mss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    pmtu                     1426&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  rcvmss                      536&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  advmss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    cwnd                      143&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    send                108.5Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;             pacing_rate                130.2Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;           delivery_rate                  3.3Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    busy                  12680ms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            rwnd_limited           12360ms(97.5%)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 retrans                     0&#x2F;16&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;              reordering                       74&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 notsent                  1023662&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  minrtt                    0.993&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rto                      208&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     rtt              5.519&#x2F;0.312&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     ato                       40&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                     mss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    pmtu                     1426&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  rcvmss                      536&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  advmss                     1374&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    cwnd                      217&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    send                432.2Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;             pacing_rate                518.6Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;           delivery_rate                254.7Mbps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                    busy                  15700ms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            rwnd_limited           15324ms(97.6%)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 unacked                      133&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 retrans                     0&#x2F;17&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;              reordering                       74&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                 notsent                  1719216&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                  minrtt                    0.993&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;We can get richer statistics by analysing the packet capture with tshark. The output is easily grep’d. My favourite statistic report is the io,stat table, you pass it packet fields to aggregate over and produce a configurable histogram. In my example below I created a per second packet rate and window size histogram.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tshark  -r cap_5m.pcap -q -z http_srv,tree&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tshark  -r cap_5m.pcap -q -z http_srv,tree -z conv,tcp&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;grep -P &amp;#39;Window Full|PUT&amp;#39; cap.analysis|head;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tshark -n -q -r *.pcap -z io,stat,1,&amp;quot;COUNT(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport == 8080&amp;quot;,&amp;quot;MIN(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport == 8080&amp;quot;,&amp;quot;MAX(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport == 8080&amp;quot;,&amp;quot;AVG(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport == 8080&amp;quot; |grep -v &amp;#39; 0 &amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:08.845938      10.0.1.100      10.0.0.10       8080    PUT &#x2F;api&#x2F;resource HTTP&#x2F;1.1\r\n   2097152 33554432        PUT &#x2F;api&#x2F;resource HTTP&#x2F;1.1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.116693      10.0.1.100      10.0.0.10       8080    PUT &#x2F;api&#x2F;resource HTTP&#x2F;1.1  [TCP segment of a reassembled PDU]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.245875      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.250035      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.250133      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.253985      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.255907      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.257952      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.262310      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;2022-03-22 09:45:09.268328      10.0.1.100      10.0.0.10       8080    TCP window specified by the receiver is now completely full     6291456 33554432        [TCP Window Full] Continuation[Packet size limited during capture]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;======================================================================================================&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| IO Statistics                                                                                      |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|                                                                                                    |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| Duration: 270.938461 secs                                                                          |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| Interval:   1 secs                                                                                 |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|                                                                                                    |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| Col 1: COUNT(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport     |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|        == 8080                                                                                     |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|     2: MIN(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport ==    |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|        8080                                                                                        |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|     3: MAX(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport ==    |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|        8080                                                                                        |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|     4: AVG(tcp.window_size_value)tcp.window_size_value and ip.addr==10.0.0.10 &amp;amp;&amp;amp; tcp.dstport ==    |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|        8080                                                                                        |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|----------------------------------------------------------------------------------------------------|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|            |1      |2      |3      |4      |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| Interval   | COUNT |  MIN  |  MAX  |  AVG  |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|--------------------------------------------|                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|   9 &amp;lt;&amp;gt;  10 |   898 |   508 | 65142 |   651 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  10 &amp;lt;&amp;gt;  11 |   849 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  11 &amp;lt;&amp;gt;  12 |     5 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  24 &amp;lt;&amp;gt;  25 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  25 &amp;lt;&amp;gt;  26 |    51 |   507 | 65142 |  3042 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  32 &amp;lt;&amp;gt;  33 |     6 |   486 | 62314 | 10791 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  33 &amp;lt;&amp;gt;  34 |    91 |   486 | 62314 |  1844 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  34 &amp;lt;&amp;gt;  35 |     5 |   485 |   486 |   485 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  38 &amp;lt;&amp;gt;  39 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  47 &amp;lt;&amp;gt;  48 |   121 |   508 | 65142 |  2110 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  48 &amp;lt;&amp;gt;  49 |    80 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  56 &amp;lt;&amp;gt;  57 |     4 |   508 | 65142 | 16667 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  57 &amp;lt;&amp;gt;  58 |    22 |   507 | 65142 |  6383 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  82 &amp;lt;&amp;gt;  83 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  83 &amp;lt;&amp;gt;  84 |    43 |   507 | 65142 |  3514 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  98 &amp;lt;&amp;gt;  99 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;|  99 &amp;lt;&amp;gt; 100 |    42 |   507 | 65142 |  3585 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 100 &amp;lt;&amp;gt; 101 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 102 &amp;lt;&amp;gt; 103 |     7 |   508 | 65142 | 18975 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 103 &amp;lt;&amp;gt; 104 |   164 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 105 &amp;lt;&amp;gt; 106 |    13 |   508 | 65142 | 15424 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 106 &amp;lt;&amp;gt; 107 |    34 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 115 &amp;lt;&amp;gt; 116 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 117 &amp;lt;&amp;gt; 118 |   556 |   508 | 65142 |   740 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 118 &amp;lt;&amp;gt; 119 |     5 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 127 &amp;lt;&amp;gt; 128 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 128 &amp;lt;&amp;gt; 129 |     4 |   508 | 65142 | 16667 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 129 &amp;lt;&amp;gt; 130 |   501 |   508 | 65142 |   637 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 131 &amp;lt;&amp;gt; 132 |     5 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 159 &amp;lt;&amp;gt; 160 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 161 &amp;lt;&amp;gt; 162 |     4 |   508 | 65142 | 16667 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 162 &amp;lt;&amp;gt; 163 |   149 |   507 | 65142 |   941 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 187 &amp;lt;&amp;gt; 188 |     4 |   508 | 65142 | 16667 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 188 &amp;lt;&amp;gt; 189 |     2 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 225 &amp;lt;&amp;gt; 226 |    10 |   508 | 65142 | 13435 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 226 &amp;lt;&amp;gt; 227 |    76 |   507 | 65142 |  1358 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 240 &amp;lt;&amp;gt; 241 |     6 |   508 | 65142 | 11280 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 242 &amp;lt;&amp;gt; 243 |   444 |   508 | 65142 |   799 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 243 &amp;lt;&amp;gt; 244 |     7 |   508 | 65142 | 18975 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 244 &amp;lt;&amp;gt; 245 |   898 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 245 &amp;lt;&amp;gt; 246 |   496 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 246 &amp;lt;&amp;gt; 247 |   516 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 247 &amp;lt;&amp;gt; 248 |   496 |   508 | 65142 |   638 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 248 &amp;lt;&amp;gt; 249 |   482 |   508 | 65142 |   776 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 249 &amp;lt;&amp;gt; 250 |   485 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 250 &amp;lt;&amp;gt; 251 |   602 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 251 &amp;lt;&amp;gt; 252 |   629 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 252 &amp;lt;&amp;gt; 253 |   664 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 253 &amp;lt;&amp;gt; 254 |   519 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 254 &amp;lt;&amp;gt; 255 |   719 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 255 &amp;lt;&amp;gt; 256 |   646 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 256 &amp;lt;&amp;gt; 257 |   764 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 257 &amp;lt;&amp;gt; 258 |   376 |   508 |   508 |   508 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 260 &amp;lt;&amp;gt; 261 |    11 |   507 | 65142 |  6383 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 263 &amp;lt;&amp;gt; 264 |    51 |   508 | 65142 |  4310 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 264 &amp;lt;&amp;gt; 265 |    19 |   507 |   508 |   507 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 267 &amp;lt;&amp;gt; 268 |     3 |   509 | 65142 | 22053 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 268 &amp;lt;&amp;gt; 269 |     7 |   508 | 65142 |  9741 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 269 &amp;lt;&amp;gt; 270 |    80 |   507 | 65142 |  2123 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;| 270 &amp;lt;&amp;gt; Dur |    17 |   507 | 65142 |  8112 |                                                       |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;======================================================================================================&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;next-steps&quot;&gt;Next steps&lt;&#x2F;h2&gt;
&lt;p&gt;At this point it’s best to raise a bug with the developers. In the mean time, spawning additional application workers to spread the queue around may help ungrease the wheel a bit.&lt;&#x2F;p&gt;
&lt;p&gt;Longterm we should confirm the retransmissions aren’t caused by poor network conditions. The application could be patched to establish a long lived connection while pushing data into object storage. It currently creates a new session per push. Longer connection life-times would ensure the TCP congestion algorithm heuristics have time to stabilise.&lt;&#x2F;p&gt;
&lt;p&gt;Footnotes&lt;&#x2F;p&gt;
&lt;p&gt;1.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;percentile&amp;gt; &amp;lt;request count&amp;gt; &amp;lt;Request Time*&amp;gt; &amp;lt;Connect Time**&amp;gt; &amp;lt;Response Time***&amp;gt; &amp;lt;Data Time****&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;2.&lt;&#x2F;p&gt;
&lt;p&gt;TCP sequence numbers are generally unhelpful when capturing packets from a server. This is due to segment offloading to the NIC.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
