Улучшения производительности 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 намного проще.
Это доброе старое, но может помочь, кто здесь.
Я использую 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 - лучший вариант.