ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

开机GPU占用100%?dwm.exe和csrss.exe高占用排查与修复

开机GPU占用100%?dwm.exe和csrss.exe高占用排查与修复 刚开机不久任务管理器里显卡占用率直接冲到接近 100%点开详细信息发现占用最高的不是游戏、不是视频软件而是dwm.exe桌面窗口管理器和Client Server Runtime Processcsrss.exe。这类问题在 Windows 10 和 Windows 11 上都不少见表现形式相同但背后的原因可能完全不一样。有人换显卡驱动解决有人关掉透明效果解决也有人最终发现是硬盘健康状态出了问题系统在后台反复做恢复和索引操作导致桌面渲染线程异常忙碌。这篇文章围绕“开机后 DWM/CSRSS 的 GPU 占用异常并且怀疑和硬盘有关”这条线索按实际排查顺序展开。先从进程职责入手再给出可操作的诊断命令然后逐层分析显卡驱动、混合显卡、硬盘坏道、固件和接口等问题最后给出修复方案和平时维护建议。整个过程不需要拆机先通过软件定位再决定要不要动硬件。1. 先搞懂 DWM.exe 和 CSRSS 为什么会占用 GPU1.1 桌面窗口管理器dwm.exe的渲染职责dwm.exe是 Windows 的桌面合成器。Windows Vista 之后所有窗口不再由各自的应用直接绘制到屏幕上而是由 DWM 统一合成窗口边框、阴影、毛玻璃效果、任务栏缩略图、窗口动画、显示器切换动画全部由 DWM 通过 DirectX 和 DXGI 提交到 GPU 渲染。也就是说只要你在使用桌面DWM 就一定有 GPU 工作。但这不代表 DWM 应该持续高占用。正常情况下桌面静态时 DWM 的 GPU 占用率应该在 0 到 5% 之间波动在高分屏滚动页面、拖动窗口或者播放视频时可能短暂升到 10% 到 30%。如果开机后不做任何操作就跑到 60% 以上甚至接近 100%那就不是“正常合成桌面”而是它在反复做某些异常工作。常见异常工作包括不断重绘损坏或失效的窗口表面反复加载、重试读取壁纸、图标缓存、字体缓存因为窗口消息风暴导致合成器一帧都停不下来GPU 驱动处于降级模式所有渲染回退到软件模拟或用低效率路径。1.2 Client Server Runtime Processcsrss.exe的角色Client Server Runtime Process负责 Win32 子系统的基础进程管理。它参与进程和线程的创建、删除、控制台窗口处理、驱动程序加载以及部分窗口消息的转发。在图形链路上csrss.exe不像 DWM 那样直接绘制画面但它和窗口系统、设备状态有关系。比如打开一个新的控制台窗口或者某些进程反复创建又销毁窗口时csrss 会参与消息循环这会间接增加整个桌面渲染线程的压力。出现csrss.exe的 GPU 占用异常时要区分两种情况监控工具把 DWM 或其他进程的 GPU 负载错误归到了csrss.exe头上csrss.exe的系统文件被人替换或注入进程在调用异常路径。后者虽然概率低但必须检查。后文会给出验证csrss.exe路径和签名的方法。1.3 GPU 占用率和硬盘之间的关联一个容易被忽视的事实桌面窗口管理器不是只依赖显卡。DWM 在启动阶段会加载大量资源包括字体、图标、壁纸文件、Microsoft Store 应用的窗口组件、桌面幻灯片主题文件等。这些都存在磁盘上。如果磁盘出现严重坏道或 SSD 掉速DWM 在读取这些资源时会反复等待、重试。同时系统服务启动缓慢时桌面会一直停留在“正在准备”的状态DWM 会持续合成等待动画和窗口绘制的刷新帧。此时如果观察任务管理器看到的 GPU 占用很高但根源其实是磁盘堵住了整个开机流程的必经阶段。这就是标题里“可能会是硬盘有问题”的判断逻辑磁盘 IO 慢或者损坏不一定直接让 GPU 运算变多但它会让桌面合成线程无法按时完成材质和资源的装载导致渲染管线反复重建最终表现为 DWM 的 GPU 占用率异常。2. 开机后 GPU 满负载的系统诊断顺序遇到这类问题第一步不是卸载显卡驱动也不是格式化硬盘而是先采集证据。整条排查链路按“确认现象 - 定位进程 - 检查磁盘 - 检查驱动 - 检查启动项”执行每一步都要有明确结果。2.1 确认 GPU 占用率是否真实任务管理器的“GPU 占用率”是一个汇总指标它可能是 3D、视频解码、视频编码、Copy 或 Compute 引擎中的某一项。先打开任务管理器点击“GPU”列把它换成“GPU 引擎”就能看到具体是哪个引擎在被使用。任务管理器 - 详细信息 - 右键列头 - 选择列 - 勾选“GPU 引擎”如果高占用的是Graphics或Copy说明和画面合成有关。如果高占用的是Compute或Video Decode说明可能有后台视频处理任务比如某个播放器、录屏工具或壁纸软件在反复编码。还要检查任务管理器显示的是哪一个 GPU。在混合显卡笔记本上通常有 GPU 0核显和 GPU 1/2独显。如果 DWM 被强制跑在独显上而系统又不需要独显那么独显占用率很容易被拉高实际干活的却是核显。这个问题在第 3 节会单独说明。2.2 定位占用 GPU 的进程用下面的命令不能直接看到 GPU 占用但可以看到进程 ID 和完整路径用来判断哪个进程是 DWM、哪个进程是 CSRSS以及它们是否存在异常Get-Process dwm, csrss -Format List | Select-Object ProcessName, Id, Path, StartTimePowerShell 里继续查看进程的 GPU 使用情况可以使用性能计数器Get-Counter \GPU Engine(*)\Utilization Percentage -SampleInterval 1 -MaxSamples 5输出会很长建议先按dwm关键字过滤Get-Counter \GPU Engine(*)\Utilization Percentage -SampleInterval 1 -MaxSamples 5 | ForEach-Object { $_.CounterSamples | Where-Object { $_.Path -match dwm|csrss } | Select-Object Path, CookedValue }查看后会发现DWM 和 CSRSS 的 GPU 引擎路径会带有pid_dwm.exe或pid_csrss.exe标识这样就能确认占用究竟是不是落在它们身上。2.3 查看磁盘健康状态不要急着用第三方工具先看 Windows 自己的状态。Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus, FirmwareVersion如果HealthStatus是Warning或Unhealthy说明硬盘已经有问题。再查看可靠性计数器Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object Temperature, ReadErrorsTotal, Wear, PowerOnHours观察重点指标含义异常信号ReadErrorsTotal累计读取错误次数数字持续增长Temperature硬盘温度机械硬盘超过 50 度NVMe SSD 超过 70 度需要警惕WearSSD 磨损度超过 80% 后掉速和坏块可能性上升PowerOnHours通电时长机械硬盘通电超过 2 万小时建议重点查 SMART下面用chkdsk做只读扫描这一步不会修复只是确认文件系统层有没有损坏chkdsk C: /scan然后再用sfc检查系统文件因为 DWM 和 CSRSS 如果读取到损坏的系统文件会引发渲染异常sfc /scannow2.4 使用事件查看器和系统日志打开事件查看器依次检查Windows 日志 - 系统过滤事件 ID153这个事件代表磁盘的磁盘控制器重试或者超时是磁盘问题的强信号Windows 日志 - 系统过滤事件 ID7或51分别表示磁盘坏块和分页错误Windows 日志 - 应用程序过滤显卡驱动相关的错误事件常见的是nvlddmkm、Display。如果系统日志里大量出现磁盘控制器超时事件那么显卡占用异常大概率是磁盘问题引起的次生现象应该先把磁盘处理完再回来判断显卡是否恢复正常。3. 逐步排查可能原因3.1 显卡驱动问题显卡驱动异常会导致 DWM 渲染路径退化。NVIDIA 驱动停止响应后系统会调用 WDDM 的重置机制DWM 在重建显示表面时会忙一段时间。如果驱动反复停止、反复重置任务管理器里就会看到 DWM 的 GPU 占用一直掉不下来。检查方法dxdiag在“显示”一页中看驱动程序模型是否为WDDM 2.x再看驱动程序版本。如果驱动版本和显卡官方支持列表差得特别远优先更新或回滚。回滚时建议用 DDUDisplay Driver Uninstaller在安全模式彻底卸载旧驱动再安装最新版。要注意的是NVIDIA 新驱动对老显卡并不总是更好AMD 新驱动同样可能存在兼容问题。如果更新后问题出现下一步要做的不是继续更新而是安装上一版被广泛使用的稳定版本。3.2 启动项和服务干扰开机时 DWM 高占用还要看是不是有软件在后台频繁创建窗口。例如某些显卡超频工具、灯光同步软件、录屏软件会在启动时创建透明窗口DWM 必须持续合成动态壁纸软件会请求视频解码和 3D 渲染虽然软件进程本身占用不高但 DWM 为合成这个覆盖层会持续狂吃 GPU杀毒软件和系统优化工具的托盘图标如果频繁重绘也会给 DWM 带来额外负担。查看启动项Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location建议一次禁用非系统必需项不要只是关掉一两个测试。启动到干净环境能快速定位是不是第三方软件导致。3.3 硬件故障显存、硬盘、固件如果驱动正常、启动项干净显卡占用还是高就要考虑硬件层。对显卡来说显存故障、供电不稳、核心过热都会让驱动无法正常完成渲染DWM 反复重试。显卡设备管理器报错误代码 43 是典型表现但很多时候不报错只表现为系统画面卡住、DWM 占用极高。对硬盘来说机械硬盘需要重点检查坏道SSD 需要关注固件和磨损。磁盘固件异常会导致系统启动时反复进行错误恢复外部表现就是开机慢、桌面无响应、DWM/CSRSS 异常。如果硬件条件允许可以运行 MATS 这类显存测试工具来确认显卡问题。但 MATS 使用门槛较高普通用户建议先用软件判断如果重启后问题稳定复现且换驱动、换接口、禁用独立显卡后都无效则大概率是显卡硬件问题。3.4 混合显卡切换异常混合显卡是笔记本上的常见坑。dwm.exe往往被系统分配在独显上但用户没有运行任何需要独显的应用。此时独显不会进入深度空闲状态而是被 DWM 的合成任务频繁唤醒。检查步骤打开 NVIDIA 控制面板或 AMD Adrenalin把“图形处理器”设置从“自动选择”改为“集成图形”或“高性能”二选一观察 GPU 占用变化在 Windows 设置 - 屏幕 - 显示卡中把桌面窗口管理器相关进程的 GPU 偏好设为“省电”查看电源选项中“处理器图形性能”和“PCI Express 链接状态”设置不要强行要求最大性能。混合显卡切换问题不能用“禁用核显”来解决。禁用核显后DWM 会完全落在独显上占用率更难看。正确做法是让日常桌面渲染走核显独显只在运行大型应用时启用。4. 硬盘问题到底怎么影响 GPU 占用4.1 为什么磁盘 IO 慢会导致 DWM 渲染阻塞很多人不理解硬盘慢和显卡占用有什么关系关键在于“Windows 在启动时不是同时加载所有服务而是串行依赖大量磁盘读取”。系统启动时DWM 需要从磁盘读取字体缓存、Shell 资源、用户主题文件、桌面壁纸、应用图标缓存。如果磁盘存在坏道读取这些文件时可能会触发多次重试如果 SSD 主控过热进入降速保护读取时间会被拉长。DWM 在等待资源期间不会停下来它会持续渲染“系统正在启动”状态下的动画和半成品窗口任务管理器这时就会记录大量 GPU 工作。另一方面Windows Search、磁盘碎片整理、Defender 全盘扫描这些服务如果由于磁盘异常而反复启动也会产生大量缩略图请求和文件读取DWM 为了生成文件资源管理器的缩略图会不断工作。所以硬盘问题不一定表现为 GPU 引擎Copy或Compute升高而更多表现为Graphics引擎升高因为 DWM 的工作本质是合成而不是计算。4.2 使用 Victoria、HD Tune 检测坏道在 Windows 图形界面下检测机械硬盘坏道最常用的两个工具是 Victoria 和 HD Tune Pro。两者原理相似通过向硬盘读取特定扇区范围统计读取速度和错误位置。Victoria 的热点图和散点图很容易判断健康状态灰色或绿色块表示读取正常橙色和红色块表示读取速度慢带 X 或 Error 标记的块表示存在坏道或读取失败。HD Tune Pro 的“错误扫描”功能和“健康”页签可以快速判断大范围坏道但它更适合作为初步筛查。如果 HD Tune 显示有红色块再用 Victoria 做详细扇区级扫描。需要注意的是SSD 并不适合用坏道扫描来判断质量。SSD 的坏块由主控自动管理和重映射用户看不懂原始的闪存映射状态。对 SSD 更有效的方式是CrystalDiskInfo 查看 SMART 属性厂商工具箱查看固件版本和剩余寿命持续读写测试观察掉速曲线。4.3 SSD 固件、磨损和 NVMe 健康查询NVMe 固态硬盘的健康状态可以通过系统自带的Get-StorageReliabilityCounter查看也可以使用smartctl来自 smartmontools读取更详细的数据。smartctl -a /dev/nvme0重点看Percentage Used表示 SSD 寿命消耗百分比超过 100% 后建议尽快备份Data Units Written累计写入量帮助判断盘是否被大量写入过TemperatureNVMe 高温会导致主控降速表现就是系统启动时磁盘读取速度不稳定DWM 资源加载被拖慢。如果 SSD 的固件版本有已知 bug厂商通常会提供固件更新工具。比如某些型号存在异常掉盘、睡眠后无法唤醒的问题升级固件后才会恢复正常。遇到开机后 DWM 高占用且同时伴随磁盘掉盘现象时优先去官网查固件。4.4 硬盘接口和背板接触排查硬盘接口问题也会引发类似的启动异常。常见现象是SATA 硬盘频繁从设备列表消失M.2 SSD 在 BIOS 里能识别但进入系统后读取速度异常NVMe U.2 硬盘在服务器或工作站上通过背板连接背板供电不稳定会导致硬盘复位。检查方式Get-EventLog -LogName System -EntryType Error -Source Disk,disk,stornvme -Newest 50如果日志里出现The device has a problem或reported a problem描述优先换一个接口或者换一根数据线。SATA 硬盘优先检查数据线和供电线M.2 硬盘优先检查是否为散热片压弯或金手指氧化。服务器环境的硬盘背板接触不良通常会在系统日志中表现为随机掉盘或 IO timeout和桌面 Grafana 的 GPU 异常不一定直接相关但这种磁盘异常同样可能拖慢系统启动间接推高 DWM 占用。处理方式是重新插拔背板电源和信号线并在 BIOS 中关闭不必要的硬盘电源管理策略。5. 修复方案与操作步骤5.1 更新或回滚显卡驱动并关闭快速启动检查显卡驱动版本是否匹配。对 NVIDIA 和 AMD 卡推荐使用官方工具清除旧驱动再安装稳定版。不要用第三方驱动管理软件覆盖安装。同时关闭 Windows 快速启动避免休眠文件损坏导致的开机渲染异常powercfg /h off然后重启。快速启动关闭后开机速度可能稍微变慢但能让 DWM 和驱动在冷启动状态下重新初始化避免休眠恢复时的状态不一致。5.2 清理启动项和多余服务用系统内置的任务管理器“启动应用”页签禁用第三方启动项再重启观察。如果禁用后 DWM 占用恢复正常说明有某个后台程序在持续触发窗口重绘。还可以用“干净启动”辅助定位msconfig选择“有选择的启动”取消“加载启动项”注意不要通过 msconfig 永久关闭系统服务定位后恢复自动启动。5.3 检查并修复磁盘错误先用chkdsk修复文件系统错误chkdsk C: /scan如果有文件系统损坏可以使用chkdsk C: /offlinescanandfix需要管理员权限并且可能在重启后才会执行。对于机械硬盘如果 Victoria 扫描发现坏道先用分区工具把坏道区域单独隔离再做全盘镜像备份。坏道是有扩散趋势的备份完成后建议直接更换硬盘。对于 SSD如果健康状态显示Warning首先备份重要数据然后查看厂商是否有固件更新。不要对 SSD 执行低格操作这会加快闪存磨损。5.4 调整显卡和电源设置在电源选项中设置“平衡”模式避免系统强制高频运行独显。在 NVIDIA 控制面板中把“电源管理模式”调成“正常”并不是所有场景都需要“最高性能优先”。同时调整视觉效果Windows 设置 - 系统 - 关于 - 高级系统设置 - 性能设置 - 自定义取消“窗口内的动画控件和元素”“最大化最小化时动画窗口”“显示缩略图而不是始终显示图标”等效果。这样做是为了给 DWM 减负减少它对 GPU 和磁盘缓存文件的依赖。如果你的问题来源确实是硬件故障关闭动效只是临时缓解不影响根本修复。6. 常见问题排错速查下面表格汇总了开头提到的高频现象和对应处理路径方便按图索骥。现象常见原因检查方式处理建议DWM 的 Graphics 引擎 GPU 占用居高不下驱动损坏或降级dxdiag查看 WDDM 版本DDU 卸载后重装稳定版驱动CSRSS 的 GPU 占用异常高进程被注入或监控工具误归因查看进程路径和数字签名验证C:\Windows\System32\csrss.exe用安全软件扫描开机时 GPU 占用峰值但平时正常快速启动状态损坏查看上次启动的休眠日志powercfg /h off关闭快速启动混合显卡笔记本独显占用高DWM 被分配到独显查看任务管理器 GPU 编号在 Windows 显示设置中为 DWM 指定“省电”GPUBIOS 能检测到硬盘Windows 里看不到硬盘未初始化或驱动缺失磁盘管理查看磁盘状态初始化磁盘、分配盘符或补装 NVMe/RAID 驱动磁盘管理中能看到硬盘但此电脑不显示未分配盘符或分区表损坏磁盘管理检查卷状态分配盘符或重建分区表HD Tune 或 Victoria 扫描出红块机械硬盘坏道坏道位置和数量隔离坏道区域备份数据更换硬盘SSD 健康状态 Warning寿命耗尽或固件 bugGet-StorageReliabilityCounter备份数据升级固件或更换硬盘7. 最佳实践保持开机时显卡和磁盘状态健康7.1 开机后观察的重点指标正常开机后打开任务管理器观察前 3 到 5 分钟GPU 占用应该在 5 分钟内降到 10% 以下DWM 的 GPU 使用率稳定在个位数磁盘活动时间在完成启动索引后应降到 10% 左右Windows 事件日志中没有新的153、7、51事件。如果开机 5 分钟后 DWM 仍然持续 30% 以上基本可以判定问题不是“开机瞬时压力”而是稳态异常需要继续往下排查。7.2 定期维护清单频率操作目的每月查看 CrystalDiskInfo SMART 数据提前发现重映射扇区和磨损问题每季全盘读取测试一次发现潜在坏道但不要高频跑写测试损伤 SSD显卡大版本更新时记录驱动版本号保留最近两个稳定版方便问题复现时快速回滚系统更新后检查 DWM 和磁盘相关事件日志排除驱动和固件兼容问题半年检查 M.2 散热贴和硬盘供电线防止高温降速和接触不良7.3 何时需要送修如果已经完成了驱动重装、启动项清理、磁盘扫描、快速启动关闭DWM 的 GPU 占用仍然持续 80% 以上并且伴随以下情况之一建议送修或走硬件更换流程显卡设备管理器反复出现代码 43系统日志中有大量nvlddmkm或显示驱动重置记录机械硬盘 SMART 显示Current_Pending_Sector或Reallocated_Sector_Ct持续增长换显卡测试后问题消失旧显卡单独安装后问题复现。磁盘问题的检测优先级一定要放在显卡驱动之后、显存测试之前。因为磁盘故障导致的启动假象很容易被误判成显卡故障最后白拆一次显卡问题还在。先确认磁盘健康再考虑显卡硬件是这条问题最稳妥的处理顺序。
返回列表