- tocdepth
2
Рекомендации по улучшению производительности OBS
Данные в Object Storage Service (OBS) распределяются по партициям — логическим разделам хранилища. Управление партициями осуществляется на основе уникальных идентификаторов объектов в кодировке UTF-8.
Уникальный идентификатор каждого объекта состоит из:
названия бакета;
пути до объекта;
названия объекта.
Например:
bucket-name/path/to/object/object-name
Где:
bucket-name
— название бакета.path/to/object
— путь до объекта.Примечание
OBS — плоское, не иерархическое хранилище, в котором нет каталогов. Несмотря на это, с помощью префиксов и разделителей можно создать подобие файловой системы для организации данных в хранилище.
object-name
— название объекта.
Если все объекты находятся в одном каталоге, запросы на доступ к объектам могут быть обращены только к одной партиции. Это может снизить скорость выполнения запросов и увеличить задержку доступа к данным в таких партициях.
Чтобы запросы равномерно распределялись по партициям, для именования объектов рекомендуется использовать случайные префиксы.
Допустим, в OBS ежедневно загружаются архивы с логами.
Все файлы загружаются в каталог obslog
.
Файлы именуются с использованием даты и порядкового номера архива за день.
Структура такого хранилища будет выглядеть следующим образом:
yourbucket/obslog/20190610-01.log.tar.gz
yourbucket/obslog/20190610-02.log.tar.gz
yourbucket/obslog/20190610-03.log.tar.gz
yourbucket/obslog/20190610-04.log.tar.gz
...
yourbucket/obslog/20190611-01.log.tar.gz
yourbucket/obslog/20190611-02.log.tar.gz
yourbucket/obslog/20190611-03.log.tar.gz
yourbucket/obslog/20190611-04.log.tar.gz
Такой способ именования данных соберет все файлы в одной партиции. Обращение к файлам может привести к снижению производительности сервиса, так как все запросы будут сконцентрированы в одной партиции.
Чтобы избежать этой проблемы, можно загружать файлы не в один каталог obslog
, а в разные.
В именовании этих каталогов можно использовать префикс в виде шестнадцатеричный хеша из трех или более символов:
yourbucket/6ac-obslog/20140610-01.log.tar.gz
yourbucket/b42-obslog/20140610-02.log.tar.gz
yourbucket/17f-obslog/20140610-03.log.tar.gz
yourbucket/ac9-obslog/20140610-04.log.tar.gz
...
yourbucket/95d-obslog/20140611-01.log.tar.gz
yourbucket/4a5-obslog/20140611-02.log.tar.gz
yourbucket/ea2-obslog/20140611-03.log.tar.gz
yourbucket/ba3-obslog/20140611-04.log.tar.gz
Таким образом при обращении к файлам в бакете запросы будут распределяться между несколькими партициями, что снизит нагрузку на производительность сервиса.
для юрлиц и ИП