vsftpd быстро для двоичных файлов, медленно для текстовых файлов

Я запускаю vsftpd 2.2.1 на машине с Ubuntu 8.04 с довольно простой конфигурацией и испытываю странную проблему с загрузкой на машину через FTP. Если я загружаю текстовые файлы, скорость передачи составляет около 70 КБ / с, если я загружаю двоичные данные (zip-файл и т. Д.), Скорость передачи примерно в 50 раз выше. Я использовал несколько разных клиентов в разных операционных системах, разных размерах файлов и т. Д. Я пробовал как в двоичном, так и в ASCII режимах передавать текстовые файлы, и, похоже, ничего не изменилось. Кто-нибудь видел это раньше или есть идеи, что может быть причиной такого поведения?

Обновление: FTP-сервер находится в другой подсети, чем клиентские машины, с которыми я ранее тестировал, и имеет межсетевой интерфейс Linux. Похоже, что проблема возникает, только когда машины в другой подсети подключаются через шлюз к FTP-серверу. Когда машины в той же подсети, что и FTP-сервер, загружают текстовые файлы, проблемы, похоже, не возникают. Это все еще не имеет особого смысла, но, возможно, есть проблема с модулем ip_conntrack_ftp, используемым на шлюзе.

Обновление. Оказывается, что кто-то установил Snort IDS на одной стороне шлюза, который разбивал FTP-пакеты примерно на новых барьерах, что приводило к задержке текстовых файлов.

1 ответ

Решение

Возможно, преобразования в конце строки в vsftpd были написаны неэффективно, и, поскольку бинарный режим используется чаще всего, никто не удосужился улучшить алгоритм, используемый в vsftpd.

Или, может быть, просто передача данных из tcp-сокета на диск намного быстрее, чем проверка каждого символа на CR и LF. Проверка может привести к достаточной задержке в соединении, чтобы снизить скорость передачи.

Проводите ли вы тесты локально по Ethernet (низкая задержка, будет сильно зависеть от дополнительной задержки) или через Интернет?

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