Significant performance regression while writing to registry #167
Labels
No labels
P0
P1
P2
P3
good first issue
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/xk6-frostfs#167
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Expected Behavior
Writing to registry shouldn't affect performance results
Current Behavior
While putting objects and writing it to registry, performance drops by half
8KB: 23.5MiB/s 3010.4/s (with registry) VS 33MB/s 4077.2/s (without registry)
1MB: 523.34MiB/s 524.03/s (with registry) VS 1.2 GB/s 1135.7/s (without registry)
Possible Solution
Steps to Reproduce (for bugs)
scenarios/preset/preset_s3.py --size 256 --buckets 2 --out preset_bucket.json --endpoint https://data0.funkrock-node1.funkrock.object.set.yadro.com:443 --preload_obj 0 --workers 100 --no-verify-ssl --acl public-read-write
/etc/k6# /etc/k6/k6 run -e DURATION=300 -e WRITE_OBJ_SIZE=8 -e WRITERS=600 -e S3_ENDPOINTS=https://data0.funkrock-node1.funkrock.object.set.yadro.com:443,https://data0.funkrock-node2.funkrock.object.set.yadro.com:443,https://data0.funkrock-node3.funkrock.object.set.yadro.com:443,https://data0.funkrock-node4.funkrock.object.set.yadro.com:443,https://data1.funkrock-node1.funkrock.object.set.yadro.com:443,https://data1.funkrock-node2.funkrock.object.set.yadro.com:443,https://data1.funkrock-node3.funkrock.object.set.yadro.com:443,https://data1.funkrock-node4.funkrock.object.set.yadro.com:443 -e PREGEN_JSON=/etc/k6/preset_bucket.json /etc/k6/scenarios/s3.js -e REGISTRY_FILE=/var/log/autotests/8kb_5min_s3.bolt
/etc/k6# /etc/k6/k6 run -e DURATION=300 -e WRITE_OBJ_SIZE=8 -e WRITERS=600 -e S3_ENDPOINTS=https://data0.funkrock-node1.funkrock.object.set.yadro.com:443,https://data0.funkrock-node2.funkrock.object.set.yadro.com:443,https://data0.funkrock-node3.funkrock.object.set.yadro.com:443,https://data0.funkrock-node4.funkrock.object.set.yadro.com:443,https://data1.funkrock-node1.funkrock.object.set.yadro.com:443,https://data1.funkrock-node2.funkrock.object.set.yadro.com:443,https://data1.funkrock-node3.funkrock.object.set.yadro.com:443,https://data1.funkrock-node4.funkrock.object.set.yadro.com:443 -e PREGEN_JSON=/etc/k6/preset_bucket.json /etc/k6/scenarios/s3.js
Regression
Yes
Your Environment
f539da7
Refs #141, #136
First step is to profile and attach pprof output to this task.
checked on hardware
1 MB, 600th, 5min
without registry:
with registry
8KB, 600th, 5min
without registry:
with registry
To estimate registry impact need to check
iteration_duration
andfrostfs_obj_put_bytes
(grpc) /aws_obj_put_duration
(s3) difference.@EliChin Please check the results of your tests again: perhaps this is a degradation of the storage, and not a registry.
@dstepanov-yadro I wonder what commands you used and what your environment was because I've verified my previous results on K6
bcbd0db
. In my case writing to registry still leads to significant regression.Here is the table with the results https://c.yadro.com/display/OBJECT/Table+for+PUT+with+and+without+registry
Please, check K6 pprof profiles attached in the relevant rows of the table
P.S. I will attach commands and full K6 results below
8KB 5min 600th s3
without registry
with registry
8KB 5min 600th grpc
without registry
with registry
On BlackMetal (Compal, 16-nodes) v1.6.0-169 the bug hasn't been reproduced.
Writing to registry affects performance results, if registry is on HDD.