Please enable TCP fastopen on your storage nodes

How does this work? If node sees TFO support in kernel, does it report to the satellite and the clients (+ satellite audits) tries to use it? Or when the client sees TFO support on server (node) socket, it tries to use it?

Looks like TCP fastopen support for Windows will get implemented with this ticket: Windows support for TCP Fast Open · Issue #5990 · storj/storj · GitHub

3 Likes

Have we seen any palpable network performance improvement since this started being enabled in nodes?
Do you have any way of telling what proportion of nodes have enabled it?
Just curious :slight_smile:

6 Likes

It looks like TCP fastopen is already being utilized. Looking forward for test results.

# netstat -s | grep FastOpen
  TCPFastOpenActiveFail: 1192
  TCPFastOpenPassive: 328989
  TCPFastOpenPassiveFail: 18
  TCPFastOpenCookieReqd: 1555
1 Like

On Synology I only see:

$ netstat -s | grep TCPFastOpen
    TCPFastOpenCookieReqd: 2710244

Which I guess was to be expected since we can’t enable the docker option on our systems.

1 Like

On my Synology i got only:

netstat -s | grep TCPFastOpen
TCPFastOpenPassive: 365

on ubuntu - that command doesn’t show anything

How can i get something like this to show for Ubuntu do you know?

1 Like

If it shows nothing then it’s because you’re not getting FastOpen connections.

1 Like

on ubuntu i don’t get either.
fast open is enabled in sysctl and docker: “2023-07-04T11:06:17.733Z INFO server existing kernel support for server-side tcp fast open detected {“process”: “storagenode”}”

Seems your node doesn’t have customers who attempting to use a Fastopen, or your router/ISP drops them…

can it somehow understand on my windows GUI that my fastopen is working and router not droping it?

I do not know, for honestly how to check this on Windows…

netstat -s | sls fast

doesn’t gives me any stat. So, I assume it’s not supported under Windows for now.

Is there a way to test or fix this if its the router?

Does TrueNAS Scale + Docker supports TCP fastopen?

Is this planned/on the roadmap/tracked in some way? I understand it’s a low priority.

Can Storj add some info to the logs that we understand that FastOpen is working or not. I am on Windows and no one know how to check, does my fastopen work or not, or my router filtering it for example. I have Mikrotik router, sometimes i think it makes over filtering.

2 Likes

Only if your router has such configuration option.

Both Windows and FreeBSD are not yet supported options for the storage node side of TCP FASTOPEN but hopefully we get to it soon. If someone is handy with code and wants to pitch in, this is the file that needs filling in for Windows: https://github.com/storj/storj/blob/4ee647a951d01c8f0b8af268eaa8ea1a0a9bed4d/private/server/fastopen_windows.go

We need a similar one for FreeBSD (right now it’s just picked up with “other”): https://github.com/storj/storj/blob/4ee647a951d01c8f0b8af268eaa8ea1a0a9bed4d/private/server/fastopen_other.go

Here is the Linux one for reference: https://github.com/storj/storj/blob/4ee647a951d01c8f0b8af268eaa8ea1a0a9bed4d/private/server/fastopen_linux.go

Looking at https://github.com/storj/storj/blob/4ee647a951d01c8f0b8af268eaa8ea1a0a9bed4d/private/server/fastopen_windows.go again, perhaps Windows support is mostly done? Maybe tryInitFastOpen just needs to return true. Worth testing!

Thats why windows node loosing so much rases today.