Что может привести к обрезанию успешных FTP-передач на новом SSD-сервере RackSpace?
Я пытаюсь обновить свой веб-сервер. Я создал совершенно новый экземпляр виртуального сервера последнего поколения на RackSpace, который использует SSD. На этом новом экземпляре я установил следующее:
- Гугл Хром
- 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. Чтобы перейти к свойствам сетевого адаптера, перейдите в
- Щелкните правой кнопкой мыши Компьютер -> Свойства
- Диспетчер устройств
- Откройте раскрывающиеся сетевые адаптеры и щелкните правой кнопкой мыши -> Свойства.
- Перейти на вкладку "Дополнительно"
- Отключите все, кроме разгрузки контрольной суммы UDP.
Важное примечание: если отключены только некоторые параметры, вы заметите значительное снижение производительности. Производительность вернется к нормальному уровню после того, как вы отключите все необходимые параметры.
Причина, по которой он говорит, что передача завершена, заключается в том, что закрытие сокета - это, к сожалению, то, как FTP определяет завершенную передачу. (Он открывает соединение для передачи данных и отправляет данные. Закрытие соединения означает, что файл полностью отправлен.)
По какой-то причине кажется, что соединение преждевременно закрывается.
Лично для меня это звучит очень странно, и это может быть проблема с драйверами или аппаратным обеспечением, но я бы попробовал:
1. Попробуйте пассивный режим FTP. Клиент командной строки по умолчанию использует режим PORT. PASV более дружественен к брандмауэрам.
2. Попробуйте отключить все программные брандмауэры (например, брандмауэр Windows) и повторите попытку.