访问共享报错服务器存储空间不足无法处理这条命令怎么办
公司文件服务器用着用着,客户端访问共享开始报错:“服务器存储空间不足,无法处理这条命令。“奇怪的是服务器 C 盘、D 盘明明都还有大量空间,重启服务器后好一阵子,过几天又出现。这是怎么回事?
原因
这个报错名不副实——十有八九不是磁盘空间问题,而是服务器内核资源耗尽:
- 非分页内存池耗尽:大量 SMB 会话/句柄/文件打开未释放(客户端异常断开、监控脚本泄漏、恶意扫描),耗尽 LanmanServer 的工作内存,典型症状就是重启缓解、数日复发;
- IRPStackSize 过小:服务器装了杀毒软件、备份代理等过滤驱动后,每个文件请求占用的 I/O 请求包栈变大,默认值不够用;
- 少数情况真是系统盘满或虚拟内存不足(顺带核实即可);
- DFS/第三方服务异常也会报同类"内存资源不足"错误。
解决办法(在服务器上操作)
-
先排除真满盘:资源监视器(resmon)→ 磁盘,确认 C 盘与共享所在盘剩余空间;任务管理器 → 性能 → 内存看"已提交”。真满了清理后再看报错是否消失。
-
看非分页池:任务管理器 → 性能 → 内存,记下"非分页缓冲池"数值;资源监视器 → 内存 tab 按"非分页缓冲池"排序找大户。发现某个第三方驱动/杀毒进程占用异常,更新或更换该软件。
-
清理 SMB 会话与打开文件(立竿见影的缓解):
net session /delete /y net stop server && net start server重启 Server 服务会断开所有共享会话(下班后做),释放泄漏的句柄。
-
调大 IRPStackSize(装了杀毒/过滤驱动的服务器标配调整):
- 注册表定位到
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters; - 找到(没有就新建 DWORD)
IRPStackSize——注意大小写必须完全一致; - 基数选十进制,从 15 起每次加 3
5(常见 3050),改完重启 Server 服务或服务器;一次别猛加到顶,逐步试到报错消失。
- 注册表定位到
-
治本排查泄漏源:事件查看器看 Server 服务相关告警(会话数异常增长);用计算机管理 → 共享文件夹 → 会话/打开的文件,观察是否某个客户端/账号挂着成百上千句柄;监控脚本、备份软件、杀毒逐一暂停对比定位。
-
若报错出现在 DFS 环境且伴随"内存资源不足”,按微软文档检查 DFS 命名空间相关服务状态与配置。
预防
- 文件服务器装杀毒必须选服务器版并配扫描排除(排除自有共享卷的实时扫描或按厂商建议),过滤驱动与 IRPStackSize 的坑多半源于此。
- 定期任务自动清理空闲会话(net session 脚本)+ 监控非分页池水位,复发早发现。
- 重启只是止痛,找到泄漏源头才算治好;把"重启后多久复发"记录下来,是定位规律的重要线索。