Как я мог настроить параметры ядра Linux так, чтобы сокет мог часто перерабатываться?

Я сделал некоторый нагрузочный тест под Ubuntu10.10 с Осадой 2.6.9, сценарий, который я использовал следующим образом,
siege -c 900 -r 30 -i -f urls.txt, но я получил тонны сообщений об ошибках как

error: socket: unable to connect sock.c:222: Operation already in progress or socket timeout

Я заметил, что время отклика большинства запросов является меньше чем 0,2 secs, но через некоторое время, время отклика некоторых запросов, увеличенное до 5 secs и паузы периодически, происходило,
Таким образом, я делал некоторые настраивающие работы ядра Linux, например.

sysctl -w net.ipv4.tcp_tw_reuse=1  
sysctl -w net.ipv4.tcp_timestamps=1  
sysctl -w net.ipv4.tcp_tw_recycle=1  

После этого обстоятельство стало лучше, но не достаточно хорошее,
Так могли Вы, парни могли дать мне больше информации о socket/tcp параметрах, настраивающихся на
параметры ядра Linux, те, которые перерабатывают/снова используют/закрывают сокеты в состоянии TIME_WAIT.
Любые советы или предложения высоко ценились бы.Большое спасибо.

4
задан 1 June 2011 в 10:39

1 ответ

Вы могли бы хотеть попытаться понизить сеть ipv4.tcp_fin_timeout, которая влияет, сколько времени сокеты болтаются в TIME_WAIT. Это уже довольно низко в 60; попытайтесь понизить его 10 за один раз и посмотрите, улучшает ли это ситуацию.

 echo 50 >/proc/sys/net/ipv4/tcp_fin_timeout 

Если это работает, добавьте его к sysctl.conf:

net.ipv4.tcp_fin_timeout = 50 # or whatever works best

Просто имейте в виду, что, в то время как это помогает с тестированием загрузки, это - не обязательно большое значение по умолчанию для реального использования.

  • Eric
3
ответ дан 1 December 2019 в 10:12

Другие вопросы по тегам:

Похожие вопросы: