Улучшения производительности S3fs или альтернатива?

Я пытался использовать s3fs на сервере EC2, но это очень медленно. Последние 5 часов я потратил на загрузку 100 МБ небольших файлов.

Что я могу сделать, чтобы улучшить производительность, или это связано с S3fs? Если нет, то какую альтернативу я мог бы использовать?

9 ответов

Решение

S3FS может быть не лучшим выбором для большого количества файлов меньшего размера. Затраты на S3FS также довольно высоки. Я бы предложил использовать что-то вроде S3Curl

Вы даже можете получить параллельные переводы. Просто помните, что это никогда не будет быстрым, как EBS / локальное хранилище.

Если вам нужно иметь его как "монтируемое" хранилище, единственные известные мне альтернативы S3FS - это S3Backer или s3ql.

Я только что выпустил v0.0.1 из https://github.com/kahing/goofys который был частично мотивирован проблемами с производительностью в s3fs. Ускорение создания файла составляет 3-6x, а время до первого байта - 58x. Обратная связь приветствуется!

Я просто протестировал riofs по сравнению с s3fs. Мой тестовый пример был относительно простым bash-скриптом, который запускал pngquant для каждого найденного файла.png. На тестовом пакете с ~70 изображениями, из которых ~20, где png (распространяется по множеству подкаталогов, что, вероятно, замедляет работу), результаты где:

s3fs: 3m54
riofs: 15.9s

Так что для этого теста riofs в ~15 раз быстрее! Настройка также была очень простой, хотя документы несколько краткие.

Что касается того факта, что сценарий все еще занимал 15.9 с: он не очень эффективен, также на самом деле запуск pngquant на png - это процесс, интенсивно использующий процессор.

https://github.com/kahing/goofys

Goofys позволяет вам смонтировать корзину S3 как файловую систему.

Это файловая система, а не файловая система, потому что goofys в первую очередь стремится к производительности, а во вторую - к POSIX. В частности, вещи, которые трудно поддерживать на S3 или которые могут быть преобразованы в более чем один цикл обмена, либо завершатся сбоем (случайная запись), либо подделкой (нет разрешений для каждого файла). Goofys не имеет кэша данных на диске (checkout catfs), а модель согласованности близка к открытой.

Просто добавление айфонов в смесь. Пока я не видел ни одного эталона, но есть проблема / запрос, который может сделать любой.

Я использовал [1], и это очень хорошо. Это много команд и делает доступ к aws и s3 намного проще.

  1. http://timkay.com/aws/

Это доброе старое, но может помочь, кто здесь.

Я использую AWS Cli и работает очень хорошо (3 Мбит / с)

pip install awscli --upgrade --user
nano ~/.bash_profile
export PATH="~/.local/bin:$PATH"
aws s3 sync /sourcedir/ s3://bucketname/destdir/

Я сравнил s3fs с riofs и почти переключился из-за заметно лучшей производительности. Проблема в том, что riofs все еще не обновлен до сигнатур v4, что означает, что он не будет работать с корзинами s3 во Франкфурте или Китае. По словам владельца, обновление уже в пути. Если вы не используете Франкфурт или Китай, riofs - лучший вариант.

Использовалrclone mountи намного быстрее, чем s3fs

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