ฉันมีการติดตั้ง ceph-rgw พร้อมที่ฝากข้อมูลขนาดใหญ่ (วัตถุ ~ 60M) และ 16 osds ดัชนีที่ฝากข้อมูลถูกแบ่งออกเป็น 997 เศษ ในสภาพแวดล้อมนี้ รายชื่อไดเร็กทอรีเดียวใช้เวลามากกว่า 30 วินาที:
$ เวลา rclone lsd t:bucket/non/existent/path/ --contimeout=1h --timeout=1h
0m34.816s จริง
สิ่งนี้น่ารำคาญมากและลูกค้าอาจ (เช่น rclone เอง) ทำ list-dir op ก่อน 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 โดเมนสุดท้าย/bucket โดเมนย่อย = 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 ต้องการ 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 ต้องการ 412648 0.000000000s s3:list_bucket RGWRados::cls_bucket_list_ordered: :bucket[e6fb9c7c-74a2-4819-a0ed-e740d", มีอยู่จริง/เส้นทาง/" num_entries=1001, list_versions=0, expansion_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: Objecter ที่ส่งคืนจากการโทร 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 คำขอ 412648 33.535980225s s3:list_bucket op status=0
08:58:18.803+0000 7f047bd84700 2 คำขอ 412648 33.535980225s s3:list_bucket http สถานะ=200
08:58:18.803+0000 7f047bd84700 1 ====== เสร็จสิ้นความต้องการแล้ว req=0x7f05039a9620 op status=0 http_status=200 latency=33.535980225s ======
08:58:18.803+0000 7f047bd84700 1 beast: 0x7f05039a9620: 192.168.1.1 - rgwuser [10/พ.ย./2021:08:57:45.267 +0000] "GET /bucket?delimiter=%!F(MISSING)&max-keys= 1,000&คำนำหน้า=ไม่ใช่ %!F(MISSING)existent%!F(MISSING)path%!F(MISSING) HTTP/1.1" 200 413 - "rclone/v1.57.0" - latency=33.535980225s
รายละเอียดสภาพแวดล้อมคือ: Ceph เวอร์ชัน: 16.2.5 ติดตั้งด้วย rook แต่ละ OSD ประมาณ ~4T ด้วยอุปกรณ์เมตาดาต้า SSD 256G