-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Slow ipfs add
#1216
Comments
I would expect a slightly higher CPU utilization than that for adding... Is it actually making progress? |
Also, that RAM usage is VERY concerning... |
@whyrusleeping yes, it is making steady progress (estimated 36h at start looks exact). |
interesting, to be honest, ive never added anything larger than 8GB, and that was only a couple files in a single directory. Nothing on the scale that youre testing. Could you give me a few more statistics on the data youre adding? estimated total number of files, average file size, maximum/average directory depth, and any other statistics you feel relevant. Thank you for doing this! This is very good information for us. |
My idea is to have complete permanent internet backup of useful things like |
great! those added stats will really help. @whyrusleeping also, i think all of rubygems is a huge forest with mostly shallow trees. lots of small files. |
@whyrusleeping this seems blocked on network io -- providing? AFAICR, dagservice no longer blocks on network, because the blockservice's worker has a [0] 0 buffer https://github.com/ipfs/go-ipfs/blob/master/blockservice/blockservice.go#L31 |
I would like to get some real stats on the perf here, perhaps someone can take a better look at profiling large adds in the next sprint (cpuprofiles, blockprofiles, etc) |
@whyrusleeping I can provide some stats if you want. In which tool's stats are you interested:
|
@pr0d1r2 youre giving me too many options, this is like a kid in a candy store. Gonna have to think about this... |
info from iotop (to see how much we're writing to disk) would be nice, outgoing/incoming bandwidth from nethogs might also be useful to see. I would also like to see: |
Debian Stretch inside virtualbox, 2 GB RAM, 1 CPU core of Core 2 Quad 9550, OS image (/) and data partition (/srv) are on separate physical hdds. Ext4 on /srv, journal is disabled. /srv dir on SATA2 HDD.
Writing a file full of 1s:
Using sha256sum as a baseline:
sha256 does about 105 MB/s. Adding file
gives performance about 5.61 MB/s.
has performance about 59.17 MB/s. Adding
gives perf. 7.10 MB/s Adding non-free part from debian repository, same vm config, 10.39GB of data, 1497 files, same depth:
gives about 4.42 MB/s |
@vitzli thank you for running these! this is very helpful! |
I think I've made a mistake, I got inconsistent results for the test, so I added
Average time 2m19.8s, 14.3 MB/s
Average time 2m23.58s, 13.9 MB/s |
I have killed machine's disk by doing that :> Some stats from iotop (now adding directory again, some files existing, looks pretty fast, 1h30m estimated time to finish):
Nethogs shows: 13.740 KB/sec |
General add performance should be much better now. I'll try adding a huge (>100GB directory later today and report back) |
hrm, estimated ~2Hrs for 100GB. better, but still not where i'd like it. |
@whyrusleeping made a lot of performance improvements on |
I think this has been resolved, ipfs add has gotten drastically faster since this issue was reported |
Recently i started adding whole
rubygems
to IPFS (see: https://twitter.com/Pr0d1r2/status/596668070489264129/photo/1 & https://twitter.com/Pr0d1r2/status/596739849652203522/photo/1)ipfs version 0.3.3
Whole process suppose to take 36h which is a lot of time for 155GB of data.
This is strange because machine is dedicated server (older version of https://www.hetzner.de/hosting/produkte_rootserver/ex40):
8 core: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
32GB of RAM (non ECC)
RAID1: /dev/md3 on /home type ext4 (rw,relatime,user_xattr,acl,barrier=1,data=ordered)
CPU usage by
ipfs daemon
andipfs add -r .
processes is 5-15% (out of 800%):Using recent version of go (go version go1.4.2 linux/amd64), downloaded from https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
The text was updated successfully, but these errors were encountered: