[squid-users] pipeline_prefetch directive

Amos Jeffries squid3 at treenet.co.nz
Fri Jan 3 10:05:14 UTC 2025


On 3/01/25 21:23, Jonathan Lee wrote:
> Hello fellow Squid Users,
> 
> I understand this directive is removed in Squid7 again I am still trying to understand more about what it did and does in the older versions of software.
> 

It was an attempt to implement the pipeline mechanism of HTTP/1.1
see <https://httpwg.org/specs/rfc9112.html#pipelining>


FYI; very few people have even considered turning it on. So do not be 
surprised if you do not get a response to your more detailed questions 
about its behaviour in current Squid.


> pipeline_prefetch historically was on or off for settings however today it is n+1 or a numerical value for the variable n.
> 
> My question is after many trial and errors what is a good range to use for a 4GB memory system,
> 

> I have attempted many different n values some being 100, 200, 300, 5, 10 etc it appears to work well with 100 or maybe it was my other changes with
> using the directive read_ahead_gap 64 KB and testing 16 and 32
> 
> what is a good solid go go juice number for pipeline_prefetch? I do notice massive increases in facebook loads when I have it at 100 however decreased performance with news websites. It is like a can’t win directive for me. Finally I thought best to ask.
> 

IMO the answer to that depends on your proxy traffic.

  * A server that is able to produce responses very fast, operating over 
a long-delay connection can benefit from requests being sent in a pipeline.

  * As can two proxies communicating over a multiplexed, fast, **and** 
reliable connection.


Most situations risk adding what is called Head-Of-Line (HOL) blocking 
delays for the pipelined requests. HTTP/2 was created to solve that 
problem and does far better.


> I do understand it is no longer recommended to be used this is simply for speed and the system is secure behind a firewall.
> 


Firewall existence and security are not relevant to pipeline_prefetch.

Pipeline as implemented by Squid is only of much benefit when you 
already have a high speed situation. As mentioned above.

The primary use-case of Squid pipeline_prefetch to my knowledge was for 
the cache_peer links on proxies acting as accelerators on either end of 
a geosync satellite communication link. Servicing international level 
traffic relay for military outposts or small(ish) national teleco's.
   The primary factor being very long-distance / high-lag TCP links.


Cheers
Amos




More information about the squid-users mailing list