wclayf
April 20, 2019, 3:43pm
4
I did all my searching around go-ipfs, and here are some links:
opened 04:33PM - 09 Aug 16 UTC
help wanted
topic/libp2p
status/deferred
exp/expert
We need to place limits on the bandwidth ipfs uses. We can do this a few differe… nt ways (or a combination thereof):
- per peer limiting on each actual connection object
- pros:
- low coordination cost (no shared objects between connections)
- should have lower impact on performance than blindly rate limiting the whole process
- cons:
- no flow control between protocols, dht could drown out bitswap traffic
- per subnet limiting
- pros:
- avoids rate-limiting LAN/localhost connections.
- cons:
- it's not always possible to tell what's "local" (e.g., with IPv6).
- per protocol limiting on each stream
- pros:
- should have the lowest impact on system performance of the three options
- each protocol gets its own slice of the pie and doesnt impact others
- cons:
- increased coordination required, need to reference the same limits across multiple streams
- still makes it difficult to precisely limit the overall bandwidth usage.
- global limiting using a single rate limiter over all connections
- pros:
- will successfully limit the amount of bandwidth ipfs uses.
- cons:
- ipfs will be quite slow when rate limited in this way
Related Issues:
- https://github.com/ipfs/go-ipfs/issues/2489
- https://github.com/ipfs/go-ipfs/issues/2828
- https://github.com/ipfs/go-ipfs/issues/2917
- https://github.com/ipfs/go-ipfs/issues/2923
opened 11:49AM - 27 Nov 16 UTC
closed 07:23PM - 27 Apr 20 UTC
topic/perf
need/analysis
Just had to kill the persistent ipfs-node I've been running on my home fileserve… r for the last 2 weeks due to excessive uploads (without any apparent fileserving activity taking place). The process was sitting at around 1 mbps of uploads constantly (judging from my router's bandwidth monitor), which on a home DSL connection is a huge chunk of upload capacity to be taking over.
This was running the docker image SHA: `sha256:f9d41131894a178f2e57ca3db8ea6f098338f636cb0631231ffecf5fecdc2569`
I do note that my logs have a fair few messages like the following, but they don't seem particularly informative:
```
Nov 26 05:16:04 monolith dockerd[4000]: 18:16:04.545 ERROR dht: no addresses on peer being sent!
Nov 26 05:16:04 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 05:16:04 monolith dockerd[4000]: [sending:<peer.ID ZRfiDX>]
Nov 26 05:16:04 monolith dockerd[4000]: [remote:<peer.ID SoLV4B>] handlers.go:75
Nov 26 13:50:26 monolith dockerd[4000]: 02:50:26.172 ERROR dht: no addresses on peer being sent!
Nov 26 13:50:26 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 13:50:26 monolith dockerd[4000]: [sending:<peer.ID VADT5H>]
Nov 26 13:50:26 monolith dockerd[4000]: [remote:<peer.ID SoLju6>] handlers.go:75
Nov 26 15:05:24 monolith dockerd[4000]: 04:05:24.041 ERROR dht: no addresses on peer being sent!
Nov 26 15:05:24 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 15:05:24 monolith dockerd[4000]: [sending:<peer.ID UQTebb>]
Nov 26 15:05:24 monolith dockerd[4000]: [remote:<peer.ID SoLMeW>] handlers.go:75
Nov 26 15:05:24 monolith dockerd[4000]: 04:05:24.102 ERROR dht: no addresses on peer being sent!
Nov 26 15:05:24 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 15:05:24 monolith dockerd[4000]: [sending:<peer.ID UQTebb>]
Nov 26 15:05:24 monolith dockerd[4000]: [remote:<peer.ID SoLer2>] handlers.go:75
Nov 26 15:46:06 monolith dockerd[4000]: 04:46:06.640 ERROR dht: no addresses on peer being sent!
Nov 26 15:46:06 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 15:46:06 monolith dockerd[4000]: [sending:<peer.ID Tq6zSp>]
Nov 26 15:46:06 monolith dockerd[4000]: [remote:<peer.ID SoLueR>] handlers.go:75
Nov 26 15:46:07 monolith dockerd[4000]: 04:46:07.691 ERROR dht: no addresses on peer being sent!
Nov 26 15:46:07 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 15:46:07 monolith dockerd[4000]: [sending:<peer.ID Tq6zSp>]
Nov 26 15:46:07 monolith dockerd[4000]: [remote:<peer.ID SoLueR>] handlers.go:75
Nov 26 15:46:09 monolith dockerd[4000]: 04:46:09.032 ERROR dht: no addresses on peer being sent!
Nov 26 15:46:09 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 15:46:09 monolith dockerd[4000]: [sending:<peer.ID Tq6zSp>]
Nov 26 15:46:09 monolith dockerd[4000]: [remote:<peer.ID SoLju6>] handlers.go:75
Nov 26 22:16:31 monolith dockerd[4000]: 11:16:31.723 ERROR dht: no addresses on peer being sent!
Nov 26 22:16:31 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 22:16:31 monolith dockerd[4000]: [sending:<peer.ID VaByF3>]
Nov 26 22:16:31 monolith dockerd[4000]: [remote:<peer.ID SoLMeW>] handlers.go:75
Nov 26 22:16:32 monolith dockerd[4000]: 11:16:32.774 ERROR dht: no addresses on peer being sent!
Nov 26 22:16:32 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 22:16:32 monolith dockerd[4000]: [sending:<peer.ID VaByF3>]
Nov 26 22:16:32 monolith dockerd[4000]: [remote:<peer.ID SoLju6>] handlers.go:75
Nov 26 22:16:33 monolith dockerd[4000]: 11:16:33.611 ERROR dht: no addresses on peer being sent!
Nov 26 22:16:33 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 26 22:16:33 monolith dockerd[4000]: [sending:<peer.ID VaByF3>]
Nov 26 22:16:33 monolith dockerd[4000]: [remote:<peer.ID SoLMeW>] handlers.go:75
Nov 27 00:41:10 monolith dockerd[4000]: 13:41:10.298 ERROR dht: no addresses on peer being sent!
Nov 27 00:41:10 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 27 00:41:10 monolith dockerd[4000]: [sending:<peer.ID PuZXvJ>]
Nov 27 00:41:10 monolith dockerd[4000]: [remote:<peer.ID SoLju6>] handlers.go:75
Nov 27 18:42:37 monolith dockerd[4000]: 07:42:37.359 ERROR dht: no addresses on peer being sent!
Nov 27 18:42:37 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 27 18:42:37 monolith dockerd[4000]: [sending:<peer.ID acR5hF>]
Nov 27 18:42:37 monolith dockerd[4000]: [remote:<peer.ID SoLSaf>] handlers.go:75
Nov 27 18:42:37 monolith dockerd[4000]: 07:42:37.511 ERROR dht: no addresses on peer being sent!
Nov 27 18:42:37 monolith dockerd[4000]: [local:<peer.ID c7TGoJ>]
Nov 27 18:42:37 monolith dockerd[4000]: [sending:<peer.ID acR5hF>]
Nov 27 18:42:37 monolith dockerd[4000]: [remote:<peer.ID SoLSaf>] handlers.go:75
```
https://www.reddit.com/r/ipfs/comments/8yllit/ipfs_bandwidth_usage/
Hello World !
I need to use for a decentralized project. But IPFS consumes far too much bandwidth. This discourages my potential users.
Is it possible to limit the bandwidth to 50/60Kb/s?
Thx!
> Bandwidth is one of the problems. If a typical IPFS node is a home computer than it has 10x upload speed compare to the download speed. This is going to limit how somebody can access content from IPFS.<p>This can easily be addressed by choosing hosts which have gigabit upload links if you are hosting high demand files. Personal computer backups may opt for hosts with 10mbit upload that offer...
RainaRelanah —
11:19 PM - 1 Feb 2018
but no I didn’t see any mention in the JS implementation. I had no luck getting ‘trickle’ to work, which I concluded must be because of the fact that trickle is documented as not working for executables that are stand-alone without the right type of dynamic linking.
I asked about it on freenode irc ipfs channel also. This is a major problem that any sane person should consider the TOP priority bug, because it has the potential to drive away so many early adopters as to significantly hurt the entire success of IPFS itself.