S3 multi маленькие файлы против большей производительности файлов - PullRequest
0 голосов
/ 30 марта 2020

Мое приложение получает большое количество данных журнала от нескольких устройств IoT.
У меня есть служба, которая получает эти файлы журнала (50-200 КБ) и загружает их в ceph (протокол S3).
Производительность не так здорово, и мне сказали, что большие файлы будут работать лучше.

Я могу понять, что при загрузке больших файлов будет меньше рукопожатий,
, но есть ли другая причина для больших файлов (скажем, 10 МБ ) чтобы улучшить производительность?

Это будет большой беспорядок для объединения этих файлов.
И в любом случае, если я использую то же TCP-соединение ( пример ), будет ли больше файлы все еще улучшают производительность?

1 Ответ

1 голос
/ 30 марта 2020

Множество пунктов о том, почему большой файл лучше:

  • Вызовы API взимаются за объект независимо от его размера. Загрузка 1 байта стоит столько же, сколько загрузка 1 ГБ. Поэтому, как правило, небольшие объекты могут привести к резкому росту затрат на API.

  • Каждый файл имеет свои собственные служебные данные в миллисекундах для открытия файла, чтения метаданных и его закрытия. Кроме того, многие файлы означают много операций поиска на несмежных дисках, для которых хранилище объектов не оптимизировано.

Кроме того, это общая проблема с хранилищем объектов или распределенной файловой системой, известной как Small Проблема с файлом. Пожалуйста, обратитесь здесь , чтобы понять, почему большие файлы являются решением.

...