Estou tentando mudar o comportamento do protocolo tcp slow start em uma caixa do CentOS5 (uname -r = > 2.6.18-238.12.1.el5). Eu li que o seguinte comando irá mudar meu icwnd para 8:
ip route change default via 1.2.3.4 dev eth1 initcwnd 8
echo "4094 $((8*16384)) 4194304" > /proc/sys/net/ipv4/tcp_wmem
(Nota: A parte tcp_wmem é mais ou menos um palpite da minha parte, eu acho que o número exato não é muito importante, desde que seja grande o suficiente)
No entanto, por si só, isso não parece ter nenhum efeito. Em vez de inicialmente enviar 8 segmentos, ele apenas envia 3. Depois de ler mais, descobri que o tcp slow start funciona em paralelo com o controle de congestionamento, de forma que, se ssthresh < cwnd, o protocolo de controle de congestionamento é usado, caso contrário, o início lento é usado (pelo menos, este foi o meu entendimento). Eu fiz o seguinte para descobrir qual o meu ssthresh padrão foi definido para:
[root@host ~]# cat /proc/sys/net/ipv4/tcp_congestion_control
bic
[root@host ~]# cat /sys/module/tcp_bic/parameters/initial_ssthresh
0
Vendo que ssthresh é 0, eu gostaria de aumentá-lo para que seja maior que icwnd, o que faria com que o kernel usasse slow start, o que usaria o valor padrão de 8 windows. Então fiz o seguinte:
[root@host ~]# echo 13140 > /sys/module/tcp_bic/parameters/initial_ssthresh
Mas ainda não há mudanças no comportamento. Alguém sabe o que estou fazendo errado?
(Estou reiniciando o processo do apache que estou usando para testar isso após cada alteração).
EDIT: Eu também estou fazendo ip flush cache flush entre as alterações, bem