1

I have two questions:

Can I prioritize a network share to some maximal download speed? Or does windows automatically slow them down when the system is doing heavy IO?

Independently from that question, does the priority of task in the task explorer also affect the disk usage directly or is this only done by telling the cpu scheduler to not execute the low priority app as often

Background: I'm noticing that if I push files via network onto a machine, then machine can work better than when I've got a tool installed on the machine that downloads files

John Gardeniers
  • 27,262
  • 12
  • 53
  • 108
Franz Kafka
  • 237
  • 2
  • 12

1 Answers1

2

Windows Server 2008 and newer versions implement rudimentary support for I/O priorities. The CPU priority and the I/O priority are loosely coupled:

Windows Process I/O priorities

(image is a screenshot taken from http://www.bitsum.com/pl_io_priority.php which makes for an excellent "further reading") You can prioritize down a process' I/O by setting it to "Idle" priority - this will set I/O priority of a process to "very low", the rest will execute in "normal" priority.

As of yet, a share is not an object you can give a priority to and no Windows version prior to Server 2016 does allow priority requests for network-served files at all - every request is executed with the same priority.

With SMB 3.1.1 (Server 2016+, Windows 10) a new network flag has been introduced: SMB2_FLAGS_PRIORITY_MASK

This flag is only valid for the SMB 3.1.1 dialect. It is a mask for the requested I/O priority of the request, and it MUST be a value in the range 0 to 7.

(source:SMB2 packet header documentation)

I could not find any documentation on how to set up the client to request a higher priority, how to configure the server on whether to honour such requests from certain clients, how the 0-7 value range maps onto the 4 Windows I/O priorities or if this is an implemented feature altogether or just defined as a placeholder in the SMB Protocol specification.

the-wabbit
  • 40,319
  • 13
  • 105
  • 169
  • "prioritizing a network share". Image alot of people write to the disk via a network share. Now on the machine a tool is running that needs alot of disk as well. Does windows then give the local process more power than requests coming in remotely? – Franz Kafka Jun 06 '11 at 09:51
  • Is "it" in "by setting it to Idle priority" the process priority? – Franz Kafka Jun 06 '11 at 09:54
  • There is no fundamental distinction between the I/O priority granted to local processes/threads and the network users which again are served by a local process running the "server" service. Yes, "it" is the process priority in this context - set it to "idle" to de-prioritize I/O as well. – the-wabbit Jun 06 '11 at 11:17
  • I know what is meant by "prioritizing a network share" because I am in need of this. It basically means to pass the desired I/O priority across using SMB, so that the server hosting the file makes the request using the desired I/O priority, as opposed to using NORMAL for everything. – Brain2000 Jan 16 '17 at 20:23