Я пытался использовать s3fs на сервере EC2, но это действительно медленный. Последние 5 часов я потратил на загрузку 100 МБ небольших файлов.
Могу ли я что-нибудь сделать для повышения производительности или это связано с S3fs? Если нет, то какую альтернативу я мог бы использовать?
S3FS может быть не лучшим выбором для большого количества файлов меньшего размера. Накладные расходы с S3FS также довольно высоки. Я бы предложил использовать что-то вроде S3Curl
Вы даже можете запустить параллельные переводы. Просто помните, что он никогда не будет таким быстрым, как EBS / локальное хранилище.
Если вам нужно иметь его как «монтируемое» хранилище, единственные известные мне альтернативы S3FS - это S3Backer или s3ql
Я только что сравнил рифы с s3fs. Моим тестовым примером был относительно простой сценарий bash, который запускал pngquant для каждого найденного файла .png. На тестовой корзине с ~ 70 изображениями, из которых ~ 20 в формате PNG (разбросаны по множеству подкаталогов, что, вероятно, замедляет работу), результаты, в которых:
s3fs: 3 мин 54
рифы: 15.9 сек.
Так что для этого тестового примера riofs примерно в 15 раз быстрее! Установка также была очень простой, хотя документация несколько лаконична.
Что касается того факта, что скрипт все еще занял 15,9 с: это не очень эффективно, на самом деле запуск pngquant на png - это процесс, требующий интенсивного использования процессора.
Я только что выпустил v0.0.1 из https://github.com/kahing/goofys что частично было связано с проблемами производительности в s3fs. Ускорение создания файла составляет 3-6 раз, а время до первого байта - 58 раз. Обратная связь приветствуется!
Просто добавляю рифы к смеси. Я не видел пока никаких тестов, но есть вопрос / запрос что может сделать кто угодно.
Я использовал [1], и это очень хорошо. В нем много команд, что значительно упрощает доступ к aws и s3.
Я сравнил s3fs с riofs, и почти переключился из-за заметно лучшей производительности. Проблема в том, что riofs все еще не обновлен до сигнатур v4, что означает, что он не будет работать с корзинами s3 Франкфурта или Китая. По словам владельца, скоро будет обновление. Если вы не используете Франкфурт или Китай, риофс - лучший вариант.
Это старый добрый, но может помочь тем, кто сюда попадет.
Я использую aws cli, и он работает очень хорошо (3 Мб / с)
pip install awscli --upgrade --user
nano ~/.bash_profile
export PATH="~/.local/bin:$PATH"
aws s3 sync /sourcedir/ s3://bucketname/destdir/