aws s3 › реализована ли команда cp aws s3 с многопоточностью?

Я новичок в использовании клиента aws s3. Я попытался использовать команду «aws s3 cp» для загрузки пакета файлов из s3 в локальную файловую систему, это довольно быстро. Но затем я попытался прочитать все содержимое пакета файлов только в одном цикле потоков, используя API amazon java sdk, это на удивление в несколько раз медленнее, чем данная команда «aws s3 cp»: ‹

Кто-нибудь знает, в чем причина? Я сомневался, что «aws s3 cp» является многопоточным


person Rui    schedule 15.04.2016    source источник


Ответы (1)


Если вы посмотрели на источник transferconfig.py, это указывает на то, что значения по умолчанию:

DEFAULTS = {
    'multipart_threshold': 8 * (1024 ** 2),
    'multipart_chunksize': 8 * (1024 ** 2),
    'max_concurrent_requests': 10,
    'max_queue_size': 1000,
}

это означает, что он может выполнять 10 запросов одновременно, а также разбивает передачу на части по 8 МБ, когда файл больше 8 МБ.

Это также описано в документации по настройке s3 cli.

Вот значения конфигурации, которые вы можете установить для S3:
max_concurrent_requests — максимальное количество одновременных запросов.
max_queue_size — максимальное количество задач в очереди задач. multipart_threshold – пороговое значение размера, которое CLI использует для многокомпонентной передачи отдельных файлов.
multipart_chunksize – при использовании составной передачи это размер фрагмента, который CLI использует для составной передачи отдельных файлов.

Вы можете настроить его, чтобы увидеть, сравнивается ли он с вашим простым методом:

aws configure set default.s3.max_concurrent_requests 1

Не забудьте настроить его позже, иначе производительность AWS будет мизерной.

person Petesh    schedule 15.04.2016
comment
также упомянуть команду синхронизации aws s3, которая может быть полезна при работе с многочисленными файлами/каталогами. - person Tom; 15.04.2016