У меня есть сервер debian с пропускной способностью 100 Мбит / с. Мои клиенты в основном подключаются к сети 3G, в среднем на 30 млн. У многих из них происходит потеря пакетов, редко, но каждый раз, когда пакет теряется, TCP-канал останавливается на 30 секунд или более, прежде чем все вернется в нормальное состояние.
Сервер использует около 5% процессора, памяти и пропускной способности.
Я просмотрел список опций для debian и настройки стека tcp: http://www.linuxinsight.com/proc_sys_net_ipv4.html
Интересно, какой параметр позволил бы серверу или клиенту меньше задерживать время при потере пакета. Любая идея ?
Очень сложно устранить проблемы потери пакетов - TCP это действительно не нравится, и он очень твердо предполагает, что это признак превышения пропускной способности, а не ненадежной сети. Со связью 3G это ... не всегда так.
http://linuxgazette.net/135/pfeiffer.html Документирует, как выбирать альтернативные алгоритмы управления перегрузкой, и содержит примечания о некоторых опциях, доступных в ядре Linux.
Вы почти наверняка хотите tcp_frto
включен, поскольку он разработан для хорошей работы в средах с периодическими потерями, например в радиосети, и в отличие от Интернета.
Вы можете подумать о повышении tcp_maxreordering
выше значения по умолчанию, если вы испытываете потери при больших окнах.
Убедитесь, что SACK и подобные функции включены; Сомневаюсь, что вы их выключили, но на всякий случай ...
Кроме того, здесь мало что может вам помочь. Реакция управления перегрузкой и, особенно, восстановление действительно является ключом к повышению производительности. Однако не ждите чудес, и что бы вы ни делали, не думайте, что что-то может улучшить жизнь без тестирование это основательно!