我有两个问题:
我可以将网络共享的下载速度设置为最高吗?或者当系统执行大量 IO 时,Windows 会自动降低速度吗?
除了这个问题之外,任务资源管理器中的任务优先级是否也会直接影响磁盘使用情况,还是只能通过告诉 CPU 调度程序不要经常执行低优先级应用程序来实现
背景:我注意到,如果我通过网络将文件推送到一台机器上,那么机器的工作效果会比我在机器上安装了下载文件的工具时更好
答案1
Windows Server 2008 及更新版本实现对 I/O 优先级的基本支持CPU优先级和I/O优先级是松耦合的:
(图片来自http://www.bitsum.com/pl_io_priority.php这使得它成为一篇极好的“进一步阅读”内容) 您可以通过将进程的 I/O 设置为“空闲”优先级来降低其优先级 - 这会将进程的 I/O 优先级设置为“非常低”,其余进程将以“正常”优先级执行。
到目前为止,共享还不是您可以优先考虑的对象,并且 Server 2016 之前的任何 Windows 版本都不允许对网络服务文件进行优先请求 - 每个请求都以相同的优先级执行。
在 SMB 3.1.1(Server 2016+、Windows 10)中引入了一个新的网络标志:SMB2_FLAGS_PRIORITY_MASK
此标志仅对 SMB 3.1.1 方言有效。它是请求的请求 I/O 优先级的掩码,并且必须是 0 到 7 范围内的值。
(来源:SMB2 数据包头文档)
我找不到任何关于如何设置客户端以请求更高优先级的文档,如何配置服务器是否尊重来自某些客户端的此类请求,0-7 值范围如何映射到 4 个 Windows I/O 优先级,或者这是否是一个完全实现的功能或仅仅定义为 SMB 协议规范中的占位符。