<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    <p>Ok, so in this case you recommended both enable
      client_persistent_connections and server_persistent_connections to
      gain more performance in tems of CPU and Networking, correct?</p>
    <p>Thanks in advance for your help.<br>
      Best regards<br>
    </p>
    <div class="moz-cite-prefix">On 16/05/2024 20:53, Amos Jeffries
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:547dfffa-23bd-4f29-a595-446bbdfb711f@treenet.co.nz">On
      17/05/24 02:23, Bolinhas André wrote:
      <br>
      <blockquote type="cite">Hi Alex
        <br>
        Has I explain, by default I set those directives to off to avoid
        high cpu consumption.
        <br>
      </blockquote>
      <br>
      <br>
      Ah, actually with NTLM auth you are using *more* CPU per
      transaction with those turned off.
      <br>
      <br>
      The thing is that auth takes a relatively long time to happen, so
      the transactions are slower. Hiding the fact that they are, in
      total, using more CPU and TCP networking resources.
      <br>
      <br>
      <br>
      <br>
      <blockquote type="cite">My doubt is enabling persistent connection
        will help squid to process the request more efficiently and gain
        more performance or not.
        <br>
        <br>
      </blockquote>
      <br>
      With persistent connections disabled, every client request must:
      <br>
      <br>
       1) wait for a TCP socket to become free for use
      <br>
       2) perform a full SYN / SYN+ACK exchange to open it for use
      <br>
       3) perform a NTLM challenge-response over HTTP
      <br>
       4) wait for a second TCP socket to become free for use
      <br>
       5) perform a full SYN / SYN+ACK exchange to open it for use
      <br>
       6) perform the actual HTTP NTLM authenticated transaction.
      <br>
      <br>
      Then
      <br>
       7) locate a server that can be used
      <br>
       8) wait for a TCP socket to become free for use
      <br>
       9) perform a full SYN / SYN+ACK exchange to open it for use
      <br>
       10) send the request on to the found server
      <br>
      <br>
      <br>
      That is a LOT of time, CPU, and networking.
      <br>
      <br>
      <br>
      With persistent connections enabled, only the first request looks
      like above. The second, third etc look like below:
      <br>
      <br>
      <br>
       11) perform the HTTP NTLM authenticated transaction.
      <br>
      <br>
      Then
      <br>
       12) locate a server that can be used
      <br>
       13) send the request on to the found server
      <br>
      <br>
      <br>
       14) perform the HTTP NTLM authenticated transaction.
      <br>
      <br>
      Then
      <br>
       15) locate a server that can be used
      <br>
       16) send the request on to the found server
      <br>
      <br>
      <br>
      That is MUCH better for performance.
      <br>
      <br>
      <br>
      HTH
      <br>
      Amos
      <br>
      _______________________________________________
      <br>
      squid-users mailing list
      <br>
      <a class="moz-txt-link-abbreviated" href="mailto:squid-users@lists.squid-cache.org">squid-users@lists.squid-cache.org</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://lists.squid-cache.org/listinfo/squid-users">https://lists.squid-cache.org/listinfo/squid-users</a>
      <br>
    </blockquote>
  </body>
  <lt-container></lt-container>
</html>