[squid-users] TCP out of memory
squid3 at treenet.co.nz
Fri Jan 5 07:40:24 UTC 2018
On 04/01/18 21:51, Vieri wrote:
> Hi again,
> I haven't taken a look at Squid's source code, but I guess that when Squid communicates with a c-icap service it acts as a typical socket client, right?
> eg. connect(), write(), read(), close()
Uh, Those are system calls for receiving TCP connections and data I/O.
Squid uses ICAP protocol to communicate with ICAP services. ICAP
operates as a layer over TCP. So in a way yes, and in a way no.
> Does Squid consider forcing disconnection (close()) if the read() is "too long"?
If you mean "too long" in terms of memory size - there is no such thing
in TCP. Squid provides a buffer and tells the kernel how much space is
available there. The OS writes up to that much, no more, maybe less.
If your title "TCP out of memory" is an error you are seeing somewhere.
That is entirely your system kernel and networking stacks issue. Squid
has nothing to do with the internal memory management of TCP traffic.
> Is there such a timeout? Is it configurable in squid.conf (only for the c-icap connection)?
What timeout you speak of?
If you mean "too long" earlier in terms of duration to perform a read()
- there is also no such thing. The OS tells Squid when data is ready and
the data copy from OS memory to Squid buffer takes trivial amount of
time to actually happen.
Timeouts can happen between different parts of the ICAP protocol waiting
for I/O to happen for related message parts. But those have nothing to
do with TCP memory unless you are suffering a bad case of buffer bloat
in the network itself.
More information about the squid-users