Рейтинг:1

Ceph RGW: медленные запросы `list_bucket`

флаг pk

У меня есть установка ceph-rgw с большой корзиной (~60 млн объектов) и 16 osd, индекс корзины разбит на 997 осколков. В этой среде листинг одного каталога занимает более 30 секунд:

$ time rclone lsd t:bucket/non/existent/path/ --contimeout=1h --timeout=1h
реальное 0m34.816s

Это очень раздражает, и клиенты (например, сам rclone) могут выполнять операцию list-dir перед PUT, чтобы что-то проверить/подтвердить. (Запретить клиентам отправлять list_objects/list_bucket — не лучший вариант)

Журнал демон rgw это нормально.Часть журнала:

08:57:45.267+0000 7f0492db2700 1 ====== запуск нового запроса req=0x7f05039a9620 =====
08:57:45.267+0000 7f0492db2700 20 req 412648 0.000000000s final domain/bucket subdomain= domain= in_hosted_domain=0 in_hosted_domain_s3website=0 s->info.domain= s->info.request_uri=/bucket
08:57:45.267+0000 7f0492db2700 10 req 412648 0.000000000s канонический запрос = GET
08:57:45.267+0000 7f0492db2700 2 req 412648 0.000000000s s3:list_bucket проверка операционных параметров
08:57:45.267+0000 7f0492db2700 2 req 412648 0.000000000s s3:list_bucket предварительно выполняется
08:57:45.267+0000 7f0492db2700 2 req 412648 0.000000000s s3:list_bucket выполняется
08:57:45.267+0000 7f0492db2700 20 req 412648 0.000000000s s3:list_bucket RGWRados::Bucket::List::list_objects_ordered попытка запуска 1
08:57:45.267+0000 7f0492db2700 10 req 412648 0.000000000s s3:list_bucket RGWRados::cls_bucket_list_ordered: :bucket[e6fb9c7c-74a2-4819-a0ed-e740d4eb590c.4751]after[non/start/a0ed-e740d4eb590c.0151]5", start="9_.0151] существующий/путь/" num_entries=1001, list_versions=0, extension_factor=1
08:57:45.271+0000 7f0492db2700 10 req 412648 0.004000000s s3:list_bucket RGWRados::cls_bucket_list_ordered запрос из каждого из 997 осколков для 8 записей, чтобы получить 1001 всего записей
08:58:07.495+0000 7f04efe6c700 10 librados: Возражающий вернулся с вызова r=0
08:58:08.779+0000 7f04cd627700 4 поток rgw rados: нет пиров, выход
08:58:18.803+0000 7f0492db2700 2 req 412648 33.535980225s s3:list_bucket завершение
08:58:18.803+0000 7f047bd84700 2 req 412648 33.535980225s s3:list_bucket op status=0
08:58:18.803+0000 7f047bd84700 2 req 412648 33.535980225s s3:list_bucket http status=200
08:58:18.803+0000 7f047bd84700 1 ====== требование выполнено требование = 0x7f05039a9620 состояние операции = 0 http_status = 200 задержка = 33,535980225 с ======
08:58:18.803+0000 7f047bd84700 1 зверь: 0x7f05039a9620: 192.168.1.1 - rgwuser [10/ноября/2021:08:57:45.267 +0000] "GET /bucket?delimiter=%!F(MISSING)&max-keys= 1000&prefix=non%!F(ОТСУТСТВУЕТ)существующий%!F(ОТСУТСТВУЕТ)путь%!F(ОТСУТСТВУЕТ) HTTP/1.1" 200 413 - "rclone/v1.57.0" - задержка = 33,535980225 с

Подробная информация об окружающей среде: Версия Ceph: 16.2.5 Установлена ​​с помощью rook, каждое OSD составляет около ~ 4T с устройством метаданных SSD 256G.

флаг us
Я читал, что 1 млн объектов на ведро — разумное значение с точки зрения производительности, 60 млн — это довольно много. Я не уверен, что вы можете сделать что-то еще, но [список рассылки ceph-users](https://lists.ceph.io/hyperkitty/list/[email protected]/) всегда полезен. место для поиска и спросить, если вы не найдете ответы в существующих сообщениях.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.