Ask Your Question
0

tcp window and SMB v3 multi session

asked 2020-04-13 15:24:03 +0000

codec gravatar image

Dear all,

I am troubleshooting SMB v3 throughput performance issue. Currently, I saw the TCP window scaling flag is -1, I understand that's because Wireshark did not see TCP handshake to know the scaling status, but I turn on Wireshark before setup \x.x.x.x file server link to SMB server but still did not get this flag status.

I would like to know does anyone have suggestions for the following questions: (The server uses NAS and do not have access right to check the server status)

  1. how to calculate the TCP window size in client and server-side under the flag is -1 situation?
  2. Have a command to check current TCP windows in windows 10 directly? I do not have access right in the server-side.
  3. I found SMB supports multi-stream (not multi-channel for dual interface), but it seems sometimes the client can't run multi-stream always. Does anyone have a similar experience to this? The client ConnectionCountPerRssNetworkInterface is 4. I read the Micorosft document that mentioned multi-session can only work under a virtual interface. is it true?
  4. Any ideas to improve SMB v3 file transfer throughput on Windows 10 side?

Thank you very much! codec

edit retag flag offensive close merge delete

Comments

We don't generally close questions, instead accept the answer by clicking the checkmark icon to the left of it.

grahamb gravatar imagegrahamb ( 2020-05-03 15:58:06 +0000 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2020-05-03 14:37:29 +0000

codec gravatar image

I found most of answers of my questions, and here is the URL I found for some of the windows information. Just post in here in case someone may interested. thank you.

https://techcommunity.microsoft.com/t...

https://docs.microsoft.com/en-us/arch...

https://docs.microsoft.com/en-us/wind...

edit flag offensive delete link more
0

answered 2020-04-13 17:42:11 +0000

Eddi gravatar image

updated 2020-04-13 17:44:33 +0000

Hello Codec

Windows usually starts the 3-way handshake by offering a scale factor of 8. So you have to multiply the windows advertised by the client by 2^8 (in other words: multiply by 256).

A useful command could be netsh int tcp show global You could replace showwith set to change the various options. By default Windows is using a reasonably tuned network stack. Certain situations, like a connection with very high bandwidth and very long RTT, might require some fine tuning.

Windows supports a feature called "TCP offloading" which is sometimes called the "TCP chimney". With offloading enabled the network interface will do some work like calculating IP and TCP checksums. Another noteworthy feature to fine tune network performance is found within the hardware properties of your network card. Go to the properties of the network card. But instead of changing an IP address click the button "Configure...". In the new window locate the Advanced tab.

Especially on the server side you will benefit from a fine tuning of receive and transmit buffers provided by the NIC. You might want to try changing the maximum number of RSS queues.

One way to check the overall situation (preferably on the server) is the command netstat -es. You want to keep the number of discards, errors, retransmissions etc. as low as possible.

Please remember that Wireshark offers a great feature with the server response time statistics. Use the menu Statistics --> Service Response Time --> SMB2. In most cases the values for "Notify" will not deliver insight into the server performance, while all the others are great indicators.

Good luck!

Eddi

edit flag offensive delete link more

Comments

Hi Eddie,

Thanks for your reply. From the SMB2 service response time statistics, do you have a sample to show the procedure causes the delay? Because I saw all of the SMB2 procedures are less than 0.87 seconds, only Notify is 22 seconds on average.

I know windows 10 default TCP window is 64k, but I saw window size changed to 24709 ~ 24753. should I still doubt low throughput is caused by the TCP window?

If network delay is 100 ms, under the 24709 TCP window, what is the theoretical throughput? Is it 0.24MB per second when scaling is disabled?

Thank you! codec

codec gravatar imagecodec ( 2020-04-14 17:00:19 +0000 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2020-04-13 15:24:03 +0000

Seen: 1,983 times

Last updated: May 03 '20