Windows 11默认未启用多线程复制,需通过注册表开启IoEnableMultiThreadedCopy、使用robocopy /MT参数、PowerShell并行脚本、禁用缩略图及关闭传递优化五种方式协同优化。
如果您在 Windows 11 中执行文件拷贝操作,发现速度明显低于硬盘理论带宽,可能是系统默认未启用原生多线程复制机制。Windows 11 自 22H2 起已内置多线程文件复制能力,但需通过特定方式触发或配置才能生效。以下是启用并优化该功能的具体方法:
一、启用文件资源管理器多线程复制(注册表开关)
Windows 11 原生多线程复制功能默认处于禁用状态,需手动开启注册表项以激活后台并行传输通道,使系统在检测到大文件或大批量文件时自动调用多个 I/O 线程。
1、按
Win + R输入regedit,以管理员身份运行注册表编辑器。
2、导航至路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel。
3、右键右侧空白区域,选择“新建” → “DWORD (32位)值”,命名为IoEnableMultiThreadedCopy。
4、双击该值,将“数值数据”设为
1(十六进制或十进制均可),点击“确定”。
5、
无需重启,注销当前用户并重新登录,或重启文件资源管理器进程(通过任务管理器结束“explorer.exe”后重启)。
二、使用 Robocopy 启用显式多线程复制
Robocopy 是 Windows 11 内置命令行工具,其 /MT 参数可强制启用指定数量的并发线程,绕过资源管理器限制,直接调用系统底层多队列I/O接口,对 NVMe SSD 或 RAID 阵列提升尤为显著。
1、以管理员身份打开
Windows 终端(管理员)
或命令提示符。
2、输入基础命令格式:
robocopy "源路径" "目标路径" /e /mt:32(/e 表示包含空子目录,/mt:32 表示启用32线程)。
3、如需保留所有属性与权限,追加参数:
/copy:DATSO /dcopy:T。
4、添加日志输出便于监控:
/log:C:\copy_log.txt。
5、执行后可见实时线程调度信息,吞吐量将随线程数增加而线性上升(建议线程数不超过 CPU 逻辑核心数的2倍)。
三、通过 PowerShell 启用高级并行复制(PowerShell 7+)
PowerShell 7.2 及以上版本支持-Parallel参数与ForEach-Object结合,可对文件列表实施真正并行化分发,尤其适用于海量小文件场景,避免传统串行遍历瓶颈。
1、确保已安装
PowerShell 7.x(非系统自带 PowerShell 5.1)。
elasticsearch-9.4.0 win PHP中文网提供Elasticsearch 9.4.0 Windows 版本压缩包下载解压即用,内置 OpenJDK 无需额外配置 Java 环境。该版本重磅推出原生 Prometheus 支持、正式版 Elastic Workflows 以及基于 NVIDIA cuVS 的 GPU 加速向量索引,大幅提升 AI 检索与可观测性能力。建议前往官网下载,快速体验极速搜索与强大的数据分析功能。
下载
2、运行以下脚本(替换对应路径):
$files = Get-ChildItem "D:\source" -FileInvoke-Parallel -InputObject $files -ScriptBlock {& robocopy $_.DirectoryName $_.DirectoryName.Replace("source", "dest") $_.Name /j /r:1 /w:1}
3、其中
/j启用无缓冲快速传输模式,/r:1 /w:1控制重试策略,降低因瞬时I/O阻塞导致的线程挂起。
4、该方式可实现每秒数百个小文件的并发处理,实测 5000 个 100KB 文件可在8.3 秒内完成。
四、禁用文件资源管理器预览与缩略图生成
Windows 11 文件资源管理器在复制过程中仍会尝试为源/目标目录中的图像、视频等文件生成缩略图,此行为占用额外 GPU 与磁盘 I/O 资源,间接拖慢主复制线程调度效率。
1、打开任意文件夹,点击顶部菜单栏“查看” → “选项” → “更改文件夹和搜索选项”。
2、切换到“查看”选项卡,勾选
“始终显示图标,从不显示缩略图”
。
3、取消勾选
“在单独的进程中打开文件夹窗口”
和“显示隐藏的文件、文件夹和驱动器”
(若非必要)。
4、点击“应用到文件夹”,确认将此设置应用于所有文件夹。
五、关闭传递优化对本地拷贝的干扰
Windows 11 默认启用的“传递优化”服务可能在后台劫持本地文件读写请求,将其误判为更新分发流量,从而引入额外网络协议栈开销与缓存代理层,导致本地磁盘间拷贝延迟升高。
1、进入“设置” → “Windows 更新” → “传递优化” → “高级选项”。
2、将
“允许从其他电脑下载”
设置为关闭。
3、在“高级选项”中,点击
“重置传递优化”
按钮,清除所有缓存索引与代理状态。
4、返回服务管理器(
services.msc),找到Delivery Optimization服务,右键选择“停止”,并将启动类型设为“手动”。
