Есть устройство с ОС Linux. Оно пишет архив данных 2 мегабайта в секунду (16 Мбит/с) на SSD накопитель с интерфейсом SATA. Тест dd показывает что в принципе накопитель может принимать до 20 мегабайт в секунду.
Файловая система - NTFS-3G, ОС - OpenEmbedded Fido.
Суть задачи сделать так чтобы потери были меньше секунды, однако в реальности они достигают чуть ли не 30-ти секунд.
Была опробована идея с опцией sync - да, так хвост данных не теряется в момент выключения, однако много данных просто теряется из-за чудовищно низкой скорости работы с накопителем.
т.е. без sync всё быстро но пол минуты просто теряется (поток 2 мегабайта), а с sync слишком медленно пишет. Моя программа получает поток по сети, а когда пишет - буферизует 512 КБайт и когда в буфере больше этого числа - пишет на диск в отдельном потоке.
Как быть? Может перейти на exFAT? А может поставлять драйвер для ext если смена ФС тут поможет в принципе? А может настроить размеры буферов? Или надо применять какой-то особый прием когда работаешь в режиме sync? Подскажите, у кого опыт есть?