So that I understand what this means: The client does not properly terminate the connection. The server keeps the connection open until it times out.
Isnât this inperformant from a server point of view when there is a lot of load (with many connections that timeout)? Arenât connections kept open unnecessarily?
The server in this context is your node. So, it may try to keep it open, however it will be terminated anyway.
did you ever see an issue with preventing to open a new connection to your node? Any connection rejections in your logs? Or may be did you see a full bandwidth usage?
Usually the reason for connection terminating by the client, when your node is unable to deliver data fast enough, not because of too many not yet closed connections.
From the other point - your node cannot be close to everyone customer in the world.
did you ever see an issue with preventing to open a new connection to your node? Any connection rejections in your logs? Or may be did you see a full bandwidth usage?
I only see the read connection errors when there many download-connections. I monitor my node with storj-monitor and there are connection timeouts to my node at the same time. So I would say yes - there are connection problems.
Peak download traffic is not much - only 40 MBit/sec. The node has a 1000/1000 MBit connection - so the networking connection is not saturated. The node has enough ram and cpu and load/iowait is also fine.
In addition to those mentioned read-connection logs I also see a lot (~ 40 logs/sec âdownload startedâ and after 1 second ~40 âdownload cancelledâ logs for the same piece id. Same remote adress but with different port). Here are the corresponding log lines (1 example):