Очень медленный list_objects_v2 в minioPython

Программы на Python
Anonymous
Очень медленный list_objects_v2 в minio

Сообщение Anonymous »


Я использую последнюю версию Minio в Docker на двух серверах. Один находится в моей локальной сети, другой на удаленном сервере. Конфигурация по умолчанию, том расположен на жестком диске, а не SSD.

Ведро содержит около 400 тыс. объектов, около 70 ГБ.

У меня есть следующий код (с последней версией boto3):

paginator = s3_client.get_paginator('list_objects_v2') page_iterator = paginator.paginate(Bucket=bucket_name) для страницы в page_iterator: ключи = [obj['Key'] для объекта в page.get('Contents', [])] ... И каждая итерация в большинстве случаев (но не в 100%) выполняется очень медленно на обоих серверах: итерация более 400 тыс. объектов может занять несколько часов. Иногда это работает нормально.

С другой стороны, PUT/HEAD работают очень быстро, поэтому я не думаю, что это проблема с диском (особенно на двух разных серверах с разным оборудованием). Загрузка ЦП/ОЗУ низкая. Других параллельных запросов к minio совершенно нет (это внутренние сервера и они пока не используются).

Как ускорить процесс? Может быть, я делаю что-то не так и есть лучший способ собрать все ключи в корзину?

Вернуться в «Python»