-
Notifications
You must be signed in to change notification settings - Fork 93
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
downloads/installs slowly #184
Comments
I'm going to guess two things: not using Edit: halfway through that comment I actually did check the Rust implementation but forgot to link to the relevant bit: https://github.com/rust-lang/rust/blob/c20d7eecbc0928b57da8fe30b2ef8528e2bdd5be/src/libstd/sys/unix/fs.rs#L1202 |
That's |
Ahh yup, you're right. So we're definitely falling back to 8k blocks then. |
We could pretty easily reimplement |
I did this but it fails to compile because...well, Rust correctly points out that it wouldn't be threadsafe 🎉
This is an interesting case because we definitely want to run decompression in a separate thread; but it's also intermixed with progress and GPG and... |
Also, we should be using |
OK wow I think this got worse:
That's ~1.08 MB/s which is absolutely awful. |
I've noticed it being really really slow lately too. Like REALLY slow. |
Here's a profile from current git master: Basically I think what this is saying is that we are losing out by doing decompression and I/O on the same core - this type of thing is where classical Unix pipelines like |
BTW I learned about the cool profiler GUI above from this: https://www.reddit.com/r/rust/comments/g0wkp0/til_firefox_profiler_makes_an_awesome_gui_for_perf/ |
Attempt at fixing coreos#184 but doesn't seem to help.
OK and here's some code I wrote to try to do the decompression/write in separate threads: |
@cgwalters your initial profile also had a lot of trips through |
Hmm you know, a raw
Is basically the same order as the installer, as well as:
In fact I'm being stupid here, 20s is nowhere near the minutes I've seen elsewhere. So the problem may actually lie somewhere else in |
And of course for my tests I should have fetched over HTTP...I just thought the problem was lower level than that. Here's a http fetch profile: |
I've noticed better performance using
This is opposed to 8+ minutes at times over local http (via python3 -m http.server). |
#290 switched to a |
In
kola testiso
we spawn a local webserver and point qemu at it. The legacy installer downloads and writes to disk in about one second. This new one takes...about 4 minutes. Something must be going terribly wrong 😄I didn't bother to try to debug this much yet, but it seems like the host webserver is spending a lot of time idle.
The text was updated successfully, but these errors were encountered: