Skip to content
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

Bad performance of storage write #376

Open
fmoessbauer opened this issue Dec 11, 2023 · 1 comment
Open

Bad performance of storage write #376

fmoessbauer opened this issue Dec 11, 2023 · 1 comment

Comments

@fmoessbauer
Copy link
Member

When flashing an image via mtda-cli -r <host> storage write to remove target, the speed of the copy is significantly lower than when first using scp and then bmaptool copy or dd. This is mainly due to the RPC based streaming of the image:

  • serialization / deserialization overhead of the ~1MB chunks
  • sequential RPC calls (Once the chunk copy command returns, the next is started. This makes each invocation delayed by at least one roundtrip time)
  • Python GIL
    • The progress reporting calls interrupt the copy operations
    • The download operations interrupt the disk write operations

With the current zeroRPC based architecture there is not much room for improvement. Probably the best strategy would be to use zeroRPC only on the control path, but stream the image directly using zeromq. Also the receiver and the writer need to be put into two separate processes to parallelize this.

@fmoessbauer
Copy link
Member Author

With the on-the-fly zstd compression added in #420 , at least for uncompressed images the performance is much better now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants