一、网络类优化
1. WIN11 开启 BBR2 网络优化算法
Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法,玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法,BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。
第1步: 右键开始,以管理员身份打开终端。 第2步: 执行以下指令可查看当前使用的算法,可以看到默认是 CUBIC 。
Get-NetTCPSetting|SelectSettingName,CongestionProvider
第3步: 执行以下命令即可切换为 BBR2 。
netshinttcpsetsupplementalTemplate=InternetCongestionProvider=bbr2
netshinttcpsetsupplementalTemplate=DatacenterCongestionProvider=bbr2
netshinttcpsetsupplementalTemplate=CompatCongestionProvider=bbr2
netshinttcpsetsupplementalTemplate=DatacenterCustomCongestionProvider=bbr2
netshinttcpsetsupplementalTemplate=InternetCustomCongestionProvider=bbr2
第4步: 再次执行上一条命令,如果出现以下 BBR2 字样即代表设置成功。
当然如果你想回到默认,执行以下命令就可以恢复。
netsh int tcp set supplemental template=internet congestionprovider=CUBIC
netsh int tcp set supplemental template=internetcustom congestionprovider=CUBIC
netsh int tcp set supplemental template=Compat congestionprovider=NewReno
netsh int tcp set supplemental template=Datacenter congestionprovider=CUBIC
netsh int tcp set supplemental template=Datacentercustom congestionprovider=CUBIC
[!warning] 开启BBR2后,可能导致各类莫名其妙的问题,比如:steam无法运行、v
bobyai ikunjia 无法运行等
2. Nagle 算法
Nagle 算法是一种为了提高网络效率而减少发送的数据包的算法。然而,对于没有捆绑数据包的多人游戏来说,这并不是很好。Nagle 的算法会导致网络延迟,这在玩多人射击游戏时会更加卡顿。你可以像这样禁用 Nagle 算法:
1、首先,你需要找到你的 IPv4 地址。 2、输入此 CMD 命令并按回车键:ipconfig 3、记下 IPv4 地址的细节。
4、按照第四种方法所述,打开注册表编辑器。 5、擦除地址栏中的当前注册表位置。然后输入此 Interfaces 密钥路径并按 Enter:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
6、Interfaces 键包括一些在其标题中带有随机数字和字符的子键。在那里选择包含 DhcpIPAddress 字符串的子
7、右键单击所选键的右窗格以选择新建 >DWORD(32 位)值。
8、输入 TcpAckFrequency 作为新 DWORD 的标题。 9、双击 TcpAckFrequency DWORD。 10、在 TcpAckFrequency 的值框中输入 1,然后点击确定应用。 11、接下来,在同一个选定的键上添加另一个 DWORD,标题为 TCPNoDelay。
12、双击 TCPNoDelay 以查看其编辑 DWORD 窗口。 13、在 TCPNoDelay DWORD 的 Value 数据框中输入 1,然后选择 OK。
14、然后退出注册表编辑器,并选择重新启动选项。
3. 网络参数
netsh int tcp show global
TCP 全局参数
接收端缩放状态 : enabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : default
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : enabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2
快速打开 : enabled
快速打开回退 : enabled
HyStart : enabled
节奏配置文件 : off
修改以下几项,修改完成后重启。 直接缓存访问(DCA):netsh int tcp set global dca=enabled
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
附加拥塞控制提供程序netsh interface tcp set global congestionprovider=ctcp
Win10用户:netsh int tcp set supplemental template=internet congestionprovider=ctcp
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
记得重新启动.
windows10之前
netsh int tcp set global dca=enabled
netsh int tcp set global autotuninglevel=normal
netsh interface tcp set global congestionprovider=ctcp # win10 下,提示参数错误
netsh int tcp set global timestamps=enabled
windows10
netsh int tcp set global dca=enabled
netsh int tcp set global autotuninglevel=normal
netsh int tcp set supplemental template=internet congestionprovider=ctcp
netsh int tcp set global timestamps=enabled
4. 调高 IRPStackSize
调高 IRPStackSize,以提升 Windows 10 中的网络速度
I/O请求数据包堆栈大小(IRPStackSize)指您的计算机可以同时使用多少个36字节的接收缓冲区。大量的缓冲区意味着您的计算机可以同时处理更多数据,从理论上讲,这应该会使您的计算机更高效地运行。
虽然没有太详细的官方微软文档介绍该参数,但是默认设置为15,该设置对于大多数正常速度(10 Mbps)的网络连接来说足够了。最大数量限制在50,微软警告:选择33到38区间内的值可能会导致稳定性问题。以本文为例,我们将值调高到32。
在Windows 10桌面搜索框中键入“regedit”,然后从结果列表中选择regedit.exe。使用左侧窗口窗格,浏览Windows 10注册表文件,直至找到这个特定键,如图A所示:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
对于大多数用户来说,没有 IRPStackSize 对应的条目,因此我们需要创建它。鼠标右击“Parameters”文件夹(或鼠标右击右侧窗格中的空白区),然后选择该上下文菜单中的NEW |DWORD(32-bit)Value。将新的键条目命名为IRPStackSize,如图B所示。注意:大写字母对于该配置变更的成功至关重要。
双击刚创建的新IRPStackSize键,并将值记数制更改为Decimal(十进制),从而使您的使用更轻松。然后,如图所示,将数据值更改为50。 点击“确定”以锁定更改,然后退出regedit。想完成整个过程,您需要重新启动PC。
5. 网络策略
计算机配置 >> windows 设置 >> 基于策略的Qos,右键选择 高级 Qos 设置 最后勾选“指定入站TCP吞吐量级别”,默认级别为3,即最大吞吐量,但是如果机器本身的配置不是特别高,建议不要盲目选择最大吞吐量,(建议8G及以下内存的用户勾选2,16G及以上的用户勾选3),勾选完成后,点击【确定】生效
计算机配置–Windows 设置–管理面板–网络–QOS数据包计划程序–限制可保留带宽 设备管理器 >> 右键 Realtek PCIe Gbe Family Controller >> 高级 >> 连接速度与双工模式 >> 选择 1.0 Gbps 全双工
6. 强制优先IPV4
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
里面有个叫 DisabledComponents 的,没有的话就右键新建一个(DWORD 32位)
数据值那输20(十六进制,如果是十进制的话输32)
然后确定就行了
另外:
- 修改注册表中的DisabledComponents键值,将其设置为0(十六进制)或0(十进制)。这样就可以启用IPv6的所有功能,并让IPv6优先使用。
- 修改注册表中的PrefixPolicy键值,将其按照IPv6地址类型的优先级排序。这样就可以调整IPv6地址选择算法,并让IPv6优先使用。
修改注册表中的DisabledComponents键值,禁用ms_tcpip4,违背优先使用的初衷。
# 获取当前用户的注册表路径
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters"
# 获取当前用户的DisabledComponents键值
$disabled = Get-ItemProperty -Path $regPath -Name DisabledComponents
# 输出当前用户的DisabledComponents键值
Write-Output ("Current DisabledComponents value: {0}" -f $disabled.DisabledComponents)
# 设置新的DisabledComponents键值为0(十六进制)
$newDisabled = 0x0
# 修改注册表中的DisabledComponents键值为新的DisabledComponents键值
Set-ItemProperty -Path $regPath -Name DisabledComponents -Value $newDisabled
# 输出新的DisabledComponents键值
Write-Output ("New DisabledComponents value: {0}" -f $newDisabled)
修改注册表中的PrefixPolicy键值,将其按照IPv6地址类型的优先级排序。这样就可以调整IPv6地址选择算法,并让IPv6优先使用。
# 获取当前用户的注册表路径
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters"
# 获取当前用户的DisabledComponents键值
$disabled = Get-ItemProperty -Path $regPath -Name DisabledComponents
# 输出当前用户的DisabledComponents键值
Write-Output ("Current DisabledComponents value: {0}" -f $disabled.DisabledComponents)
# 设置新的DisabledComponents键值为0(十六进制)
$newDisabled = 0x0
# 修改注册表中的DisabledComponents键值为新的DisabledComponents键值
Set-ItemProperty -Path $regPath -Name DisabledComponents -Value $newDisabled
# 输出新的DisabledComponents键值
Write-Output ("New DisabledComponents value: {0}" -f $newDisabled)
7. 关闭网络协议自动调节
对于一般用户根本使用不到,在CMD中执行
netsh int tcp set global autotuninglevel=disable
8. 网络节流机制调整(VISTA~WIN10)
注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Multimedia/SystemProfile/,下DWORD(32位)值NetworkThrottlingIndex子键,来控制网卡网络流量,每毫秒处理包的数量。默认10,每毫秒14.8MB(MTU1480x10)。以此来调节网卡、流量数据包长时工作占用CPU,使CPU能处理更多任务。初衷不错,但现在板载网卡已集成数据处理芯片,CPU多核、性能过剩。如果有使用千兆网络(千兆网卡)建议将其键值改为(十进制)100。如是重度网游或NAS局域网数据交换等,干脆(十六进制)FFFFFFFF将其关闭。
如果设置后CPU占用过大、内存占用过多,可自行调节键值,NetworkThrottlingIndex键值范围:(十六进制)10~70,键值越大理论网速越快,CPU、内存占用量越多。
也可以用命令形式来修改:
千兆网卡网络,在CMD中执行:
reg add "HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Multimedia/SystemProfile" /v "NetworkThrottlingIndex" /t REG_DWORD /d 0x64 /f
也可以直接关闭节流:
reg add "计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile" /v "NetworkThrottlingIndex" /t REG_DWORD /d 0xFFFFFFFF /f
9. 关闭同步主机服务
- “同步主机_XXXXX“的服务项,据说是个没什么用的垃圾同步功能,关闭该服务能有效解决磁盘100%的问题。
关闭方法:
1、按下WIN+R调出运行,然后输入 regedit 回车;
2、在注册表编辑器中定位到:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services;
3、找到OneSyncSvc、OneSyncSvc_XXXXX、UserDataSvc、UserDataSvc_XXXXX,将start值改为4(注:未修改时,前两个默认值为2,后两个默认值为3);
4、退出注册表编辑器,然后重启Win10系统即可。
- “CDPUserSvc_xxx”服务是后台同步数据,会影响服务器速度。
在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services中
CDPSvc的start属性修改为4
CDPUserSvc的start属性修改为4
CDPUserSvc_随机数字 的start属性修改为4
10. 禁用自动维护
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Schedule/Maintenance
在Maintenance对应的右侧窗口,右键点击空白处 – 新建 – DWORD(32位)值
把新建#1命名为MaintenanceDisabled,左键双击MaintenanceDisabled,在弹出的编辑DWORD(32位)值窗口,把MaintenanceDisabled的数值数据从“0”更改为“1”,再点击:确定,退出注册表编辑器;
重新启动服务器或电脑,WIN2022或Win11系统自动维护功能关闭
二、策略类优化
1. 获取最高权限
- 我的电脑 >> 管理 >> 本地用户和组 >> 属性(当前用户)>> 隶属于 >> 添加 >> 输入对象名称(System Managed Accounts Group)>> 检查名称 >> 确定
-
win + r >> secpol.msc >> 本地策略 >> 安全选项 >> 用户账号控制:以管理员批准模式运行所有管理员 >> 双击 ” 禁用 ” >> 重启
(1)仅内置管理账户 administrator
直接最大权限运行
-
win+R
–gpedit.msc
打开组策略
–Windows设置
–安全设置
–本地策略
–安全选项
。 -
将
用户账户控制:以管理员批准模式运行所有管理员
保留默认的已启用
。 -
将
用户账户控制:用于内置管理员账户的管理员批准模式
设置为已禁用
。
(2)所有管理账户都直接最大权限运行
- 将
用户账户控制:以管理员批准模式运行所有管理员
设置为已禁用
。
三、设置类优化
1. 关闭【提高指针精确度】
这个功能是开启鼠标指针的加速度工作模式,勾选之后系统会给鼠标指针一个加速度,以方面用户进行长距知离移动,不过这样会影响定位精度。专业游戏鼠标,可以关闭,如果需要,可以去罗技等鼠标驱动页面进行设置
2. 修改默认安装目录
WIN11 修改程序默认安装目录及修改默认用户路径
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
[!warning] 三个CommonFilesDir 如果修改,会导致开机启动后,闪屏。如果修改至webdav下的目录,会导致持续闪屏,无法使用
3. 关闭文件类型检测,提高文件管理器加载速度
- win + r 输入 “regedit”,打开注册表
-
打开如下路径
HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell
4. win 11 取消圆角显示
- 打开注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM
- 新建一个名为
UseWindowFrameStagingBuffer
的DWORD(32 位)值,并将其十六进制值设置为0
。 -
重启计算机
四、内存优化
1. 大内存优化
修改注册表:
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
分别双击 DisablePagingExecutive 和 LargeSystemCache 这两项,将其数值由 0 修改为 1。 重启系统,禁用前台程序的页面交换就已经生效了。 但 LargeSystemCache 大容量系统缓存虽然已经开启但我们需要给它设置一个更大的值。 右键开始,管理员身份运行终端/PowerShell。 执行 get-mmagent 命令可以看到许多内存功能选项。 其中 MaxOperationAPIFiles 最大程序预加载进内存的文件数也就是我们需要修改的值。
执行 set-mmagent 命令,根据提示填入一个更大的。 32G 及以上电脑可以开大点(1~8192),我这 16G 就开了 4096,可以多次修改感受。
都到这了可以顺便再优化一下其他内存功能。 建议关闭 MemoryCompression 内存压缩和 PageCombining 内存合并这两项,可以减轻 CPU 负担但会稍许增加内存占用。
Disable-MMAgent -MemoryCompression
Disable-MMAgent -PageCombining
Enable-MMAgent -ApplicationLaunchPrefetch
Enable-MMAgent -ApplicationPreLaunch
Enable-MMAgent -OperationAPI
Enable-MMAgent -PageCombining
Enable-MMAgent -MemoryCompression
ApplicationLaunchPrefetching 和 OperationAPI 如果报错,可:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
双击右边 EnablePrefetcher,将数值改为3,注销或重启系统即可
如果是 CPU 特别强劲但内存却只有 4G、8G 这种配置…可以自行尝试开或者关这两项。 因为虽然说的是合并/压缩内存,但实际并不能节省什么内存,一些情况下甚至不减反增。 优化完,小蝾这 16G 内存的占用情况也十分健康,原来不爆内存现在也不会爆内存。 而对软件、系统流畅度以及减少 CPU、硬盘跟不上时的谜之卡顿上还是有所帮助的。
五、右键优化
1. Windows11 隐藏主文件夹和图库
Windows 11 文件资源管理器左侧的主文件夹和图库删除或者隐藏不能通过常规界面操作来实现,要隐藏 Windows 11 主文件夹和图库,需要修改系统注册表。
Windows 11 主文件夹(Home)在注册表的位置是
HKEY_CLASSES_ROOT\CLSID{f874310e-b6b7-47dc-bc84-b9e6b38f5903}
Windows 11 图库(Gallery)在注册表的位置是
HKEY_CLASSES_ROOT\CLSID{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}
将各自注册表项隐藏主文件夹和图库的 System. IsPinnedToNameSpaceTree 从 1 改成 0 就可以让主文件夹和图库消失。
不过,这些注册表项有权限限制,需要先为用户指派足够的权限才能修改它们的值。操作步骤如下。
以管理员身份运行 regedit. Exe 定位到上述注册表项 在注册表项上单击鼠标右键,选择 ” 权限” 在弹出的 ” 安全 ” 窗口中点击 ” 高级 (V)” 将 ” 所有者 ” 更改为 “Authenticated Users” 为 “Administrators” 分配 ” 完全控制 ” 权限 将 System. IsPinnedToNameSpaceTree 改成 0 恢复修改前的权限并将 ” 所有者 ” 改回原始值 NT Service\TrustedInstaller
2. 关闭右键菜单中“使用skype共享”
Windows键+R->regedit 然后进入
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PackagedCom\Package\Microsoft.SkypeApp_15.92.3204.0_x86__kzf8qxf38zg5c\Class{776DBC8D-7347-478C-8D71-791E12EF49D8}
双击 DLLPath,在Skype\SkypeContext.dll 前面加个 –
重新启动电脑.
3. 去除右键 open in windows terminal
1、按Win+R快捷键,输入“regedit”打开注册表。
2、地址栏输入【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\
】回车。
3、点击选择【Shell Extensions】文件夹,右键新建项,名称为【Blocked】。
4、点击选择【Blocked】文件夹,右键新建字符串值,名称为【{9F156763-7844-4DC4-B2B1-901F640F5155}】,数值为【WindowsTerminal】。
5、完成后,无需重启即可生效!
六、CPU线程优化
过测试以下设置是主要影响超线程休眠的:
bios里需要关闭PSS和C-state,不然核心随机休眠。
处理器性能核心放置最小核心数量 50% (停车一半线程) powercfg -attributes 54533251-82be-4824-96c1-47b60b740d00 0cc5b647-c1df-4637-891a-dec35c318583 -ATTRIB_HIDE
SMT 线程启动策略 循环配置 (保证停车的线程是超线程) powercfg -attributes 54533251-82be-4824-96c1-47b60b740d00 b28a6829-c5f7-444e-8f61-10e24e85c532 -ATTRIB_HIDE
处理器性能时间检查间隔 30ms (经过测试默认15ms有几率停车到物理核心,至于为什么选30ms我参考了这篇文章https://www.bilibili.com/read/cv20805800/)) powercfg -attributes 54533251-82be-4824-96c1-47b60b740d00 4d2b0152-7d5c-498b-88e2-34345392a2c5 -ATTRIB_HIDE
处理器性能内核休止并发空间阈值 98% (越高值,有新任务时越不倾向使用新的线程。在我的设置里也就是超线程,98%是我测试可以让大部分使用多线程的程序可以正常使用所有核心的值,如果你遇到一些程序超过物理核心数量还不启用超线程可以调低这个值。) powercfg -attributes 54533251-82be-4824-96c1-47b60b740d00 f735a673-2066-4f80-a0c5-ddee0cf1bf5d -ATTRIB_HIDE
PowerSettingsExplorer可以去这个帖子里下 https://ngabbs.com/read.php?tid=36030622
https://ngabbs.com/read.php?&tid=38104750
新建文本文档,粘贴如下代码,另存为“优化Windows对CPU超线程技术的调度.reg”,双击合并。
Windows Registry Editor Version 5.00
;2核4线程就改为"SmallProcessorMask"=dword:00000005
;4核8线程就改为"SmallProcessorMask"=dword:00000055
;6核12线程就改为"SmallProcessorMask"=dword:00000555
;8核16线程就改为"SmallProcessorMask"=dword:00005555
;10核20线程就改为"SmallProcessorMask"=dword:00055555
;16核32线程就改为"SmallProcessorMask"=dword:55555555
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\KGroups\00]
"SmallProcessorMask"=dword:00000555
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318584]
"Attributes"=dword:00000000
;电源计划里“异类线程调度策略 & 异类短运行线程调度策略”,将这两个选项设置成“首选高效处理器"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"DynamicHeteroCpuPolicyMask"=dword:00000006
"DefaultDynamicHeteroCpuPolicy"=dword:00000004
"DynamicHeteroCpuPolicyImportant"=dword:00000004
"DynamicHeteroCpuPolicyImportantShort"=dword:00000004
'DynamicHeteroCpuPolicyImportantPriority"=dword:00000008
Windows Registry Editor Version 5.00
;2核4线程就改为"SmallProcessorMask"=dword:00000005,
;4核8线程就改为"SmallProcessorMask"=dword:00000055,
;6核12线程就改为"SmallProcessorMask"=dword:00000555,
;8核16线程就改为"SmallProcessorMask"=dword:00005555;10核20线程就改为"SmallProcessorMask"=dword:00055555
;16核32线程就改为"SmallProcessorMask"=dword:55555555
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\KGroups\00]
"SmallProcessorMask"=dword:00000555
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318584]
"Attributes"=dword:00000000
;电源计划里“异类线程调度策略 & 异类短运行线程调度策略”,将这两个选项设置成“首选高效处理器"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"DynamicHeteroCpuPolicyMask"=dword:00000006
"DefaultDynamicHeteroCpuPolicy"=dword:00000004
"DynamicHeteroCpuPolicyImportant"=dword:00000004
"DynamicHeteroCpuPolicyImportantShort"=dword:00000004
'DynamicHeteroCpuPolicyImportantPriority"=dword:00000008
打开“电源选项”,“更改计划设备”,“更改高级电源设置”,找到“处理器电源管理”,找到“针对第1类处理去电源效率的处理器性能核心放置最小核心数量”,修改为 100%。
会使电脑尽量运行CPU实核心而不是超线程,从而起到省电降温和提速的作用。
七、禁用内置键盘
sc config i8042prt start= disabled
必须 注册 为本站用户, 登录 后才可以发表评论!