O benefício de manter ativo é que um cliente poderá solicitar mais de uma entidade do seu servidor sem ter que criar outra conexão TCP (handshake de 3 vias com suas viagens de ida e volta incluídas). O problema com isso é que, se você tiver um limite de conexão no Apache configurado como 300, se houver 300 conexões ativas, todas as outras terão que esperar até que os 300 primeiros clientes sejam concluídos e / ou o tempo limite expire.
Desativar o keep-alive forçará os clientes a criar uma conexão por solicitação. Quando o soquete está bem fechado em ambas as extremidades, ele entra no status TIME_WAIT, como você percebeu. Isso acontece para garantir que a porta usada nessa conexão não receba dados de uma conexão anterior por um tempo antes de estar disponível (veja isso , mas há muito mais por aí). No meu sistema linux, o / proc / sys / net / ipv4 / tcp_fin_timeout está configurado para 60 segundos. Você pode tentar reduzir isso, mas não desça muito. Quão longe? Depende de quantas conexões por segundo você está recebendo. Por 100-200 req / s, não se incomode em mudar o padrão.