EG>> А что за ftp-сервер? Родной /usr/libexec/ftpd тупить не будет, EG>> так как он использует системный вызов sendfile(), AK> у него там put, а не get.
Именно поэтому тестировать надо всегда через get, подымая ftpd на другой стороне хотя бы для теста.
AK> Возможно, родной делает что-то анти-zfs'ное на AK> write, типа писания по одному байту с flush каждый раз.
По байту оно работает при приёме в режиме ASCII. Для этого надо юзать curl -B или дописывать ;type=A к урлу. Hе знаю, может и автодетект есть какой внутри curl.
В бинарном режиме оно читает/пишет мелкими блоками по BUFSIZ (1024) плюс на каждый блок делает проверку на тему OOB/SIGURG и смотрит, а чего там пришло в контрольный сокет, пока BUFSIZ вычитывался. Пожалуй, нынче это место можно было бы сильно оптимизировать по скорости, если бы вообще был смысл ковыряться с FTP put.