Вопрос или проблема
У меня есть странная ситуация, для которой я не могу найти причину такого поведения.
Я создал эту схему для облегчения объяснения, но, чтобы было ясно, настольный компьютер подключен через WiFi к коммутатору, сервер и NAS подключены по проводному Ethernet:
Мой NAS работает с хранением на RAID5 по нескольким протоколам. Я протестировал это с простым FTP и получил те же результаты, что и с SMB/CIFS/NFS. Все эти результаты – через FTP.
Сервер работает на Ubuntu 14.04 и подключен к тому же коммутатору, что и NAS. И сервер, и NAS подключены к коммутатору через Ethernet-кабели. Сервер – 100 Мбит/с, NAS – гигабитный.
Настольный компьютер подключен к коммутатору через WiFi 5G и работает на Ubuntu 16.04 (но я получаю такое же поведение и в Windows). Во всех ситуациях на схеме выше с зелеными стрелками я получаю скорость от 10 до 12 МБ/с. При переходе с сервера на NAS происходят кратковременные падения до 0, которые, как я предполагаю, связаны с работой NAS для записи RAID5.
Проблема заключается в переходе с настольного компьютера на NAS – я получаю только 600-900 КБ/с (даже не 1 МБ/с!). И это только от настольного компьютера К NAS. Загрузка с NAS на настольный компьютер – обычные 10-12 МБ/с.
Что могло бы вызвать эту проблему только между двумя устройствами и только в одном направлении? С такой скоростью от настольного компьютера к NAS, честно говоря, намного быстрее сначала загрузить на сервер, а затем передать с сервера на NAS, но для этого требуется несколько дополнительных шагов.
РЕДАКТИРОВАТЬ: Обновление На NAS я отключил джамбо-фреймы, которые не должны были вызывать проблемы, так как файлы, которые я передаю, больше 1 ГБ. Но это улучшило передачу с настольного компьютера на NAS с 900 КБ/с до 3 МБ/с. Однако 3 МБ/с все равно составляет только 1/3 до 1/4 скорости всех возможных передач (зеленые стрелки).
Я решил аналогичную ситуацию, включив управление потоком на своем коммутаторе.
.
Ответ или решение
Для решения проблемы медленной передачи данных между двумя устройствами в одном направлении следует комплексно рассмотреть возможные причины и варианты их устранения. Это может затрагивать как сетевые настройки, так и конфигурацию оборудования и программное обеспечение.
Теория: Особенности сетевых соединений
Медленная сеть в одном направлении может быть вызвана рядом факторов, связанных с особенностями оборудования, конфигурацией сетевых настроек или ограничениями на программном уровне. Вот несколько потенциальных причин:
-
Асимметрия связи и разница в скоростях устройств. Если одно устройство, например, NAS, поддерживает более высокую скорость передачи данных (до 1 Гбит/с), в то время как другая сторона, например, сервер или настольный компьютер, работает на более низкой скорости (100 Мбит/с), это может привести к дисбалансу, особенно если в одну из сторон данные передаются медленно.
-
Wi-Fi соединение. Так как настольный компьютер подключен к сети по Wi-Fi, это может привести к колебаниям качества сигнала, особенно если есть помехи, загруженность канала или недостаточное покрытие сети.
-
Настройки MTU и Jumbo Frames. Неправильная настройка MTU (Maximum Transmission Unit) или режим Jumbo Frames может вызвать фрагментацию пакетов и увеличить задержку при передаче данных.
-
Сетевая карта и прошивка устройства. Устаревшие драйверы сетевых карт, а также неподдерживаемые версии прошивки могут привести к проблемам с пропускной способностью.
-
Проблемы на уровне протокола. Особенности и типы используемых протоколов обмена данными (например, FTP, SMB, NFS) могут влиять на скорость передачи. Разные протоколы могут иметь разную степень эффективности при работе с RAID-массивами.
-
Конфигурация сетевого оборудования. Некоторые сетевые устройства или коммутаторы могут иметь настройки, такие как QoS (Quality of Service) или несовместимость в режиме работы полудуплекс/полный дуплекс, что может вызывать проблемы.
Пример: Устранение неполадки
В приведенной ситуации максимально выяснены условия: сервер и NAS подключены к коммутатору через Ethernet, настольный компьютер — через Wi-Fi. Проблема заключается в значительной асимметрии скорости — при передаче данных от настольного компьютера к NAS скорость значительно ниже, чем в обратном направлении.
-
Настройка оборудования:
- Драйверы и прошивка: Убедитесь, что все устройства (особенно Wi-Fi-модуль на настольном ПК) имеют последние обновления драйверов.
- Wi-Fi: Проверьте уровень сигнала и интерференцию. Возможно, потребуется изменить канал Wi-Fi, чтобы снизить помехи.
- Кабели и такие функции, как Jumbo Frames: Проверьте настройки Jumbo Frames и, если вы уже отключили их на NAS и получили прирост скорости, поэкспериментируйте с размером MTU, чтобы найти оптимальное значение.
-
Диагностика сети:
- Ping и Traceroute: Выполните тесты ping и traceroute для определения задержек или проблемных узлов в сети.
- Анализатор сети: Используйте Wireshark или аналогичное ПО для проверки фрагментации пакетов и возможных повторных передач (retransmissions).
-
Использование QoS и Flow Control:
- Настройки QoS: Эти настройки (включая приоритет трафика) могут обслуживать поток в конкретном направлении быстрее. Проверьте и настройте QoS в вашей сети, если это возможно.
- Flow Control: Как упомянуто в одной из подсказок, включение flow control на коммутаторе может улучшить скорость обмена данными, предотвращая перегрузку буфера и потерю пакетов.
Применение: Эффективное устранение проблемы
С учетом всех вышеупомянутых аспектов оптимизации, выполните следующие шаги для решения проблемы:
- Обновите драйверы и прошивки всех используемых сетевых устройств для обеспечения совместимости и оптимальной производительности.
- Проверьте соединение Wi-Fi: улучшите сигнал, избегаете помех и тестируете разные каналы.
- Настройте параметры MTU на принимающем и отправляющем устройствах, учитывая специфику сети (Wi-Fi, Ethernet, Jumbo Frames).
- Настройте QoS и другие функции управления сетью, включая flow control, имеющиеся на вашем коммутаторе.
- Проведите дополнительные тесты и мониторинг сети для выявления скрытых проблем.
Эти действия помогут диагностировать и устранить основную проблему медленной сети в одном направлении, максимально повышая эффективность и надежность передачи данных в вашей сети.