-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Performance] 2nd upload of 10k files much much slower than 1st upload #5062
Comments
We need to double check that the search service is the culprit:
We deliberately made the search service discover changes in a space by starting at the root and descending into changed directories: https://github.com/owncloud/ocis/pull/4777/files We also increased the debounce time to wait at least a second before stariting to index the space: #4964 Finally, we made the search service only run one indexer per space: #5001 At some point we have to index. I do not see an easy way to give requests by the search service less priority. AFAICT the read requests and the update requests are fighting for locks. I think we can mitigate a lot of syscall by caching the node metadata in memory and using a single stat call to invalidate the cache. This would be similar to how the jsoncs3 provider caches the data. I did start moving all metadata properties into the node struct in cs3org/reva#3261 but it bitrotted as the GA became more pressing. @aduffeck might have an opinion on what currently happens in the code. IMO the search service is using ListConstainer to read directories while the client is uploading files. Every upload propagates to the root. the decomposedfs is reading nodes by id ... all the nodes are in the same space ... spread out over several subdirs ... 🤔 |
Happy to re-test, but I'd need help with a simpler way to generate such graphs. Dashboard? Script that parses the desktop log files? |
to reproduce the graphs in jaeger on Limiting to <200ms requests I then did this again with the search service disabled And then using ocis master (with search enabled): As you can see there are more outliers, but overall not nearly as bad as in Limiting to only requests <20ms: |
@dragotin @michaelstingl @tbsbdr @hodyroff I think this is enough for GA. Lets unblock this. |
What I see is: With latest master, in the second run most of the request are still very fast, only a few are breaking out up to 500 msec. |
yes, results look GA ready 👍 |
Ok, closing. We will improve metadata handling in the decomposedFS further. |
Describe the bug
When a upload the 10k files from #5061 a 2nd time (new sync run), the performance is horrible.
Steps to reproduce
Steps to reproduce the behavior:
for n in {0..999}; do dd if=/dev/urandom of=random$( printf %03d "$n" ).file bs=1 count=$(( RANDOM + 1024 )); done
Expected behavior
2nd upload of 10k files shouldn't be slower than first upload.
Actual behavior
2nd upload is horrible slow.
Setup
oCIS Server:
https://ocis.owncloud.com/
Desktop Client
Desktop was started this way:
Desktop client was running on Mac mini in Hetzner datacenter. (1 Gbit/s)
Additional context
Desktop log uploaded here:
The text was updated successfully, but these errors were encountered: