Что может привести к обрезанию успешных FTP-передач на новом SSD-сервере RackSpace?

Я пытаюсь обновить свой веб-сервер. Я создал совершенно новый экземпляр виртуального сервера последнего поколения на RackSpace, который использует SSD. На этом новом экземпляре я установил следующее:

  1. Гугл Хром
  2. FileZilla FTP-клиент

Затем я подключился к FTP-серверу FileZilla на другом сервере, на котором размещены 2 файла изображений, которые я использую для тестирования. Затем я загрузил 2 файла изображений, которые FileZilla сообщает как "успешно переданные". Тем не менее, оба файла изображения усечены! Что может быть причиной этого?

Неверный размер файла после передачи

Несколько вещей, на которые стоит обратить внимание:

  • Это происходит только на новом экземпляре, если он использует SSD. Если я создаю идентичный экземпляр без SSD (вместо него используется SATA), ошибка не возникает.
  • На сервере, который передает файлы, файлы также сообщаются как успешно переданные. Этот сервер использовался в качестве FTP-сервера довольно долгое время без каких-либо проблем.
  • Если я настрою новый экземпляр SSD в качестве FTP-сервера и загрузлю на него кучу файлов, некоторые из них будут случайно обрезаны на 2-10 КБ. Из ~150 МБ загрузки я могу в итоге потерять 150-200 КБ. Если я перенесу их снова, другое подмножество файлов будет усечено.
  • Если я увеличу скорость передачи на FTP-сервере до 100 КБ / с, 2 файла изображения будут успешно переданы без усечения. Если я уменьшу скорость передачи до 500 КБ / с, файлы изображений будут усечены так же, как если бы не было регулирования.

Любые идеи о том, как это может происходить?

Обновление: это не связано с FileZilla. Здесь та же проблема с использованием ftp в командной строке:

Неверные размеры файлов

2 ответа

Решение

Решение описано здесь: http://www.rackspace.com/knowledge_center/article/disabling-tcp-offloading-in-windows-server-2012

Эта статья предназначена для Windows Server 2012. В моем случае я использовал Windows Server 2008. Чтобы перейти к свойствам сетевого адаптера, перейдите в

  1. Щелкните правой кнопкой мыши Компьютер -> Свойства
  2. Диспетчер устройств
  3. Откройте раскрывающиеся сетевые адаптеры и щелкните правой кнопкой мыши -> Свойства.
  4. Перейти на вкладку "Дополнительно"
  5. Отключите все, кроме разгрузки контрольной суммы UDP.

Важное примечание: если отключены только некоторые параметры, вы заметите значительное снижение производительности. Производительность вернется к нормальному уровню после того, как вы отключите все необходимые параметры.

Причина, по которой он говорит, что передача завершена, заключается в том, что закрытие сокета - это, к сожалению, то, как FTP определяет завершенную передачу. (Он открывает соединение для передачи данных и отправляет данные. Закрытие соединения означает, что файл полностью отправлен.)

По какой-то причине кажется, что соединение преждевременно закрывается.

Лично для меня это звучит очень странно, и это может быть проблема с драйверами или аппаратным обеспечением, но я бы попробовал:
1. Попробуйте пассивный режим FTP. Клиент командной строки по умолчанию использует режим PORT. PASV более дружественен к брандмауэрам.
2. Попробуйте отключить все программные брандмауэры (например, брандмауэр Windows) и повторите попытку.

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