Project

General

Profile

Actions

Bug #62938

closed

RGW s3website API prefetches data for range requests

Added by Ondrej Kukla 8 months ago. Updated 6 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
% Done:

100%

Source:
Community (dev)
Tags:
website backport_processed
Backport:
pacific quincy reef
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rgw
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Similar issue to a Bug #44508. Reproducible only when using s3website API not on s3 API.

You can replicate it by running this wrk command wrk -t56 -c500 -d5m http://${rgwipaddress}:8080/${bucket}/videos/ -s wrk-range-small.lua

It will send a range requests to 7 mp4 files.

wrk script

-- Initialize the pseudo random number generator
math.randomseed( os.time())
math.random(); math.random(); math.random()

i = 1

function request()
   if i == 8
   then
       i = 1
   end

   local nrangefrom = math.random()
   local nrangeto = math.random(100)
   local path = wrk.path
   url = path..i..".mp4" 
   wrk.headers["Range"] = nrangefrom.."-"..nrangeto
   i = i+1
   return wrk.format(nil, url)
end

When testing it was reading at rate 3Gb/s from compared to ~22Mb/s on s3 RGW. In both situation the bw towards client was ~20Mb/s

In the RGW log I was able to find this entry.

2023-09-20T12:52:06.670+0000 7f216d702700 1 -- xxx.xxx.58.15:0/758879303 --> [v2:xxx.xxx.58.2:6816/8556,v1:xxx.xxx.58.2:6817/8556] -- osd_op(unknown.0.0:238 18.651 18:8a75a7b2:::39078a70-7768-48c8-96a5-1e13ced83b5b.58017020.1_videos%2f7.mp4:head [getxattrs,stat,read 0~4194304] snapc 0=[] ondisk+read+known_if_redirected+supports_pool_eio e60419) v8 -- 0x7f21dc00a420 con 0x7f21dc007820

You can find the OSD parts of the log here - https://pastebin.com/nGQw4ugd


Related issues 3 (0 open3 closed)

Copied to rgw - Backport #63049: pacific: RGW s3website API prefetches data for range requestsResolvedCasey BodleyActions
Copied to rgw - Backport #63050: quincy: RGW s3website API prefetches data for range requestsResolvedCasey BodleyActions
Copied to rgw - Backport #63051: reef: RGW s3website API prefetches data for range requestsResolvedCasey BodleyActions
Actions

Also available in: Atom PDF