В той же LAN / WAN у меня есть сервер Windows Server 2012 с IIS 7.5 и сервер Debian (wheezy) с Nginx 1.4.5. Оба сервера подключены к одной и той же LAN / WAN.
Когда я загружаю файл размером 10 МБ с сервера debian через глобальную сеть (Интернет), curl
сообщить среднюю скорость загрузки 1157 тыс.. Используя тот же файл в той же сети, но на сервере Windows, Curl сообщает о средней скорости загрузки 3588 тыс.. Многократный запуск сценария показывает, что средняя скорость загрузки сервера debian сильно варьируется, иногда я получаю только 400 тыс., в то время как сервер Windows довольно стабилен.
Тестирование в LAN вместо WAN дало мне лучшую производительность, но сервер Windows и там работает намного лучше. Сервер Windows находится в производстве и имеет определенную нагрузку, в то время как сервер debian не имеет никакой нагрузки, кроме моих тестов.
На стороне клиента, если я захватил TCP-трафик с помощью wirehark, я не очень хорошо знаком с захватом TCP, но я обнаружил некоторые факты, что размер TCP-окна debian меньше, чем у сервера Windows.
Debian:
Window size value: 913
Calculated window size: 14608
Window size scaling factor: 16
Windows:
Window size value: 256
Calculated window size: 65536
Window size scaling factor: 256
Я не знаю, куда идти дальше.
Кто-нибудь может посоветовать изучить или исправить эту проблему?
Наконец проблема решена.
Наш коммутатор был перезагружен и больше не работал. Итак, мы изменили коммутатор, и теперь производительность на стороне LAN соответствует ожиданиям.
Что касается проблемы с глобальной сетью, QoS ограничивало полосу пропускания на стороне клиента.
Настройка стека TCP не требовалась.