I'm trying to read the first 200 characters from a bunch of small (1-20MB) files sequentially to get some metadata and am trying to improve my latency to be better than 0.25s. I know there are limits to how fast I can get data over the internet with gdrive but didn't know if I was missing any known improvements. For testing, I've been using time -p head -c 200 file.txt
or running 100 to get an average with for i in {1..100}; do time -p head -c 200 file.txt ; done
I've tried lowering the data to smaller chunks (256k) and increasing and speed limits such as the pacer but it seems like I normally bottleneck at the 0.25s minimum. I have Google Fiber at home so I don't think that's the problem.
Am I missing any obvious configs or are any of my current ones counterproductive?
Do any of the flags set in the mount need to be in the config itself or do they just override?
I'm open to any suggestions as I've already tried about 50+ combinations moving down from about 0.5s to 0.25s.
I've also tried searching the forums the best I could, a lot of other posts relate to VFS, and since I'm only reading files once I haven't seemed to get any benefits out of it.
What is your rclone version (output from rclone version)
rclone v1.55.0
os/type: linux
os/arch: amd64
go/version: go1.16.2
go/linking: static
go/tags: cmount
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Ubuntu, 64
Which cloud storage system are you using? (eg Google Drive)
Google Drive
The command you were trying to run (eg rclone copy /tmp remote:tmp)
hi,
i did a test using wasabi, a s3 rclone known, for hot storage
this is the mount command
source="wasabi01"
mountpoint="/home/ubuntu/rclone/mountpoint/$source"
rclone mount $source:timehead200 $mountpoint
and if i run
file="/home/ubuntu/rclone/mountpoint/wasabi01/file.txt"
time -p head -c 200 $file
the output is
real 0.13
user 0.00
sys 0.00
and if i run
file="/home/ubuntu/rclone/mountpoint/wasabi01/file.txt"
for i in {1..100}; do time -p head -c 200 $file ; done
this is the output
as i am learning linux, i was not able to copy all 100 runs from the terminal but this is what it all looked like
real 0.13
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
real 0.11
user 0.00
sys 0.00
real 0.12
user 0.00
sys 0.00
real 0.12
user 0.00
sys 0.00
real 0.12
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
real 0.12
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
real 0.11
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
real 0.13
user 0.00
sys 0.00
Difference seems to be within the margin for error.
I'm getting closer to 0.4s using the google drive API directly with curl for a partial reads so I have to commend you for being faster than that somehow.
I'd like to mention about...... a month? or so? ago google's api request limit started throttling me about twice as hard as it ever had before.
I might make a separate thread about it, but I'm not really sure there's anything to do about it, or any solution. (My guess is that they're intentionally making my service worse because I'm grandfathered in to the plan where I drastically underpay them, and they're hoping to scare me off before having to actually deal with me/us? who knows.)