On Mon, 1 Aug 2005, john allspaw wrote:

their browsers spin and spin, and finally time out.?? this problem goes away 
when they disable their DSL firewall, so I suspect it's the Path MTU discovery 
issue.

Could also be a TCP windowing issue.

httpd_accel_no_pmtu_disc on

in squid.conf, but I hesitate to:

# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

on the squids themselves, since it's production and I'm not 100% that it won't 
interrupt service.

It won't. This can be enabled/distabled freely.

our squids sit behind a LB, with URL hash as it's balancing algorithm.

Many load balancers and simple firewalls do have problems with modern TCP implementations. A good idea to narrow down the problem is to compare the traffic both outside and inside your LB, and to disable as many TCP extensions as you can on the server.

The problematic areas are in order
  - ECN
  - PMTU discovery, but mostly in intercepting proxies.
  - TCP window scaling
  - TCP timestamping & PAWS

Try

  echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
  echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
  echo 0 > /proc/sys/net/ipv4/tcp_ecn
  echo 0 > /proc/sys/net/ipv4/tcp_timestamps


This disables all TCP extensions, making TCP somewhat less efficient for large transfers but considerably less complicated for various network equipment (load balancers, firewalls, NAT devices etc) to deal with.

For a typical web server serving mostly small objects < 64 KByte the above settings is often better than default, but performance may suffer on larger transfers.

Regards
Henrik

Reply via email to